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