From 44afe62be7c85d70cc10e92848493af30912bf48 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Tue, 24 Feb 2026 11:43:21 -0800 Subject: [PATCH 1/2] Add flags to tune cores & jobs in build --- src/cmd/build.rs | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/src/cmd/build.rs b/src/cmd/build.rs index 3713560..766f084 100644 --- a/src/cmd/build.rs +++ b/src/cmd/build.rs @@ -22,6 +22,14 @@ pub(crate) struct Build { /// The specific Nix system to build for (otherwise infer the current system from arch/OS information). #[arg(short, long, env = "FLAKE_ITER_NIX_SYSTEM")] system: Option, + + /// Number of concurrent Nix builds + #[arg(short = 'j', long, env = "FLAKE_ITER_BUILD_JOBS")] + build_jobs: Option, + + /// Number of cores to utilize per job + #[arg(short = 'c', long, env = "FLAKE_ITER_BUILD_CORES")] + build_cores: Option, } impl Build { @@ -88,19 +96,34 @@ impl Build { } } + let mut args: Vec = + vec![String::from("build"), String::from("--print-out-paths")]; + + if let Some(cores) = &self.build_cores { + let cores = cores.to_string(); + args.push(String::from("--cores")); + args.push(cores); + } + + if let Some(max_jobs) = &self.build_jobs { + let max_jobs = max_jobs.to_string(); + args.push(String::from("--max-jobs")); + args.push(max_jobs); + } + + if verbose { + args.push(String::from("--print-build-logs")); + } + + args.push(drv); + + let args: Vec<&str> = args.iter().map(String::as_str).collect(); + + info!("Building derivation {} of {num}", n + 1); if verbose { - debug!(drv, "Building derivation {} of {num}", n + 1); - nix_command_pipe_no_output(&[ - "build", - "--print-out-paths", - "--print-build-logs", - &drv, - ]) - .wrap_err("failed to build derivation")?; + nix_command_pipe_no_output(&args).wrap_err("failed to build derivation")?; } else { - info!("Building derivation {} of {num}", n + 1); - nix_command(&["build", "--print-out-paths", &drv]) - .wrap_err("failed to build derivation")?; + nix_command(&args).wrap_err("failed to build derivation")?; } } From abb12e7d51dac47e5c963427c0facae2aab08e67 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Tue, 24 Feb 2026 11:46:13 -0800 Subject: [PATCH 2/2] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'fenix': 'https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.2471%2Brev-df3c2e78ec13418f85c1f26e77a50f865ec57d38/019ad905-65fc-7ba6-8d92-a0b2cf1c6ea6/source.tar.gz' (2025-12-01) → 'https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.2542%2Brev-78d518f5ca32a86dc767de481160dbae640c70cf/019c1851-0ed1-7f81-b175-8e8bbad651e6/source.tar.gz' (2026-02-01) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/d646b23' (2025-11-30) → 'github:rust-lang/rust-analyzer/17304e9' (2026-01-31) • Updated input 'nixpkgs': 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.903561%2Brev-c8cfcd6ccd422e41cc631a0b73ed4d5a925c393d/019b231b-8461-7fef-af86-fa7662ea16ad/source.tar.gz' (2025-12-15) → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.908322%2Brev-e764fc9a405871f1f6ca3d1394fb422e0a0c3951/019c90c7-b2fa-759d-838f-611ca6eed88b/source.tar.gz' (2026-02-24) --- flake.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/flake.lock b/flake.lock index b9c0a4e..f020ff4 100644 --- a/flake.lock +++ b/flake.lock @@ -22,12 +22,12 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1764571808, - "narHash": "sha256-+oo9W5rz03TjfpNqDSLEQwgKiuBbjrHdORyTHli2RuM=", - "rev": "df3c2e78ec13418f85c1f26e77a50f865ec57d38", - "revCount": 2471, + "lastModified": 1769929675, + "narHash": "sha256-EBpe7sXCPLs+qVePXbA7kc+Kmpmp0pWysEpjjEWTK+E=", + "rev": "78d518f5ca32a86dc767de481160dbae640c70cf", + "revCount": 2542, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.2471%2Brev-df3c2e78ec13418f85c1f26e77a50f865ec57d38/019ad905-65fc-7ba6-8d92-a0b2cf1c6ea6/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.2542%2Brev-78d518f5ca32a86dc767de481160dbae640c70cf/019c1851-0ed1-7f81-b175-8e8bbad651e6/source.tar.gz" }, "original": { "type": "tarball", @@ -50,12 +50,12 @@ }, "nixpkgs": { "locked": { - "lastModified": 1765762245, - "narHash": "sha256-3iXM/zTqEskWtmZs3gqNiVtRTsEjYAedIaLL0mSBsrk=", - "rev": "c8cfcd6ccd422e41cc631a0b73ed4d5a925c393d", - "revCount": 903561, + "lastModified": 1771903837, + "narHash": "sha256-sdaqdnsQCv3iifzxwB22tUwN/fSHoN7j2myFW5EIkGk=", + "rev": "e764fc9a405871f1f6ca3d1394fb422e0a0c3951", + "revCount": 908322, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.903561%2Brev-c8cfcd6ccd422e41cc631a0b73ed4d5a925c393d/019b231b-8461-7fef-af86-fa7662ea16ad/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.908322%2Brev-e764fc9a405871f1f6ca3d1394fb422e0a0c3951/019c90c7-b2fa-759d-838f-611ca6eed88b/source.tar.gz" }, "original": { "type": "tarball", @@ -73,11 +73,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1764525349, - "narHash": "sha256-vR3vU9AwzMsBvjNeeG2inA5W/2MwseFk5NIIrLFEMHk=", + "lastModified": 1769857242, + "narHash": "sha256-3eKpRRzKz0KzY7CJzRXFm4POwEqbuTohyQ2ajI/zKvg=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "d646b23f000d099d845f999c2c1e05b15d9cdc78", + "rev": "17304e9c7e11d26139672d3d77aa498b1cae0d69", "type": "github" }, "original": {