Backport changes from upstream #14189#225
Conversation
WalkthroughUpdates DerivationOptions::fromStructuredAttrs to use std::move when inserting into exportReferencesGraph. Adjusts a functional test to require Nix daemon version 2.33 instead of 2.4pre20210712, and updates related comments. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
src/libstore/derivation-options.cc(1 hunks)tests/functional/structured-attrs.sh(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: build_x86_64-linux / build
- GitHub Check: build_aarch64-darwin / build
🔇 Additional comments (1)
src/libstore/derivation-options.cc (1)
235-235: LGTM! Good use of move semantics.This optimization correctly uses
std::move(ss)to avoid an unnecessary copy when inserting theStringSetinto the map. Sincessis a loop-local variable that's not used after this point, moving it is both safe and efficient.
| # https://github.com/NixOS/nix/pull/14189 | ||
| requireDaemonNewerThan "2.33" |
There was a problem hiding this comment.
🧩 Analysis chain
Verify the daemon version "2.33" is valid.
The version requirement changed from "2.4pre20210712" to "2.33", which appears to be a significant version jump. Please confirm that "2.33" is a valid and released Nix daemon version, as this could cause the test to fail or be skipped incorrectly if the version doesn't exist or isn't properly formatted.
Run the following script to check for the existence and validity of Nix version 2.33:
Additionally, search the web to confirm Nix version 2.33 exists:
🏁 Script executed:
#!/bin/bash
# Check if Nix version 2.33 exists and is valid
# Search for version references in the codebase
echo "=== Searching for version 2.33 references ==="
rg -nC3 '2\.33' --type=sh --type=cc --type=cpp --type=h
# Check release notes or version files
echo -e "\n=== Checking for version documentation ==="
fd -e md -e txt -e rst | xargs rg -l 'version.*2\.33|2\.33.*release' 2>/dev/null || echo "No version documentation found"
# Look for the requireDaemonNewerThan function definition
echo -e "\n=== Finding requireDaemonNewerThan implementation ==="
rg -A10 'requireDaemonNewerThan\s*\(' --type=shLength of output: 831
🌐 Web query:
What is Nix version 2.33? Is it a released version of the Nix package manager?
💡 Result:
Short answer: No — Nix 2.33 is not a released version (as of Oct 9, 2025). The latest announced release is Nix 2.32.0 (Oct 7, 2025). See the Nix release announcement and the official release-notes pages. [1][2]
Sources:
- Nix 2.32.0 release announcement (Discourse). [1]
- Nix release notes / manual (release pages listing recent versions). [2]
Invalid Nix daemon version “2.33”
The test requires a daemon ≥ 2.33, but no such release exists (latest is 2.32.0). Update the version requirement to a valid released version or confirm the upcoming 2.33 release before merging.
🤖 Prompt for AI Agents
In tests/functional/structured-attrs.sh around lines 5 to 6, the test currently
requires a Nix daemon version "2.33" which does not exist; change the
requirement to a valid released version (for example requireDaemonNewerThan
"2.32.0") or, if you intend to gate this on an unreleased 2.33, hold off merging
until that release is published and then update the string to the actual
released version number.
Motivation
Context
Summary by CodeRabbit
Performance Improvements
Tests