Nixpkgs-review 3.0.0

We released nixpkgs-review 3.0.0 recently.
One prominent feature is the support for using evaluation results directly from github actions
instead of having to run evaluation locally or rely on the slower ofborg results.
Thanks to @GaetanLepage for working on this.
To use this feature you however need to provide a GITHUB_TOKEN.
You can obtain one using the gh:

$ export GITHUB_TOKEN=$(gh auth token)
$ nixpkgs-review pr <pr_number>

We hope to integrate this tool better in future versions.

42 Likes

Is there a goal to do split evals like we do on CI? I struggle with nixpkgs-review on my MBP due to only having 16GB of RAM, I have to run with everything off to get a review shell to spin up due to expensive nix-eval’s. My Ampere Altra has the RAM but slow due to being slower ARM cores.

3 Likes

Gaetan is working on that now: local evaluation: use nixpkgs ci.eval parallel implementation by GaetanLepage ¡ Pull Request #440 ¡ Mic92/nixpkgs-review ¡ GitHub :smiley:

6 Likes

so that I don’t misunderstand: there’s no possibility that using an eval from GHA could produce a different result to doing the eval locally, right? (as opposed to directly using built artifacts, e.g. by following r-ryantm’s “download from the cache” instructions, which clearly could cause e.g. a build nondeterminism to pass by unnoticed.)

Currently local evaluation includes unfree packages, which are not included in the github evaluation.

I think they are included (at least the labels account for unfree packages). Only ofborg ignored them completely.

Ok. Good to know. I thought the evaluation expression we had in nixpkgs were closer aligned with what we used to use in ofborg before.

what permissions does the github token need?

None. Just the standard public read‐only permissions on a fine‐grained token works fine. (Edit: Whoops, thought this was about Nix’s direct use of the GitHub API. Though I expect the answer is the same regardless.)

I guess it needs a bit more if --post-results or so is used.

The one that gh generates seems to work for me for everything.

1 Like