Welcome to the new FlakeHub docs experience!

Tagged vs. rolling versioning

FlakeHub supports two methods of versioning your flakes: tagged and rolling.


Tagged releases are better suited for projects that follow SemVer and have a defined release cadence. The versioning scheme of tagged flakes is up to the author, as long as it conforms to SemVer. An example of this kind of flake is the fh (opens in a new tab) flake.


Rolling versions are ideal for projects that see a constant stream of commits and releases. The versioning scheme of rolling flakes has:

  • A SemVer major version of 0
  • A SemVer minor version of 1 (for the NixOS unstable rolling release train)
  • A SemVer patch version of the number of commits that were on that branch at that time

Here's a visual representation:

0.1.${number of commits}

Nixpkgs (opens in a new tab) is an example of a flake with rolling versioning. Release 0.1.494976 (opens in a new tab), for example represents the 494976th commit within the unstable epoch.

Consult the Publishing guide to see how to enable this.