at 18.03-beta 7.9 kB view raw
1<chapter xmlns="http://docbook.org/ns/docbook" 2 xmlns:xlink="http://www.w3.org/1999/xlink" 3 xmlns:xi="http://www.w3.org/2001/XInclude" 4 version="5.0" 5 xml:id="ch-releases"> 6 7<title>Releases</title> 8 9<section xml:id="release-process"> 10 <title>Release process</title> 11 12 <para> 13 Going through an example of releasing NixOS 17.09: 14 </para> 15 16 <section xml:id="one-month-before-the-beta"> 17 <title>One month before the beta</title> 18 <itemizedlist spacing="compact"> 19 <listitem> 20 <para> 21 Send an email to the nix-devel mailinglist as a warning about upcoming beta "feature freeze" in a month. 22 </para> 23 </listitem> 24 <listitem> 25 <para> 26 Discuss with Eelco Dolstra and the community (via IRC, ML) about what will reach the deadline. 27 Any issue or Pull Request targeting the release should be included in the release milestone. 28 </para> 29 </listitem> 30 </itemizedlist> 31 </section> 32 <section xml:id="at-beta-release-time"> 33 <title>At beta release time</title> 34 <itemizedlist spacing="compact"> 35 <listitem> 36 <para> 37 <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create 38 an issue for tracking Zero Hydra Failures progress. ZHF is an effort 39 to get build failures down to zero.</link> 40 </para> 41 </listitem> 42 <listitem> 43 <para> 44 <literal>git tag -a -s -m &quot;Release 17.09-beta&quot; 17.09-beta &amp;&amp; git push --tags</literal> 45 </para> 46 </listitem> 47 <listitem> 48 <para> 49 From the master branch run <literal>git checkout -B release-17.09</literal>. 50 </para> 51 </listitem> 52 <listitem> 53 <para> 54 <link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18"> 55 Make sure a channel is created at http://nixos.org/channels/. 56 </link> 57 </para> 58 </listitem> 59 <listitem> 60 <para> 61 <link xlink:href="https://github.com/NixOS/nixpkgs/settings/branches"> 62 Let a GitHub nixpkgs admin lock the branch on github for you. 63 (so developers can’t force push) 64 </link> 65 </para> 66 </listitem> 67 <listitem> 68 <para> 69 <link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790"> 70 Bump the <literal>system.defaultChannel</literal> attribute in 71 <literal>nixos/modules/misc/version.nix</literal> 72 </link> 73 </para> 74 </listitem> 75 <listitem> 76 <para> 77 <link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06"> 78 Update <literal>versionSuffix</literal> in 79 <literal>nixos/release.nix</literal></link>, use 80 <literal>git log --format=%an|wc -l</literal> to get the commit 81 count 82 </para> 83 </listitem> 84 <listitem> 85 <para> 86 <literal>echo -n &quot;18.03&quot; &gt; .version</literal> on 87 master. 88 </para> 89 </listitem> 90 <listitem> 91 <para> 92 <link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842"> 93 Pick a new name for the unstable branch. 94 </link> 95 </para> 96 </listitem> 97 <listitem> 98 <para> 99 Create a new release notes file for the upcoming release + 1, in this 100 case <literal>rl-1803.xml</literal>. 101 </para> 102 </listitem> 103 <listitem> 104 <para> 105 Create two Hydra jobsets: release-17.09 and release-17.09-small with <literal>stableBranch</literal> set to false. 106 </para> 107 </listitem> 108 <listitem> 109 <para> 110 Edit changelog at 111 <literal>nixos/doc/manual/release-notes/rl-1709.xml</literal> 112 (double check desktop versions are noted) 113 </para> 114 <itemizedlist spacing="compact"> 115 <listitem> 116 <para> 117 Get all new NixOS modules 118 <literal>git diff release-17.03..release-17.09 nixos/modules/module-list.nix|grep ^+</literal> 119 </para> 120 </listitem> 121 <listitem> 122 <para> 123 Note systemd, kernel, glibc and Nix upgrades. 124 </para> 125 </listitem> 126 </itemizedlist> 127 </listitem> 128 </itemizedlist> 129 </section> 130 <section xml:id="during-beta"> 131 <title>During Beta</title> 132 <itemizedlist spacing="compact"> 133 <listitem> 134 <para> 135 Monitor the master branch for bugfixes and minor updates 136 and cherry-pick them to the release branch. 137 </para> 138 </listitem> 139 </itemizedlist> 140 </section> 141 <section xml:id="before-the-final-release"> 142 <title>Before the final release</title> 143 <itemizedlist spacing="compact"> 144 <listitem> 145 <para> 146 Re-check that the release notes are complete. 147 </para> 148 </listitem> 149 <listitem> 150 <para> 151 Release Nix (currently only Eelco Dolstra can do that). 152 <link xlink:href="https://github.com/NixOS/nixpkgs/commit/53710c752a85f00658882531bc90a23a3d1287e4"> 153 Make sure fallback is updated. 154 </link> 155 </para> 156 </listitem> 157 <listitem> 158 <para> 159 <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e"> 160 Update README.md with new stable NixOS version information. 161 </link> 162 </para> 163 </listitem> 164 <listitem> 165 <para> 166 Change <literal>stableBranch</literal> to true and wait for channel to update. 167 </para> 168 </listitem> 169 </itemizedlist> 170 </section> 171 <section xml:id="at-final-release-time"> 172 <title>At final release time</title> 173 <itemizedlist spacing="compact"> 174 <listitem> 175 <para> 176 <literal>git tag -s -a -m &quot;Release 15.09&quot; 15.09</literal> 177 </para> 178 </listitem> 179 <listitem> 180 <para> 181 Update http://nixos.org/nixos/download.html and http://nixos.org/nixos/manual in https://github.com/NixOS/nixos-org-configurations 182 </para> 183 </listitem> 184 <listitem> 185 <para> 186 Get number of commits for the release: 187 <literal>git log release-14.04..release-14.12 --format=%an|wc -l</literal> 188 </para> 189 </listitem> 190 <listitem> 191 <para> 192 Commits by contributor: 193 <literal>git log release-14.04..release-14.12 --format=%an|sort|uniq -c|sort -rn</literal> 194 </para> 195 </listitem> 196 <listitem> 197 <para> 198 Send an email to nix-dev to announce the release with above information. Best to check how previous email was formulated 199 to see what needs to be included. 200 </para> 201 </listitem> 202 </itemizedlist> 203 </section> 204</section> 205 206<section xml:id="release-schedule"> 207 <title>Release schedule</title> 208 209 <informaltable> 210 <tgroup cols="2"> 211 <colspec align="left" /> 212 <colspec align="left" /> 213 <thead> 214 <row> 215 <entry> 216 Date 217 </entry> 218 <entry> 219 Event 220 </entry> 221 </row> 222 </thead> 223 <tbody> 224 <row> 225 <entry> 226 2016-07-25 227 </entry> 228 <entry> 229 Send email to nix-dev about upcoming branch-off 230 </entry> 231 </row> 232 <row> 233 <entry> 234 2016-09-01 235 </entry> 236 <entry> 237 <literal>release-16.09</literal> branch and corresponding jobsets are created, 238 change freeze 239 </entry> 240 </row> 241 <row> 242 <entry> 243 2016-09-30 244 </entry> 245 <entry> 246 NixOS 16.09 released 247 </entry> 248 </row> 249 </tbody> 250 </tgroup> 251 </informaltable> 252</section> 253 254</chapter>