Skip to content
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

bats: improve package; move installCheck to passthru #170019

Merged
merged 2 commits into from
May 16, 2022

Conversation

abathur
Copy link
Member

@abathur abathur commented Apr 23, 2022

Description of changes
  • improve package w/ new resholve features
  • move installCheck into passthru.tests
Things done

Result of nixpkgs-review run on x86_64-linux 1

2 packages built:
  • bash-preexec
  • bats

Result of nixpkgs-review run on x86_64-darwin 1

2 packages built:
  • bash-preexec
  • bats
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • 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/)
  • 22.05 Release Notes (or backporting 21.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
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

abathur added 2 commits April 23, 2022 16:02
The resholve 0.8.0 release includes better support for intra-package
references, making it possible to also resholve files in lib/libexec.

This process helped shake loose 5 more unnoticed package dependencies,
and enable bats' parallel execution support.
I happily painted myself into a corner when converting bats to use
resholve. Since resholve tests itself with bats, all updates to
resholve now require rebuilding bats. The build itself is quick, but
the tests take a few minutes; moving them into passthru saves time. :)
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/848

flock # skips some tests if it can't detect
ps
] ++ lib.optionals stdenv.isDarwin [ lsof ];
inherit doInstallCheck;
Copy link
Member

Choose a reason for hiding this comment

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

All of this should not be in passtruh and only doCheck rule be overwritten.

Copy link
Member Author

@abathur abathur May 5, 2022

Choose a reason for hiding this comment

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

This is one of the main points of the PR, so I'm inclined to push back on this without sources/reasoning.

While this approach is rare, I don't think it's unprecedented within nixpkgs. It's also roughly aligned with the WIP recommendations in NixOS/rfcs#119 (specifically https://github.com/NixOS/rfcs/pull/119/files#diff-d207098de17afa3aaea2ef0e420b2b1c674b257267828c11e40928351df3e368R46-R54).

Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Member Author

@abathur abathur May 6, 2022

Choose a reason for hiding this comment

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

Ah. That makes sense, now--though it doesn't work in this case.

I may have mis-designed resholve's Nix API, but it produces an inner derivation straightforwardly, and then uses it as the source for an outer derivation that is passed through resholve.

I'm not sure if that is at all persuasive, but resholve's Nix API and this test can be incrementally improved in subsequent PRs.

Edit:
It may help if I am more concrete...

The test here overrides the inner (unresholved) output as a kludge to get access to the normal build's tests directory, but then it's using the outer (resholved) output to actually run the those tests.

Copy link
Member Author

Choose a reason for hiding this comment

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

@SuperSandro2000 ping? thoughts? I can also bug someone else if you're short on time :)

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/868

@SuperSandro2000 SuperSandro2000 merged commit 8a75471 into NixOS:master May 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants