-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
express #208478 as assertions #210019
express #208478 as assertions #210019
Conversation
It probably depends on how one looks at the stage's description. If stage's description says "resulting stage1 stdenv: binutils from nixpkgs" it can mean 2 things:
I think I used Just to trace through one example: if we pick Checking:
I think that checks out fine: |
Oh I see. If
The choice is arbitrary, and both choices have confusing corner cases. I've updated the commit message. |
Somehow this reminds me of @trofi's avatar artwork. 😄 |
Resolved merge conflict. |
This PR has been absorbed into #209870, which is now ready for review. |
PR #208478 added a lot of documentation about which packages were rebuilt in each stage of the stdenv bootstrap. However nothing checks that these comments agree with reality; they can bitrot over time. This PR rewrites those comments as assertions, so they cannot bitrot. This conversion did expose some ambiguity in our scheme for naming the stages. Suppose that `pkgs.stdenv.name=="stdenv-stage4", then which of these is "the stage4 coreutils"? ``` pkgs.coreutils pkgs.stdenv.__bootPackages.coreutils ``` The choice is arbitrary, and both choices have confusing corner cases. We should revisit this at some point.
Squashed. |
I just wanted to say that I really that we add more safe guards to the bootstrapping process to make it less error prone for changes. |
Description of changes
PR #208478 added a lot of documentation about which packages were rebuilt in each stage of the stdenv bootstrap. However nothing checks that these comments agree with reality; they can bitrot over time. This PR rewrites those comments as assertions, so they cannot bitrot.
This conversion did expose some ambiguity in our scheme for naming the stages. Suppose that
pkgs.stdenv.name=="stdenv-stage4"
. Which of these is "the stage4 coreutils"?The choice is arbitrary, and both choices have confusing corner cases. We should revisit this at some point.
Things done