ReleasesRelease process
Going through an example of releasing NixOS 17.09:
One month before the beta
Send an email to the nix-devel mailinglist as a warning about upcoming
beta "feature freeze" in a month.
Discuss with Eelco Dolstra and the community (via IRC, ML) about what
will reach the deadline. Any issue or Pull Request targeting the release
should be included in the release milestone.
At beta release time
Create
an issue for tracking Zero Hydra Failures progress. ZHF is an effort to
get build failures down to zero.
git tag -a -s -m "Release 17.09-beta" 17.09-beta
&& git push --tags
From the master branch run git checkout -B
release-17.09.
Make sure a channel is created at http://nixos.org/channels/.
Let a GitHub nixpkgs admin lock the branch on github for you. (so
developers can’t force push)
Bump the system.nixos.defaultChannel attribute in
nixos/modules/misc/version.nix
Update versionSuffix in
nixos/release.nix, use git log
--format=%an|wc -l to get the commit count
echo -n "18.03" > .version on master.
Pick a new name for the unstable branch.
Create a new release notes file for the upcoming release + 1, in this
case rl-1803.xml.
Create two Hydra jobsets: release-17.09 and release-17.09-small with
stableBranch set to false.
Edit changelog at
nixos/doc/manual/release-notes/rl-1709.xml (double
check desktop versions are noted)
Get all new NixOS modules git diff
release-17.03..release-17.09 nixos/modules/module-list.nix|grep
^+
Note systemd, kernel, glibc and Nix upgrades.
During Beta
Monitor the master branch for bugfixes and minor updates and cherry-pick
them to the release branch.
Before the final release
Re-check that the release notes are complete.
Release Nix (currently only Eelco Dolstra can do that).
Make sure fallback is updated.
Update README.md with new stable NixOS version information.
Change stableBranch to true and wait for channel to
update.
At final release timegit tag -s -a -m "Release 15.09" 15.09
Update http://nixos.org/nixos/download.html and
http://nixos.org/nixos/manual in
https://github.com/NixOS/nixos-org-configurations
Get number of commits for the release: git log
release-14.04..release-14.12 --format=%an|wc -l
Commits by contributor: git log release-14.04..release-14.12
--format=%an|sort|uniq -c|sort -rn
Send an email to nix-dev to announce the release with above information.
Best to check how previous email was formulated to see what needs to be
included.
Release schedule
Date
Event
2016-07-25
Send email to nix-dev about upcoming branch-off
2016-09-01
release-16.09 branch and corresponding jobsets are created,
change freeze
2016-09-30
NixOS 16.09 released