Mic92 / nixpkgs-review

Review pull-requests on https://github.com/NixOS/nixpkgs
MIT License
410 stars 66 forks source link

Feat: add support for multi-systems #419

Closed GaetanLepage closed 1 month ago

GaetanLepage commented 2 months ago

This PR addresses #400 by allowing to evaluate a PR/revision for multiple systems at once. You can now provide the --systems option with a list of systems to evaluate:

Progress

[!Note]

This is still a WIP. The tool works fine when using ofborg eval but I have not yet adapted to local evaluation. The code is quite dirty for now and will require more polish once everything will be working. Also, I am fully open to suggestions regarding the solution and coding style.

I am eager to receive some feedback !

Technical details

cc @Mic92 @natsukium

Mic92 commented 2 months ago

Changing report.json will need changes in nipkgs-update as well.

Mic92 commented 2 months ago

From the code it looks like you handle local evaluation as well, no?

GaetanLepage commented 2 months ago

From the code it looks like you handle local evaluation as well, no?

No, the build_commit method of Review is broken and has not been adapted.

GaetanLepage commented 2 months ago

I have a sequential version working for --eval local. Basically, it calls nix-env for each system, one after the other. We could work on calling them all in parallel, but we would need to provide an option as having 4 of them simultaneously requires a lot of RAM (sometimes even 64GB is not enough).

GaetanLepage commented 2 months ago

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 342734


x86_64-linux

:fast_forward: 2 packages marked as broken and skipped:
  • python311Packages.bambi
  • python311Packages.bambi.dist
:white_check_mark: 16 packages built:
  • python311Packages.arviz
  • python311Packages.arviz.dist
  • python311Packages.corner
  • python311Packages.corner.dist
  • python311Packages.flowmc
  • python311Packages.flowmc.dist
  • python311Packages.numpyro
  • python311Packages.numpyro.dist
  • python311Packages.pymc
  • python311Packages.pymc.dist
  • python312Packages.arviz
  • python312Packages.arviz.dist
  • python312Packages.corner
  • python312Packages.corner.dist
  • python312Packages.numpyro
  • python312Packages.numpyro.dist

aarch64-linux

:fast_forward: 2 packages marked as broken and skipped:
  • python311Packages.bambi
  • python311Packages.bambi.dist
:white_check_mark: 14 packages built:
  • python311Packages.arviz
  • python311Packages.arviz.dist
  • python311Packages.corner
  • python311Packages.corner.dist
  • python311Packages.numpyro
  • python311Packages.numpyro.dist
  • python311Packages.pymc
  • python311Packages.pymc.dist
  • python312Packages.arviz
  • python312Packages.arviz.dist
  • python312Packages.corner
  • python312Packages.corner.dist
  • python312Packages.numpyro
  • python312Packages.numpyro.dist

x86_64-darwin

:fast_forward: 16 packages marked as broken and skipped:
  • python311Packages.arviz
  • python311Packages.arviz.dist
  • python311Packages.bambi
  • python311Packages.bambi.dist
  • python311Packages.corner
  • python311Packages.corner.dist
  • python311Packages.numpyro
  • python311Packages.numpyro.dist
  • python311Packages.pymc
  • python311Packages.pymc.dist
  • python312Packages.arviz
  • python312Packages.arviz.dist
  • python312Packages.corner
  • python312Packages.corner.dist
  • python312Packages.numpyro
  • python312Packages.numpyro.dist

aarch64-darwin

:fast_forward: 6 packages marked as broken and skipped:
  • python311Packages.bambi
  • python311Packages.bambi.dist
  • python311Packages.flowmc
  • python311Packages.flowmc.dist
  • python311Packages.pymc
  • python311Packages.pymc.dist
:x: 8 packages failed to build:
  • python311Packages.arviz
  • python311Packages.arviz.dist
  • python311Packages.corner
  • python311Packages.corner.dist
  • python312Packages.arviz
  • python312Packages.arviz.dist
  • python312Packages.corner
  • python312Packages.corner.dist
:white_check_mark: 4 packages built:
  • python311Packages.numpyro
  • python311Packages.numpyro.dist
  • python312Packages.numpyro
  • python312Packages.numpyro.dist