Skip to content

Commit 4095167

Browse files
committed
branch-off: modify based on branch-off of 25.11
1 parent b0bcb9e commit 4095167

File tree

1 file changed

+68
-26
lines changed

1 file changed

+68
-26
lines changed

src/Branch-Off.md

Lines changed: 68 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,52 @@ before release to create the necessary Hydra Jobsets. You can link them this sec
1414
- [https://hydra.nixos.org/project/nixos](https://hydra.nixos.org/project/nixos)
1515
- release-24.05
1616
- release-24.05-small
17+
- staging-next-24.05-small
1718
- [https://hydra.nixos.org/project/nixpkgs](https://hydra.nixos.org/project/nixpkgs)
1819
- nixpkgs-24.05-darwin
1920
- staging-next-24.05
21+
- staging-24.05
2022

21-
Example configuration: [nixos:release-23.11](https://hydra.nixos.org/jobset/nixos/release-23.11#tabs-configuration)
23+
Example configuration: [nixos:release-25.11](https://hydra.nixos.org/jobset/nixos/release-25.11#tabs-configuration)
2224

2325
|Field|Value|
2426
|-|-|
2527
|State|Enabled|
2628
|Description|NixOS 24.05 release branch|
2729
|Nix expression|`nixos/release-combined.nix` in input `nixpkgs`|
28-
|Check interval|86400|
30+
|Check interval|151200|
2931
|Scheduling shares|5000000 (8.32% out of 60071636 shares)|
3032
|Enable Dynamic RunCommand Hooks:|No (not enabled by server)|
3133
|Number of evaluations to keep|1|
3234

33-
Inputs:
35+
### Inputs for `nixos/release-24.05`, `nixos/release-24.05-small`:
3436

3537
|Input name|Type|Values|
3638
|-|-|-|
3739
|`nixpkgs`|Git checkout|`https://github.com/NixOS/nixpkgs.git release-24.05`|
3840
|`stableBranch`|Boolean|`false`|
3941
|`supportedSystems`|Nix expression|`[ "x86_64-linux" "aarch64-linux" ]`|
4042

43+
`stableBranch` influences the `versionSuffix` in NixOS and the channel tarball.
44+
45+
- `true` leads to `24.05.1234.0abs3fe`
46+
- `false` leads to `24.05pre1234.0abs3fe`
47+
48+
Note that changing this leads to a rebuild of most NixOS tests!
49+
50+
### Inputs for `nixpkgs/nixpkgs-24.05-darwin`:
51+
52+
|Input name|Type|Values|
53+
|-|-|-|
54+
|`nixpkgs`|Git checkout|`https://github.com/NixOS/nixpkgs.git release-24.05`|
55+
|`officialRelease`|Boolean|`false`|
56+
|`supportedSystems`|Nix expression|`[ "x86_64-darwin" "aarch64-darwin" ]`|
57+
58+
`officialRelease` influences the `versionSuffix` of the release tarball
59+
60+
- `true` leads to `24.05.1234.0abs3fe`
61+
- `false` leads to `24.05pre1234.0abs3fe`
62+
4163
## Nixpkgs branch protection ruleset
4264

4365
The same as for the jobsets applies to Nixpkgs branch protection rulesets, which can be updated by NixOS org owners in advance.
@@ -48,7 +70,7 @@ New release branches should be added to the `includes` list in:
4870

4971
## Actual branch-off
5072

51-
Set NEWVER to the new release version:
73+
Set NEWVER to the new release version (i.e. the version you release):
5274

5375
```bash
5476
export NEWVER=24.05
@@ -72,17 +94,27 @@ Pull in the final changes before performing the actual branch-off.
7294

7395
Update metadata on the release branch, create its staging branches and tag the release.
7496

75-
1. Update the `system.defaultChannel` attribute in [`nixos/modules/config/nix-channel.nix`](https://github.com/NixOS/nixpkgs/commit/bb029673bface2fc9fb807f209f63ca06478a72d)
97+
1. Update the `system.defaultChannel` option default in [`nixos/modules/config/nix-channel.nix`](https://github.com/NixOS/nixpkgs/commit/3c80acabe4eef35d8662733c7e058907fa33a65d#diff-14008678e5ceeef1edd491de85bca2bded89daea16793fe10c4eb724097b7f12)
7698

77-
1. Update the `versionSuffix` attribute in [`nixos/release.nix`](https://github.com/NixOS/nixpkgs/commit/7ae60dd7068478db5d936a3850b6df859aec21d0)
99+
1. Update the `versionSuffix` attribute in [`nixos/release.nix`](https://github.com/NixOS/nixpkgs/commit/3c80acabe4eef35d8662733c7e058907fa33a65d#diff-20da30ee012d7d87842fb7953237870493c5497c995cba1e6f6c3aa9268398ff)
78100

79101
To get the commit count, use the following command:
80102

81103
```bash
82104
git rev-list --count release-$NEWVER
83105
```
84106

85-
1. Add `SUPPORT_END=YYYY-MM-DD` to `osReleaseContents` in `nixos/modules/misc/version.nix`.
107+
1. Add `SUPPORT_END = "YYYY-MM-DD";` to `osReleaseContents` in [`nixos/modules/misc/version.nix`](https://github.com/NixOS/nixpkgs/commit/3c80acabe4eef35d8662733c7e058907fa33a65d#diff-b3379a98640b35a5fe4b046150cd2df1639995edf231d18bbad832be6a70b45f).
108+
109+
1. Run treefmt
110+
```bash
111+
nix-shell --run treefmt
112+
```
113+
114+
1. Test that the `tested` "job" still evals
115+
```bash
116+
nix eval -f nixos/release-combined.nix tested
117+
```
86118

87119
1. Commit the changes from the previous steps
88120

@@ -102,8 +134,9 @@ Update metadata on the release branch, create its staging branches and tag the r
102134
1. Tag the release and push everything
103135

104136
```bash
137+
git switch release-$NEWVER
105138
git tag --annotate --message="Release $NEWVER-beta" $NEWVER-beta
106-
git push upstream master release-$NEWVER $NEWVER-beta staging-$NEWVER staging-next-$NEWVER
139+
git push upstream release-$NEWVER $NEWVER-beta staging-$NEWVER staging-next-$NEWVER
107140
```
108141

109142
1. Create jobsets on hydra by contacting the infrastructure team and start the evaluation on all new jobsets.
@@ -121,42 +154,56 @@ Now we prepare the master branch for the next release after this one. We do this
121154

122155
#### PR changes
123156

124-
1. Update [`CONTRIBUTING.md`](https://github.com/NixOS/nixpkgs/commit/2c6ae7132ca558f1052da0eececed3cad191b883#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055) on master.
157+
Set NEXTVER to the release number after the one you released (i.e. when you release 24.05, `NEXTVER=24.11`).
158+
159+
```bash
160+
export NEXTVER=24.11
161+
```
162+
163+
1. Add the release name to [`nixos/doc/manual/release-notes/rl-$NEXTVER.section.md`](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-417feb28ebc7ab0109746fef515d6cccdcd5af5c7386e1ce0b186db9b8e5677b), [`doc/release-notes/rl-2411.section.md`](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-c5ba8855198f95e7fdb39bcd1106bb29c96b85c14bdfc4030b235a02806bf9b3)
125164

126-
1. Add the release name to [`nixos/doc/manual/release-notes/rl-2411.section.md`](https://github.com/NixOS/nixpkgs/commit/e56e0beed4312a89b60fe312ee2241f7a1627f76#diff-332df55682746a7949fbc279642f4b761456b3470ce93c541924a69ce8a45763), [`doc/release-notes/rl-2411.section.md`](https://github.com/NixOS/nixpkgs/commit/e56e0beed4312a89b60fe312ee2241f7a1627f76#diff-300d64b8febbf8f80bf778114bd0b70a2b31705d602365a32f7b5a2857764090)
165+
1. Include `rl-$NEXTVER.section.md` in [`nixos/doc/manual/release-notes/release-notes.md`](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-9b75bf997f6c13cb4a15145ef9e758a28addeeff4a3a5cb893a5c23a976b3a1a), [`doc/release-notes/release-notes.md`](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-89abd55b6169384ba08083097a7ac5f5c30ea35d432a0ba2d1a76887f50a4f49)
127166

128-
1. Include `rl-2411.section.md` in [`nixos/doc/manual/release-notes/release-notes.md`](https://github.com/NixOS/nixpkgs/commit/e56e0beed4312a89b60fe312ee2241f7a1627f76#diff-9b75bf997f6c13cb4a15145ef9e758a28addeeff4a3a5cb893a5c23a976b3a1a) and [`doc/release-notes/release-notes.md`](https://github.com/NixOS/nixpkgs/commit/e56e0beed4312a89b60fe312ee2241f7a1627f76#diff-300d64b8febbf8f80bf778114bd0b70a2b31705d602365a32f7b5a2857764090)
167+
1. Update [`nixos/manual/doc/redirects.json`](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-8e9034e569678f9c67bf82087ff7dced3b18de5491707988a43fb8979a82794f), [`doc/redirects.json`](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-9499ad98fd024845445ff2f32b424d29f632932b4bbe15dfd9d0f447890bbae6) and to include the new sections.
129168

130-
1. Update the [periodic-merge workflow](https://github.com/NixOS/nixpkgs/commit/e56e0beed4312a89b60fe312ee2241f7a1627f76#diff-a4f6ea695ede268916c760fe782e9645a8cab5b27747e4baa994bf59f3e4e07b) so that
131-
- release-24.05 (instead of master) gets merged into staging-next-24.05
169+
1. Update the [.github/workflows/periodic-merge-24h.yml](https://github.com/NixOS/nixpkgs/commit/bf470a4fddca6315d1b7c256a873c90f755b02d9#diff-a4f6ea695ede268916c760fe782e9645a8cab5b27747e4baa994bf59f3e4e07b) so that
170+
- `release-$NEWVER` (instead of `master`) gets merged into `staging-next-$NEWVER`
132171

133-
1. Commit the changes and create a PR
172+
1. Go through `.github/ISSUE_TEMPLATE`, and edit them to include the new version as beta.
173+
174+
Example [25.11](https://github.com/NixOS/nixpkgs/commit/c69a76cf803096fb8d1b3732fea57d69d6d301f1)
175+
176+
1. Commit the changes and create a PR.
134177
Wait for the CI to finish and merge.
135178

136179
#### Direct changes
137180

138181
These changes should be done when the PR is already merged.
139182

183+
1. Switch back to the `master` branch
184+
```bash
185+
git switch master
186+
```
187+
140188
1. Increment the [`lib/.version`](https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-2bc0e46110b507d6d5a344264ef15adaR1)
141189
file. This file must **not** end with a new line!
142190

143191
```bash
144192
# The release after $NEWVER (24.05 -> 24.11)
145-
echo -n "24.11" > lib/.version
193+
echo -n "$NEXTVER" > lib/.version
146194
````
147195

148196
1. Update the `codeName` attribute in [`lib/trivial.nix`](https://github.com/NixOS/nixpkgs/commit/2c28f1de7cdc10be556d2106108411dd2482794b#diff-29c71aa8261b14b1cad6e6fa28486fed7295050db4eeb32ba205672ba91d40e1)
149197
This will be the name for the next release.
150-
on master.
151198

152-
1. Commit the changes ([23.05 example](https://github.com/NixOS/nixpkgs/commit/2c28f1de7cdc10be556d2106108411dd2482794b) + [this commit](https://github.com/NixOS/nixpkgs/commit/2c6ae7132ca558f1052da0eececed3cad191b883))
199+
1. Commit the changes as `$NEXTVER is <codeName>`([25.11 example](https://github.com/NixOS/nixpkgs/commit/2493002b10ccef0880f72d7720538f91fb4f7434))
153200

154201
1. Tag the master branch, so that `git describe` shows the new version as the base for commits.
155202

156203
```bash
157-
git tag --annotate 24.11-pre
158-
git push upstream master 24.11-pre
159-
git describe HEAD # should yield 24.11-pre
204+
git tag --annotate $NEXTVER-pre
205+
git push upstream master $NEXTVER-pre
206+
git describe HEAD # should yield $NEXTVER-pre
160207
```
161208

162209
### And afterwards
@@ -181,12 +228,7 @@ Now that everything on git is done, we are still missing the channels.
181228

182229
The following steps should be done after the channels have become available on [channels.nixos.org](https://channels.nixos.org).
183230

184-
1. Update the flake input on the `nixos-search` repository, and create a pull request:
185-
186-
```bash
187-
git clone git@github.com:nixos/nixos-search
188-
nix --extra-experimental-features "nix-command flakes" flake lock --update-input nixos-infra
189-
```
231+
1. Update the flake input on the `nixos-search` repository by running [the update-flake-lock](https://github.com/NixOS/nixos-search/actions/workflows/update-flake-lock.yml) and merging the new created PR afterwards.
190232

191233
1. Give the [Marketing team](https://matrix.to/#/#marketing:nixos.org) a heads-up about the upcoming release
192234

0 commit comments

Comments
 (0)