How are releases tagged? #40

Closed
opened 2024-10-19 10:48:21 +00:00 by attilaolah · 3 comments

After trying to pin my flake to 2.91.1, I get the error below:

building the system configuration...
error:
       … while calling the 'head' builtin
         at /nix/store/riqkpszjqk02bi1wppfg8ip5xvh102qd-source/lib/attrsets.nix:1575:11:
         1574|         || pred here (elemAt values 1) (head values) then
         1575|           head values
             |           ^
         1576|         else

       … while evaluating the attribute 'value'
         at /nix/store/riqkpszjqk02bi1wppfg8ip5xvh102qd-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: attribute 'stable_upstream' missing
       at /nix/store/63f0m5kng7yg51z22d9rrpd60wcyblb4-source/overlay.nix:76:13:
           75|             (drv: (drv.pname or "") == "nix")
           76|             prev.nixVersions.stable_upstream # default to stable nix if nix is not an input
             |             ^
           77|             inputs;

Before the release, I was pinning Lix directly to 0dda988746 because I also couldn't build the system with 2.91.0; Now that 2.91.1 is out, I am pinning Lix to 81d9ff97c9 because that's the commit that fixes my build failure.

I'm a bit lost to where 81d9ff97c9 ended up, it's been authored 3 weeks ago, it's been in main for some time now, and 2.91.1 has been tagged less than a day ago, yet it doesn't include this commit.

I'm not sure if these release branches are meant to be cut from main, or if fixes were meant to be cherry-picked, but the end result is that I cannot pin my flake to a release and instead I have to look for versions that build.

Is there anything I can do here to help out? I'd be happy to run my home config against every single commit if that provides some usable signal, but what I'd like to have in the end is a flake pinned to either a "latest stable" (#39) or manually pinning to a version & updating with renovate. But for that I'd like to make sure that my config builds (provided I make any necessary changes on my end).

After trying to pin my flake to 2.91.1, I get the error below: ``` building the system configuration... error: … while calling the 'head' builtin at /nix/store/riqkpszjqk02bi1wppfg8ip5xvh102qd-source/lib/attrsets.nix:1575:11: 1574| || pred here (elemAt values 1) (head values) then 1575| head values | ^ 1576| else … while evaluating the attribute 'value' at /nix/store/riqkpszjqk02bi1wppfg8ip5xvh102qd-source/lib/modules.nix:816:9: 815| in warnDeprecation opt // 816| { value = addErrorContext "while evaluating the option `${showOption loc}':" value; | ^ 817| inherit (res.defsFinal') highestPrio; (stack trace truncated; use '--show-trace' to show the full trace) error: attribute 'stable_upstream' missing at /nix/store/63f0m5kng7yg51z22d9rrpd60wcyblb4-source/overlay.nix:76:13: 75| (drv: (drv.pname or "") == "nix") 76| prev.nixVersions.stable_upstream # default to stable nix if nix is not an input | ^ 77| inputs; ``` Before the release, I was pinning Lix directly to 0dda9887467c1ac338d277e358e7eb86e08d34b4 because I also couldn't build the system with 2.91.0; Now that 2.91.1 is out, I am pinning Lix to 81d9ff97c93289bb1592ae702d11173724a643fa because that's the commit that fixes my build failure. I'm a bit lost to where 81d9ff97c93289bb1592ae702d11173724a643fa ended up, it's been authored 3 weeks ago, it's been in main for some time now, and 2.91.1 has been tagged less than a day ago, yet it doesn't include this commit. I'm not sure if these release branches are meant to be cut from main, or if fixes were meant to be cherry-picked, but the end result is that I cannot pin my flake to a release and instead I have to look for versions that build. Is there anything I can do here to help out? I'd be happy to run my home config against every single commit if that provides some usable signal, but what I'd like to have in the end is a flake pinned to either a "latest stable" (#39) or manually pinning to a version & updating with renovate. But for that I'd like to make sure that my config builds (provided I make any necessary changes on my end).
Owner

the answer to your question is i fucked up some cherry picks. sorry.

the answer to your question is i fucked up some cherry picks. sorry.
Owner

what I'm going to do about it is add more flake checks such that it's harder to screw up module releases. i did run the tests. they were inadequate. but yeah :/

release engineering only makes me want to cry, especially when people write issues assuming I'm incompetent rather than overworked and burned out by maintaining fragile code that breaks due to external influence. the reason that the 2.91 branch got into a rather questionable git state is that i made an attempt to bring it in line with the main version and most likely screwed up a merge conflict while doing so and then the tests were inadequate.

what I'm going to do about it is add more flake checks such that it's harder to screw up module releases. i did run the tests. they were inadequate. but yeah :/ release engineering only makes me want to cry, especially when people write issues assuming I'm incompetent rather than overworked and burned out by maintaining fragile code that breaks due to external influence. the reason that the 2.91 branch got into a rather questionable git state is that i made an attempt to bring it in line with the main version and most likely screwed up a merge conflict while doing so and then the tests were inadequate.
Owner

alright there is a 2.91.1-1 tag. i will open a new issue to fix the validation since clearly we are not doing a good enough job (and what we have already confuses users).

alright there is a 2.91.1-1 tag. i will open a new issue to fix the validation since clearly we are not doing a good enough job (and what we have already confuses users).
jade closed this issue 2024-10-19 17:55:48 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lix-project/nixos-module#40
No description provided.