···1+# Some workflows depend on the base branch of the PR, but changing the base branch is not included in the default trigger events, which would be `opened`, `synchronize` or `reopened`.
2+# Instead it causes an `edited` event.
3+# Since `edited` is also triggered when PR title/body is changed, we use this wrapper workflow, to run the other workflows conditionally only.
4+# There are already feature requests for adding a `base_changed` event:
5+# - https://github.com/orgs/community/discussions/35058
6+# - https://github.com/orgs/community/discussions/64119
7+#
8+# Instead of adding this to each workflow's pull_request_target event, we trigger this in a separate workflow.
9+# This has the advantage, that we can actually skip running those jobs for simple edits like changing the title or description.
10+# The actual trigger happens by closing and re-opening the pull request, which triggers the default pull_request_target events.
11+# This is much simpler and reliable than other approaches.
12+13+name: "Edited base branch"
14+15+on:
16+ pull_request_target:
17+ types: [edited]
18+19+permissions: {}
20+21+jobs:
22+ base:
23+ name: Trigger jobs
24+ runs-on: ubuntu-24.04
25+ if: github.event.changes.base.ref.from && github.event.changes.base.ref.from != github.event.pull_request.base.ref
26+ steps:
27+ # Use a GitHub App to create the PR so that CI gets triggered
28+ # The App is scoped to Repository > Contents and Pull Requests: write for Nixpkgs
29+ # We only need Pull Requests: write here, but the app is also used for backports.
30+ - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
31+ id: app-token
32+ with:
33+ app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
34+ private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
35+ permission-pull-requests: write
36+37+ - env:
38+ GH_TOKEN: ${{ steps.app-token.outputs.token }}
39+ REPOSITORY: ${{ github.repository }}
40+ NUMBER: ${{ github.event.number }}
41+ run: |
42+ gh api \
43+ --method PATCH \
44+ /repos/"$REPOSITORY"/pulls/"$NUMBER" \
45+ -f "state=closed"
46+ gh api \
47+ --method PATCH \
48+ /repos/"$REPOSITORY"/pulls/"$NUMBER" \
49+ -f "state=open"
···10 paths:
11 - .github/workflows/nixpkgs-vet.yml
12 pull_request_target:
13- # This workflow depends on the base branch of the PR, but changing the base branch is not included in the default trigger events, which would be `opened`, `synchronize` or `reopened`.
14- # Instead it causes an `edited` event, so we need to add it explicitly here.
15- # While `edited` is also triggered when the PR title/body is changed, this PR action is fairly quick, and PRs don't get edited **that** often, so it shouldn't be a problem.
16- # There is a feature request for adding a `base_changed` event: https://github.com/orgs/community/discussions/35058
17- types: [opened, synchronize, reopened, edited]
1819permissions: {}
20
···5 paths:
6 - .github/workflows/no-channel.yml
7 pull_request_target:
8- # Re-run should be triggered when the base branch is updated, instead of silently failing
9- types: [opened, synchronize, reopened, edited]
1011permissions: {}
12
···1718- The default GHC version has been updated from 9.6 to 9.8.
19 `haskellPackages` also uses Stackage LTS 23 (instead of LTS 22) as a baseline.
02021- LLVM has been updated from LLVM 16 (on Darwin) and LLVM 18 (on other platforms) to LLVM 19.
22 This introduces some backwards‐incompatible changes; see the [upstream release notes](https://releases.llvm.org/) for details.
···1718- The default GHC version has been updated from 9.6 to 9.8.
19 `haskellPackages` also uses Stackage LTS 23 (instead of LTS 22) as a baseline.
20+ We aim to remove the old GHC versions 8.10, 9.0 and 9.2 in the next release in accordance with [the new GHC deprecation policy](https://discourse.nixos.org/t/nixpkgs-ghc-deprecation-policy-user-feedback-necessary/64153).
2122- LLVM has been updated from LLVM 16 (on Darwin) and LLVM 18 (on other platforms) to LLVM 19.
23 This introduces some backwards‐incompatible changes; see the [upstream release notes](https://releases.llvm.org/) for details.
+1-1
doc/release-notes/rl-2511.section.md
···3## Highlights {#sec-nixpkgs-release-25.11-highlights}
4<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
56-- Added `allowVariants` to gate availability of package sets like `pkgsLLVM`, `pkgsMusl`, `pkgsZig`, etc.
78## Backward Incompatibilities {#sec-nixpkgs-release-25.11-incompatibilities}
9
···3## Highlights {#sec-nixpkgs-release-25.11-highlights}
4<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
56+- Added `allowVariants` to gate availability of package sets like `pkgsLLVM`, `pkgsMusl`, `pkgsZig`, etc. This option will be removed in a future release.
78## Backward Incompatibilities {#sec-nixpkgs-release-25.11-incompatibilities}
9
···6automatically from NixOS's Git repository after certain tests have
7passed and all packages have been built. These channels are:
89-- *Stable channels*, such as [`nixos-24.11`](https://channels.nixos.org/nixos-24.11).
10 These only get conservative bug fixes and package upgrades. For
11 instance, a channel update may cause the Linux kernel on your system
12 to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
···19 radical changes between channel updates. It's not recommended for
20 production systems.
2122-- *Small channels*, such as [`nixos-24.11-small`](https://channels.nixos.org/nixos-24.11-small)
23 or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
24 These are identical to the stable and unstable channels described above,
25 except that they contain fewer binary packages. This means they get updated
···3839When you first install NixOS, you're automatically subscribed to the
40NixOS channel that corresponds to your installation source. For
41-instance, if you installed from a 24.11 ISO, you will be subscribed to
42-the `nixos-24.11` channel. To see which NixOS channel you're subscribed
43to, run the following as root:
4445```ShellSession
···54```
5556(Be sure to include the `nixos` parameter at the end.) For instance, to
57-use the NixOS 24.11 stable channel:
5859```ShellSession
60-# nix-channel --add https://channels.nixos.org/nixos-24.11 nixos
61```
6263If you have a server, you may want to use the "small" channel instead:
6465```ShellSession
66-# nix-channel --add https://channels.nixos.org/nixos-24.11-small nixos
67```
6869And if you want to live on the bleeding edge:
···117118```nix
119{
120- system.autoUpgrade.channel = "https://channels.nixos.org/nixos-24.11";
121}
122```
···6automatically from NixOS's Git repository after certain tests have
7passed and all packages have been built. These channels are:
89+- *Stable channels*, such as [`nixos-25.05`](https://channels.nixos.org/nixos-25.05).
10 These only get conservative bug fixes and package upgrades. For
11 instance, a channel update may cause the Linux kernel on your system
12 to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
···19 radical changes between channel updates. It's not recommended for
20 production systems.
2122+- *Small channels*, such as [`nixos-25.05-small`](https://channels.nixos.org/nixos-25.05-small)
23 or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
24 These are identical to the stable and unstable channels described above,
25 except that they contain fewer binary packages. This means they get updated
···3839When you first install NixOS, you're automatically subscribed to the
40NixOS channel that corresponds to your installation source. For
41+instance, if you installed from a 25.05 ISO, you will be subscribed to
42+the `nixos-25.05` channel. To see which NixOS channel you're subscribed
43to, run the following as root:
4445```ShellSession
···54```
5556(Be sure to include the `nixos` parameter at the end.) For instance, to
57+use the NixOS 25.05 stable channel:
5859```ShellSession
60+# nix-channel --add https://channels.nixos.org/nixos-25.05 nixos
61```
6263If you have a server, you may want to use the "small" channel instead:
6465```ShellSession
66+# nix-channel --add https://channels.nixos.org/nixos-25.05-small nixos
67```
6869And if you want to live on the bleeding edge:
···117118```nix
119{
120+ system.autoUpgrade.channel = "https://channels.nixos.org/nixos-25.05";
121}
122```
+1-1
nixos/doc/manual/release-notes/rl-2505.section.md
···452 Names are now known at evaluation time and customizable via the new options `image.baseName`, `image.extension`, `image.fileName` and `image.filePath` with the latter returning a path relative to the derivations out path (e.g. `iso/${image.fileName` for iso images).
453454 | `system.build` Option | Old Filename | New Filename |
455- |--------------------------+------------------------------------------------------------+-----------------------------------------------------------------|
456 | amazonImage | nixos-amazon-image-25.05pre-git-x86_64-linux.vhd | nixos-image-amazon-25.05pre-git-x86_64-linux.vhd |
457 | azureImage | disk.vhd | nixos-image-azure-25.05pre-git-x86_64-linux.vhd |
458 | digitalOceanImage | nixos.qcow2.gz | nixos-image-digital-ocean-25.05pre-git-x86_64-linux.qcow2.gz |
···452 Names are now known at evaluation time and customizable via the new options `image.baseName`, `image.extension`, `image.fileName` and `image.filePath` with the latter returning a path relative to the derivations out path (e.g. `iso/${image.fileName` for iso images).
453454 | `system.build` Option | Old Filename | New Filename |
455+ | ------------------------ | ---------------------------------------------------------- | ----------------------------------------------------------------|
456 | amazonImage | nixos-amazon-image-25.05pre-git-x86_64-linux.vhd | nixos-image-amazon-25.05pre-git-x86_64-linux.vhd |
457 | azureImage | disk.vhd | nixos-image-azure-25.05pre-git-x86_64-linux.vhd |
458 | digitalOceanImage | nixos.qcow2.gz | nixos-image-digital-ocean-25.05pre-git-x86_64-linux.qcow2.gz |
+3-3
pkgs/applications/emulators/wine/sources.nix
···132133 unstable = fetchurl rec {
134 # NOTE: Don't forget to change the hash for staging as well.
135- version = "10.5";
136 url = "https://dl.winehq.org/wine/source/10.x/wine-${version}.tar.xz";
137- hash = "sha256-wDbsHvR2dHdKX5lFgwIuni62j+j8GLOox55oWzvsibw=";
138139 patches = [
140 # Also look for root certificates at $NIX_SSL_CERT_FILE
···144 # see https://gitlab.winehq.org/wine/wine-staging
145 staging = fetchFromGitLab {
146 inherit version;
147- hash = "sha256-rXA/55rwQSJR247E4H7cQdTtXRmjomRbls7THV3jfcE=";
148 domain = "gitlab.winehq.org";
149 owner = "wine";
150 repo = "wine-staging";
···132133 unstable = fetchurl rec {
134 # NOTE: Don't forget to change the hash for staging as well.
135+ version = "10.7";
136 url = "https://dl.winehq.org/wine/source/10.x/wine-${version}.tar.xz";
137+ hash = "sha256-dRNnoxCZkNcD5ZDi21MBh8Th39Lo5hNzq4S0L+EbGPo=";
138139 patches = [
140 # Also look for root certificates at $NIX_SSL_CERT_FILE
···144 # see https://gitlab.winehq.org/wine/wine-staging
145 staging = fetchFromGitLab {
146 inherit version;
147+ hash = "sha256-4doo7B3eEoQaml6KX02OhcLGGiLcgNhYq4ry/iB7kLc=";
148 domain = "gitlab.winehq.org";
149 owner = "wine";
150 repo = "wine-staging";
+12
pkgs/applications/misc/pagefind/default.nix
···12 npmHooks,
13 python3,
14 rustc,
015 wasm-bindgen-cli_0_2_92,
16 wasm-pack,
17}:
···65 hash = "sha256-xFVMWX3q3za1w8v58Eysk6vclPd4qpCuQMjMcwwHoh0=";
66 };
670068 postPatch = ''
00069 # Tricky way to run npmConfigHook multiple times
70 (
71 local postPatchHooks=() # written to by npmConfigHook
···162 '';
163164 buildFeatures = [ "extended" ];
000000165166 meta = {
167 description = "Generate low-bandwidth search index for your static website";
···12 npmHooks,
13 python3,
14 rustc,
15+ versionCheckHook,
16 wasm-bindgen-cli_0_2_92,
17 wasm-pack,
18}:
···66 hash = "sha256-xFVMWX3q3za1w8v58Eysk6vclPd4qpCuQMjMcwwHoh0=";
67 };
6869+ env.GIT_VERSION = version;
70+71 postPatch = ''
72+ # Set the correct version, e.g. for `pagefind --version`
73+ node .backstage/version.cjs
74+75 # Tricky way to run npmConfigHook multiple times
76 (
77 local postPatchHooks=() # written to by npmConfigHook
···168 '';
169170 buildFeatures = [ "extended" ];
171+172+ doInstallCheck = true;
173+174+ nativeInstallCheckInputs = [
175+ versionCheckHook
176+ ];
177178 meta = {
179 description = "Generate low-bandwidth search index for your static website";
···3# and how deep in the tree they live. Equally-"popular" paths are then
4# sorted by name.
5#
6-# The existing writeReferencesToFile prints the paths in a simple
7-# ascii-based sorting of the paths.
8#
9# Sorting the paths by graph improves the chances that the difference
10# between two builds appear near the end of the list, instead of near
···3# and how deep in the tree they live. Equally-"popular" paths are then
4# sorted by name.
5#
6+# The existing writeClosure prints the paths in a simple ascii-based sorting of the paths.
07#
8# Sorting the paths by graph improves the chances that the difference
9# between two builds appear near the end of the list, instead of near