We follow Semantic Versioning for compatibility between Dagster releases.
Dagster's public, stable APIs will not break within any major release. I.e. if a public, stable API exists in Dagster 1.x.y, upgrading to 1.(x+1).y or 1.x.(y+1) should not result in broken code. If a version does break your code, help us out by filing an issue on Github
Our public, stable Python API includes:
dagster
package, unless they're marked experimental).@public
decorator.The "experimental" marker allows us to offer new APIs to users and rapidly iterate based on their feedback. Experimental APIs are marked as such in the API reference and usually raise an ExperimentalWarning
when used.
Experimental APIs may change or disappear within any release, but we try to avoid breaking them within minor releases if they have been around for a long time.
The "deprecated" marker indicates that we recommend avoiding an API, usually because there's a preferred option that should be used instead.
Like non-deprecated public stable APIs, deprecated public stable APIs will not break within any major release after 1.0.
Dagster’s integration libraries haven’t yet achieved the same API maturity as Dagster core. For this reason, integration libraries remain on a pre-1.0 versioning track (in general 0.y.z of Semantic Versioning; and 0.16+ as of Dagster 1.0.0) for the time being. However, 0.16+ library releases remain fully compatible with Dagster 1.x. We will graduate integration libraries one-by-one to the 1.x versioning track as they achieve API maturity.
While technically the 0.y.z phase of Semantic Versioning is "anything goes", we are conservative about making changes and will provide guidance about when to expect breaking changes:
The best way to stay on top of what changes are included in each release is through the changelog. We call out breaking changes in “Breaking Changes” sections and deprecations in “Deprecations” sections.