Releases are published to PyPI by a GitHub Actions workflow, triggered when a GitHub Release is published.
Feature releases are the primary way that new features are added to the Singer SDK. They are released on a roughly monthly cadence.
Patch releases are released as needed to fix bugs or security issues. They are released on an as-needed basis.
Starting with the Singer SDK 1.0, version numbers will use a loose form of semantic versioning.
SemVer makes it easier to see at a glance how compatible releases are with each other. It also helps to anticipate when compatibility shims will be removed.
A feature release may deprecate a feature, but it will not remove it until the next major release. A deprecation will be clearly documented in the changelog and in the code.
All deprecated features will emit a
SingerDeprecationWarning when used, so users can raise them as exceptions when running their tests to ensure that they are not using any deprecated features:
$ pytest -W error::singer_sdk.utils.deprecation.SingerSDKDeprecationWarning