Skip to content

Release versioning

Kevin Chisholm edited this page Aug 4, 2022 · 1 revision

Stable (example: 3.3.0)

Flutter releases are identified by a modified CalVer scheme.

X: Major - Incremented when the product team decides there are features impactful enough to increment this value.

Y: Minor - Incremented on a monthly basis.

  • Example: Flutter 3.0.0 shipped May 2022, meaning an August 2022 release would put the Flutter version at 3.3.0 as it is 3 months after the last stable release.

Z: Patch - Incremented whenever a hotfix is applied to the current stable release.

Beta (example: 3.3.0-5.0.pre)

X: Major - Same as above

Y: Minor - Same as above

Z: Reserved - This number is always 0.

M: Branch Identifier - When bringing the repository into Google3, we ensure that commits do not break tests. Once testing is complete and changes have been brought in to Google3, we create a branch based on the current snapshot that has passed all tests. These snapshots are named flutter-X.Y-candidate.M

N: Patch - Incremented whenever a hotfix is applied to the beta release.

Pre: pre-release - Identifies the release as a beta.

Tagging Releases

Each release is tagged during the release process. These tags are a snapshot of the repository at a specific commit. Tagged releases can be found here. Example: Flutter 3.3.0 is tagged as 3.3.0 aliasing commit ee4e09c.

Flutter Wiki

Process

Framework repo

The Flutter CLI Tool

Engine repo

Packages repo

Engineering Productivity

User documentation

Clone this wiki locally