New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Proposal] Change Flutter's versioning scheme #96282
Comments
I'd recommend aligning the with versioning scheme Dart uses: https://dart.dev/get-dart#release-channels |
Would that only be enforced at (If so, it's not clear that we'd ever actually use the minor version field, because it would only come into play if we went three months on without any breaking changes.) |
@stuartmorgan I will update the original to specify that Major changes only include API incompatible changes such as the sound null safety change. Minor changes would be things like adding Windows accessibility support. |
I assumed that's what you meant by breaking changes. My point was that I see two main options here:
|
It's also worth noting that our breaking change policy doesn't actually follow semver; API-breaking changes that don't break customer tests should be breaking per semver, but are not according to our current policy. |
Null safety was actually not backwards incompatible (due to heroic efforts from the language team). What is your definition of "breaking change"? The definition in our current breaking change policy would imply that we'd be making major revision bumps multiple times a week, but that definition is rather loose and considers many things that are technically breaking to be totally fine, as @stuartmorgan says. A strict definition would consider potentially every single change to be a breaking change (after all, someone could depend on the git hash of the commit). A looser definition than what we have now seems too loose to be useful. FWIW, the current scheme changes the major version number when @timsneath wants to change it, which IMHO is probably the most practical definition. I don't have a strong opinion about the minor and patch numbers, but our versioning scheme should be detailed enough to allow any commit to master to be versioned (today we do this by counting commits and appending |
from triage: is there a decision on this? |
Closing as there is no alignment, will revisit later. |
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of |
Use case
Flutter's current versioning scheme considers the dev channel which has been recently deprecated. There is an opportunity to rethink Flutter's versioning scheme to align it with a version scheme similar to Dart's or more traditional semantic versioning.
Currently Flutter's stable version increments on a monthly basis, for example, Flutter 2.8 was released in December, while Flutter 2.10 will be released in February with no Flutter 2.9 release in existence.
Proposal
I propose that Flutter move towards a Major.Minor.Patch versioning scheme.
For beta releases the version could look similar to, 2.10.1.beta-1.
Considerations
Timing
If this change were to be considered, what would be the proper timing for this?
Dependancies
The text was updated successfully, but these errors were encountered: