242 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			XML
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			XML
		
	
	
		
			Executable File
		
	
	
	
	
| <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>
 | 
