ReleasesRelease process
Going through an example of releasing NixOS 15.09:
One month before the beta
Send an email to nix-dev 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 have assigned milestone.
At beta release time
Rename rl-unstable.xml ->
rl-1509.xml.
git tag -a -m "Release 15.09-beta" 15.09-beta && git push --tags
From the master branch run git checkout -B release-15.09.
Make sure channel is created at http://nixos.org/channels/.
Lock the branch on github (so developers can’t force push)
bump
system.defaultChannel attribute in
nixos/modules/misc/version.nix
update
versionSuffix in
nixos/release.nix, use
git log --format=%an|wc -l to get commit
count
echo -n "16.03" > .version in
master.
pick
a new name for unstable branch.
Create
an issue for tracking Zero Hydra Failures progress. ZHF is an effort
to get build failures down to zero.
Use https://lwn.net/Vulnerabilities/ and
triage vulnerabilities in an issue.
Create two Hydra jobsets: release-15.09 and release-15.09-small with stableBranch set to false
Edit changelog at
nixos/doc/manual/release-notes/rl-1509.xml
(double check desktop versions are noted)
Get all new NixOS modules
git diff release-14.12..release-15.09 nixos/modules/module-list.nix|grep ^+
Note systemd, kernel, glibc and Nix upgrades.
Before the final release
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