From 24d5ac84b356cf9c3fa0e9028b946b82dfeb1c9a Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 22 Feb 2026 02:28:56 +0000 Subject: [PATCH 1/2] {ci/eval,release}: migrate supported systems to `top-level` The supported systems can differ across release branches. The original file is kept until the GitHub CI is migrated. --- ci/eval/README.md | 4 ++-- ci/eval/default.nix | 5 +++-- ci/eval/outpaths.nix | 4 +++- pkgs/top-level/release-haskell.nix | 2 +- pkgs/top-level/release-supported-systems.json | 6 ++++++ pkgs/top-level/release.nix | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 pkgs/top-level/release-supported-systems.json diff --git a/ci/eval/README.md b/ci/eval/README.md index 9a7aace26851..c9bd2d20aa7d 100644 --- a/ci/eval/README.md +++ b/ci/eval/README.md @@ -10,14 +10,14 @@ nix-build ci -A eval.baseline The two most important arguments are: - `--arg evalSystems`: The set of systems for which `nixpkgs` should be evaluated. - Defaults to the four official platforms (`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`). + Defaults to the [supported systems](../../pkgs/top-level/release-supported-systems.json) for the branch. Example: `--arg evalSystems '["x86_64-linux" "aarch64-darwin"]'` - `--arg quickTest`: Enables testing a single chunk of the current system only for quick iteration. Example: `--arg quickTest true` The following arguments can be used to fine-tune performance: - `--max-jobs`: The maximum number of derivations to run at the same time. - Only each [supported system](../supportedSystems.json) gets a separate derivation, so it doesn't make sense to set this higher than that number. + Only each supported system gets a separate derivation, so it doesn't make sense to set this higher than that number. - `--cores`: The number of cores to use for each job. Recommended to set this to the number of cores on your system divided by `--max-jobs`. - `--arg chunkSize`: The number of attributes that are evaluated simultaneously on a single core. diff --git a/ci/eval/default.nix b/ci/eval/default.nix index b8d3d3224a04..7c0a2e9f3139 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -38,7 +38,6 @@ let fileset = unions ( map (lib.path.append ../..) [ ".version" - "ci/supportedSystems.json" "ci/eval/attrpaths.nix" "ci/eval/chunk.nix" "ci/eval/outpaths.nix" @@ -53,7 +52,9 @@ let ); }; - supportedSystems = builtins.fromJSON (builtins.readFile ../supportedSystems.json); + supportedSystems = builtins.fromJSON ( + builtins.readFile ../../pkgs/top-level/release-supported-systems.json + ); attrpathsSuperset = { diff --git a/ci/eval/outpaths.nix b/ci/eval/outpaths.nix index cd26b75ec493..3a8259b8f48c 100755 --- a/ci/eval/outpaths.nix +++ b/ci/eval/outpaths.nix @@ -10,7 +10,9 @@ attrNamesOnly ? false, # Set this to `null` to build for builtins.currentSystem only - systems ? builtins.fromJSON (builtins.readFile ../supportedSystems.json), + systems ? builtins.fromJSON ( + builtins.readFile (path + "/pkgs/top-level/release-supported-systems.json") + ), # Customize the config used to evaluate nixpkgs extraNixpkgsConfig ? { }, diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 69f212340c29..1515645fb40e 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -10,7 +10,7 @@ $ hydra-eval-jobs -I . pkgs/top-level/release-haskell.nix */ { - supportedSystems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json), + supportedSystems ? builtins.fromJSON (builtins.readFile ./release-supported-systems.json), }: let diff --git a/pkgs/top-level/release-supported-systems.json b/pkgs/top-level/release-supported-systems.json new file mode 100644 index 000000000000..44c18f1abf0e --- /dev/null +++ b/pkgs/top-level/release-supported-systems.json @@ -0,0 +1,6 @@ +[ + "aarch64-linux", + "aarch64-darwin", + "x86_64-linux", + "x86_64-darwin" +] diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 2d0c24ba761b..1ea39f2ce68e 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -19,7 +19,7 @@ system ? builtins.currentSystem, officialRelease ? false, # The platform doubles for which we build Nixpkgs. - supportedSystems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json), + supportedSystems ? builtins.fromJSON (builtins.readFile ./release-supported-systems.json), # The platform triples for which we build bootstrap tools. bootstrapConfigs ? [ "arm64-apple-darwin" From 1e7a16f3e50ae95c4267bf4a33ce43f500296a4d Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 18 Feb 2026 02:25:26 +0000 Subject: [PATCH 2/2] release-staging: use `release-supported-systems.json` For consistency with `release.nix`. --- pkgs/top-level/release-staging.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pkgs/top-level/release-staging.nix b/pkgs/top-level/release-staging.nix index 3782c2c3d0c1..a789bb29e015 100644 --- a/pkgs/top-level/release-staging.nix +++ b/pkgs/top-level/release-staging.nix @@ -12,12 +12,7 @@ revision = "0000000000000000000000000000000000000000"; }, # The platform doubles for which we build Nixpkgs. - supportedSystems ? [ - "x86_64-linux" - "x86_64-darwin" - "aarch64-linux" - "aarch64-darwin" - ], + supportedSystems ? builtins.fromJSON (builtins.readFile ./release-supported-systems.json), # Attributes passed to nixpkgs. Don't build packages marked as unfree. nixpkgsArgs ? { config = {