option to run diffoscope with guix build --rounds=N and --check

  • Open
  • quality assurance status badge
Details
One participant
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
normal
V
V
Vagrant Cascadian wrote on 6 Jun 2022 23:09
(address . bug-guix@gnu.org)
87tu8xfqik.fsf@contorta
When I do:

guix build --rounds=2 PACKAGE

And the results differ, the process of actually running diffoscope on
the results is very manual and a bit hard to automate. I might get
output like:

guix build: error: derivation
`/gnu/store/dn50zya4d1zh21q6s3nh7f394s7ksknv-autogen-5.18.16.drv' may
not be deterministic: output
`/gnu/store/04byv4py1firka28h3nl70bj1g0a3n6k-autogen-5.18.16' differs
from
?/gnu/store/04byv4py1firka28h3nl70bj1g0a3n6k-autogen-5.18.16-check?

First of all, I have to actually remember to run:

guix build --rounds=2 --keep-failed PACKAGE

Would it be crazy for --rounds=N resonably assume --keep-failed ?

Then it'll actually keep the produced /gnu/store/*-check ... then I have
to screen-scrape the right files, sometimes accidentally grabbing the
.drv instead of the right directory, and pass both the regular store
item and the /gnu/store/*-check item ... if i get everything right I end
up with:

diffoscope /gnu/store/HASH-PACKAGE-VERSION /gnu/store/HASH-PACKAGE-VERSION-check

And that basically works... but it is a very manual process...

guix already has a similar tool to handle this sort of thing:

guix challenge --diff=diffoscope PACKAGE

But that assumes you are comparing things from your local build and the
substitute server or servers, not two locally built things.

How plausible would it be to implement something simile to "guix
challenge --diff=diffoscope" like:

guix build --rounds=2 --keep-failed --diff=diffoscope

(or could --diff=diffoscope *assume* --keep-failed ?)

Oh, and... basically all of the above applies for:

guix build --check PACKAGE

e.g. --keep-failed by default, option to support --diff=diffoscope, etc.


Thanks for considering!


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYp5tBAAKCRDcUY/If5cW
qm/WAP9A6YyeK7lu6xGDJ8/3ij0A49mFRLskc5k2e9wQ/LsGZAEAlbBRkeFaiBL4
NnrXMVU1JQfA4Elcouy6MFdwZw/oag4=
=eSY7
-----END PGP SIGNATURE-----

?