Skip to content

stdenv: log hooks as they run (take II)#310387

Merged
RaitoBezarius merged 1 commit intoNixOS:stagingfrom
Qyriad:diag/log-hooks2
Jun 19, 2024
Merged

stdenv: log hooks as they run (take II)#310387
RaitoBezarius merged 1 commit intoNixOS:stagingfrom
Qyriad:diag/log-hooks2

Conversation

@Qyriad
Copy link
Member

@Qyriad Qyriad commented May 9, 2024

Description of changes

A second take at #290081, which changes the stdenv builder to log setup and build hooks as they run, but which was reverted for the extra logging during the internals of nix-shell -p. This PR does the same logging, but to $NIX_LOG_FD instead, which is echoed during any normal build, but not during the internals of nix-shell -p.

cc @philiptaron @RaitoBezarius from the last PR

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@Qyriad Qyriad requested a review from Ericson2314 as a code owner May 9, 2024 17:44
@github-actions github-actions bot added the 6.topic: stdenv Standard environment label May 9, 2024
@ofborg ofborg bot added 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. labels May 9, 2024
@Qyriad Qyriad force-pushed the diag/log-hooks2 branch from 2babc9c to 8217949 Compare May 11, 2024 18:07
@Qyriad
Copy link
Member Author

Qyriad commented May 11, 2024

Rebased on latest staging

@RaitoBezarius
Copy link
Member

I would recommend to wait for the next staging cycle as the current one is the last NixOS 24.05's one.

Copy link
Contributor

@philiptaron philiptaron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good to me. I'm currently building a representative sample of nixpkgs, and I see the hook logging.

@Qyriad Qyriad force-pushed the diag/log-hooks2 branch from 8217949 to 7d50528 Compare May 12, 2024 01:10
@Qyriad Qyriad force-pushed the diag/log-hooks2 branch 2 times, most recently from c9dce8e to 9919521 Compare May 22, 2024 22:09
@Qyriad
Copy link
Member Author

Qyriad commented May 22, 2024

Now that the last staging cycle for 24.05 has been done, this PR should be ready

A second take at eb28e5e, which was reverted for the extra logging
during the internals of `nix-shell -p`. This commit does the same
logging, but to $NIX_LOG_FD instead, which is echoed during any normal
build, but not during the internals of `nix-shell -p`.

[1]: eb28e5e
@Qyriad Qyriad force-pushed the diag/log-hooks2 branch from 9919521 to 7acc356 Compare May 22, 2024 22:29
@wegank wegank added the 12.approvals: 1 This PR was reviewed and approved by one person. label May 23, 2024
@wegank wegank added 12.approvals: 2 This PR was reviewed and approved by two persons. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Jun 2, 2024
Copy link
Contributor

@paparodeo paparodeo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM tested with nix-shell on master
$ curl -L https://github.com/NixOS/nixpkgs/pull/310387.patch | git apply
$ cat test.sh
#!/usr/bin/env nix-shell
#! nix-shell -i bash --pure
#! nix-shell -p hello
hello
$ NIX_PATH=nixpkgs=`pwd` ./test.sh  | tee stdout.log
[...]
$ cat stdout.log
Hello, world!

@philiptaron philiptaron added 12.approvals: 3+ This PR was reviewed and approved by three or more persons. and removed 12.approvals: 2 This PR was reviewed and approved by two persons. labels Jun 11, 2024
@RaitoBezarius RaitoBezarius merged commit 193b2c7 into NixOS:staging Jun 19, 2024
@philiptaron
Copy link
Contributor

Let's rumble! Thanks to everyone for getting this through and thanks to @Qyriad for authoring it. I really like how it helps make what's going on with hooks more understandable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: stdenv Standard environment 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. 12.approvals: 3+ This PR was reviewed and approved by three or more persons.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants