Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Document NixOS release process #4442
- Loading branch information
1 parent
b2c9402
commit ed6ea74
Showing
2 changed files
with
242 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,241 @@ | ||
<chapter xmlns="http://docbook.org/ns/docbook" | ||
xmlns:xlink="http://www.w3.org/1999/xlink" | ||
xmlns:xi="http://www.w3.org/2001/XInclude" | ||
version="5.0" | ||
xml:id="ch-releases"> | ||
|
||
<title>Releases</title> | ||
|
||
<section xml:id="release-process"> | ||
<title>Release process</title> | ||
|
||
<para> | ||
Going through an example of releasing NixOS 15.09: | ||
</para> | ||
|
||
<section xml:id="one-month-before-the-beta"> | ||
<title>One month before the beta</title> | ||
<itemizedlist spacing="compact"> | ||
<listitem> | ||
<para> | ||
Send an email to nix-dev mailinglist as a warning about upcoming beta "feature freeze" in a month. | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
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. | ||
</para> | ||
</listitem> | ||
</itemizedlist> | ||
</section> | ||
<section xml:id="at-beta-release-time"> | ||
<title>At beta release time</title> | ||
<itemizedlist spacing="compact"> | ||
<listitem> | ||
<para> | ||
Rename <literal>rl-unstable.xml</literal> -> | ||
<literal>rl-1509.xml</literal>. | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<literal>git tag -a -m "Release 15.09-beta" 15.09-beta && git push --tags</literal> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
From the master branch run <literal>git checkout -B release-15.09</literal>. | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18"> | ||
Make sure channel is created at http://nixos.org/channels/. | ||
</link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/settings/branches"> | ||
Lock the branch on github (so developers can’t force push) | ||
</link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">bump | ||
<literal>system.defaultChannel</literal> attribute in | ||
<literal>nixos/modules/misc/version.nix</literal></link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">update | ||
<literal>versionSuffix</literal> in | ||
<literal>nixos/release.nix</literal></link>, use | ||
<literal>git log --format=%an|wc -l</literal> to get commit | ||
count | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<literal>echo -n "16.03" > .version</literal> in | ||
master. | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842">pick | ||
a new name for unstable branch.</link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create | ||
an issue for tracking Zero Hydra Failures progress. ZHF is an effort | ||
to get build failures down to zero.</link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Use https://lwn.net/Vulnerabilities/ and | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/search?utf8=%E2%9C%93&q=vulnerabilities&type=Issues">triage vulnerabilities in an issue</link>. | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Create two Hydra jobsets: release-15.09 and release-15.09-small with <literal>stableBranch</literal> set to false | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Edit changelog at | ||
<literal>nixos/doc/manual/release-notes/rl-1509.xml</literal> | ||
(double check desktop versions are noted) | ||
</para> | ||
<itemizedlist spacing="compact"> | ||
<listitem> | ||
<para> | ||
Get all new NixOS modules | ||
<literal>git diff release-14.12..release-15.09 nixos/modules/module-list.nix|grep ^+</literal> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Note systemd, kernel, glibc and Nix upgrades. | ||
</para> | ||
</listitem> | ||
</itemizedlist> | ||
</listitem> | ||
</itemizedlist> | ||
</section> | ||
<section xml:id="before-the-final-release"> | ||
<title>Before the final release</title> | ||
<itemizedlist spacing="compact"> | ||
<listitem> | ||
<para> | ||
Release Nix (currently only Eelco Dolstra can do that). | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/53710c752a85f00658882531bc90a23a3d1287e4"> | ||
Make sure fallback is updated. | ||
</link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e"> | ||
Update README.md with new stable NixOS version information. | ||
</link> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Change <literal>stableBranch</literal> to true and wait for channel to update. | ||
</para> | ||
</listitem> | ||
</itemizedlist> | ||
</section> | ||
<section xml:id="at-final-release-time"> | ||
<title>At final release time</title> | ||
<itemizedlist spacing="compact"> | ||
<listitem> | ||
<para> | ||
<literal>git tag -s -a -m "Release 15.09" 15.09</literal> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Update http://nixos.org/nixos/download.html and http://nixos.org/nixos/manual in https://github.com/NixOS/nixos-org-configurations | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Get number of commits for the release: | ||
<literal>git log release-14.04..release-14.12 --format=%an|wc -l</literal> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
Commits by contributor: | ||
<literal>git log release-14.04..release-14.12 --format=%an|sort|uniq -c|sort -rn</literal> | ||
</para> | ||
</listitem> | ||
<listitem> | ||
<para> | ||
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. | ||
</para> | ||
</listitem> | ||
</itemizedlist> | ||
</section> | ||
</section> | ||
|
||
<section xml:id="release-schedule"> | ||
<title>Release schedule</title> | ||
|
||
<informaltable> | ||
<tgroup cols="2"> | ||
<colspec align="left" /> | ||
<colspec align="left" /> | ||
<thead> | ||
<row> | ||
<entry> | ||
Date | ||
</entry> | ||
<entry> | ||
Event | ||
</entry> | ||
</row> | ||
</thead> | ||
<tbody> | ||
<row> | ||
<entry> | ||
2016-07-25 | ||
</entry> | ||
<entry> | ||
Send email to nix-dev about upcoming branch-off | ||
</entry> | ||
</row> | ||
<row> | ||
<entry> | ||
2016-09-01 | ||
</entry> | ||
<entry> | ||
<literal>release-16.09</literal> branch and corresponding jobsets are created, | ||
change freeze | ||
</entry> | ||
</row> | ||
<row> | ||
<entry> | ||
2016-09-30 | ||
</entry> | ||
<entry> | ||
NixOS 16.09 released | ||
</entry> | ||
</row> | ||
</tbody> | ||
</tgroup> | ||
</informaltable> | ||
</section> | ||
|
||
</chapter> |