API stability policy #848
Closed
provinzkraut
started this conversation in
Ideas
Replies: 3 comments 5 replies
-
I think the section option is better. But both are viable. We need a checklist before release i think. |
Beta Was this translation helpful? Give feedback.
1 reply
-
I would vote for the adapted semver. While Starlite doesn't have critical userbase we can conform to this and have higher development velocity. With the deprecation policy I would suggest that we keep deprecated interfaces/features for given amount of time or number of versions whatever would be longer. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Starlite is moving fast, but we currently don't have a policy in place regarding the stability of our API. Our versioning scheme suggests we follow semver, but we have introduced breaking changes in minor versions multiple times.
I'd like to discuss, and in the end introduce, a policy regarding how and when breaking changes occur and how we deal with deprecations. This is an important step, as it will give users the chance to know what they can expect from a new version, when they can safely upgrade and how they need to handle migration in case of breaking changes. Stability of a library is a big factor in deciding for or against it, and we need to address this in a transparent way.
Definition of a breaking change
"Breaking change" in the following means:
_
prefix in its name):starlite
namespace or part of a module that is available in thestarlite
namespaceVersioning schemes
Strict semver
This would mean we either make sure that all changes that occur in minor or patch releases are backwards compatible, or make major releases more often.
Adapted semver
If we don't follow semver, I'd suggest we establish the following policy:
a changing of application logic (i.e. changing a method name is okay, removing that method without offering something that can achieve the same is not). These should occur semi-regularly
General migration policy
Deprecations
MINOR
versionMAJOR
orPATCH
versionsClear upgrade paths
Breaking changes must always come with a clear upgrade path, that is, an easy to find document for the user, telling them how they can upgrade from one version to the next.
Beta Was this translation helpful? Give feedback.
All reactions