I want to keep the extension backward compatible once we've made the first public release. Add a version number parameter to the public API, so that we can continue to support old mypy versions. Ideally updating ast-serialize to a new version should not break mypy. If we adopt semver, this would mean that we don't plan to release a 2.0 version. We can drop support for old format versions after a suitably long deprecation period (multiple years).
The main expected format changes are from supporting for new Python features, and fixes to bugs. We can gate new AST features behind a version check. Bug fixes may also have to be gated, if we need to add new data fields in the serialized data, for example.
We'd probably want to test against older mypy versions in the CI so that we don't accidentally break backward compatibility.
I want to keep the extension backward compatible once we've made the first public release. Add a version number parameter to the public API, so that we can continue to support old mypy versions. Ideally updating
ast-serializeto a new version should not break mypy. If we adopt semver, this would mean that we don't plan to release a 2.0 version. We can drop support for old format versions after a suitably long deprecation period (multiple years).The main expected format changes are from supporting for new Python features, and fixes to bugs. We can gate new AST features behind a version check. Bug fixes may also have to be gated, if we need to add new data fields in the serialized data, for example.
We'd probably want to test against older mypy versions in the CI so that we don't accidentally break backward compatibility.