TL;DR
In early 2020, Flutter revamped its release system and version numbering scheme to make things clearer for developers and easier for contributors to participate in Flutter's development.
In early 2020, Flutter revamped its release system and version numbering scheme to make things clearer for developers and easier for contributors to participate in Flutter’s development.
Currently, Flutter uses a branching model to manage Stable and Beta releases. At the beginning of each month, a branch is created for the Beta release, which then undergoes further stabilization through cherry-picking important fixes. Every four months, Flutter promotes a Beta branch to a Stable release, after which maintenance continues with hotfixes for the Stable release as needed.
Additionally, Flutter releases are now tied to Dart releases. This means that whenever a new Flutter version is released, a new Dart version is released as well. Likewise, Flutter Beta uses Dart Beta.
As for the meaning of Flutter’s version numbers, they follow SemVer with some additional conventions:
For versions built from master, where each build sits on the dev branch (not Beta), a .pre suffix is appended to indicate a pre-release. The version format is x.y.z-n.m.pre, where n increments with each build from master. For example:
1.18.0–1.0.pre: Firstdevbuild aftermastermoved to version1.181.18.0–2.0.pre: Nextdevbuild from the latest point onmaster
For Beta versions, these come from the dev branch above through cherry-picking from the full release. With each release, m increments by one. For example, if taking version 15 from dev (which came from master version 1.18) into beta:
1.18.0–15.0.pre: Firstbetaversion (same as the selecteddevversion with nothing added)1.18.0–15.1.pre: Nextbetaversion with some cherry-picked additions1.18.0–15.2.pre: Second iteration of thisbeta
Finally, Stable versions use the format x.y.0, and with each hotfix release, the patch number is updated: x.y.1, x.y.2, etc.
Examples:
1.18.0–15.4.pre: Abetaversion that has been selected but is not yet Stable1.18.0: Stable Release, which is essentially the same as1.18.0–15.4.prebut with the version number and status changed to Stable1.18.1: Hotfix for version1.18.0
📚 Hope you enjoy reading!
