Simplify comparing guix challenge results

  • Done
  • quality assurance status badge
Details
3 participants
  • Ludovic Courtès
  • Ricardo Wurmus
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
normal
V
V
Vagrant Cascadian wrote on 7 May 2019 20:02
(address . bug-guix@gnu.org)
87sgtqxhwi.fsf@yucca
I'd like to see a simpler process for comparing challenge results
producing differences.

While the manual documents how to compare a failing challenge result

| guix archive -x /tmp/git
$ diff -ur --no-dereference /gnu/store/…-git.2.5.0 /tmp/git

To check "git", you need to run "guix challenge git" and if the results
are inconclusive, manually cut-and-paste the correct URL(s) from the
challenge output and manually download it and unpack with guix archive,
and then run a comparison utility...

What about an argument to "guix challenge" that handles the downloading
and unpacking to a temporary directory, and possibly another that also
runs a comparison tool against the results. Maybe something like:

$ guix challenge --download-differences
/tmp/git-XXXXX/SUBSTITTE-X/...-git-2.5.0
/tmp/git-XXXXX/SUBSTITUTE-Y/...-git-2.5.0
/gnu/store/...-git-2.5.0

Downloads and unpacks the substitutes, and outputs the resulting
directories.


$ guix challenge --download-differences --compare-with="diffoscope ..."

This would do the above, plus run diffoscope on the directories
... though I think diffoscope can only compare between two things at a
time... so that might get difficult if many substitutes return results.


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

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXNHIHQAKCRDcUY/If5cW
qmXdAP95qyDG+bnknxZfhFVFZuzE3eLIhLSbvAm76MmQPpHCQgD/UGZudd1dDL2D
hmIIUuXK1VkwbLge+7R2pzOZaJ2uDgs=
=/t7l
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 8 May 2019 15:04
(name . Vagrant Cascadian)(address . vagrant@reproducible-builds.org)(address . 35621@debbugs.gnu.org)
87o94dw10g.fsf@gnu.org
Hi!

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

Toggle quote (19 lines)
> What about an argument to "guix challenge" that handles the downloading
> and unpacking to a temporary directory, and possibly another that also
> runs a comparison tool against the results. Maybe something like:
>
> $ guix challenge --download-differences
> /tmp/git-XXXXX/SUBSTITTE-X/...-git-2.5.0
> /tmp/git-XXXXX/SUBSTITUTE-Y/...-git-2.5.0
> /gnu/store/...-git-2.5.0
>
> Downloads and unpacks the substitutes, and outputs the resulting
> directories.
>
>
> $ guix challenge --download-differences --compare-with="diffoscope ..."
>
> This would do the above, plus run diffoscope on the directories
> ... though I think diffoscope can only compare between two things at a
> time... so that might get difficult if many substitutes return results.

Sounds like a good idea. Perhaps ‘--compare-with’ is actually enough
(it would also download things), dunno.

Ludo’.
R
R
Ricardo Wurmus wrote on 8 May 2019 22:28
(name . Ludovic Courtès)(address . ludo@gnu.org)
87zhnwd729.fsf@elephly.net
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (26 lines)
> Hi!
>
> Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:
>
>> What about an argument to "guix challenge" that handles the downloading
>> and unpacking to a temporary directory, and possibly another that also
>> runs a comparison tool against the results. Maybe something like:
>>
>> $ guix challenge --download-differences
>> /tmp/git-XXXXX/SUBSTITTE-X/...-git-2.5.0
>> /tmp/git-XXXXX/SUBSTITUTE-Y/...-git-2.5.0
>> /gnu/store/...-git-2.5.0
>>
>> Downloads and unpacks the substitutes, and outputs the resulting
>> directories.
>>
>>
>> $ guix challenge --download-differences --compare-with="diffoscope ..."
>>
>> This would do the above, plus run diffoscope on the directories
>> ... though I think diffoscope can only compare between two things at a
>> time... so that might get difficult if many substitutes return results.
>
> Sounds like a good idea. Perhaps ‘--compare-with’ is actually enough
> (it would also download things), dunno.

I think it’s fine to have just “--compare-with”, which would print the
location of the downloaded things, so you could compare with “echo” if
all you wanted is to get the differences.

--
Ricardo
L
L
Ludovic Courtès wrote on 9 Dec 2019 12:02
(name . Vagrant Cascadian)(address . vagrant@reproducible-builds.org)
87o8whhict.fsf@gnu.org
Hello!

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

Toggle quote (29 lines)
> I'd like to see a simpler process for comparing challenge results
> producing differences.
>
> While the manual documents how to compare a failing challenge result
>
> $ wget -q -O - https://ci.guix.info/nar/…-git-2.5.0 \
> | guix archive -x /tmp/git
> $ diff -ur --no-dereference /gnu/store/…-git.2.5.0 /tmp/git
>
> To check "git", you need to run "guix challenge git" and if the results
> are inconclusive, manually cut-and-paste the correct URL(s) from the
> challenge output and manually download it and unpack with guix archive,
> and then run a comparison utility...
>
> What about an argument to "guix challenge" that handles the downloading
> and unpacking to a temporary directory, and possibly another that also
> runs a comparison tool against the results. Maybe something like:
>
> $ guix challenge --download-differences
> /tmp/git-XXXXX/SUBSTITTE-X/...-git-2.5.0
> /tmp/git-XXXXX/SUBSTITUTE-Y/...-git-2.5.0
> /gnu/store/...-git-2.5.0
>
> Downloads and unpacks the substitutes, and outputs the resulting
> directories.
>
>
> $ guix challenge --download-differences --compare-with="diffoscope ..."

I had forgotten about this bug report (thanks for the reminder on IRC!)
and came up with something similar to/different from it:


Let’s see whether we should adapt it!

Ludo’.
L
L
Ludovic Courtès wrote on 12 Dec 2019 18:21
Re: [bug#38518] [PATCH 0/7] 'guix challenge' can diff archives directly
87o8wd5ujc.fsf@gnu.org
Hi,

Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (8 lines)
> serialization: Add 'fold-archive'.
> guix archive: Add '--list'.
> challenge: Report the best narinfo URI.
> serialization: Remove unused procedure.
> progress: Add 'progress-report-port'.
> challenge: Add "--diff".
> challenge: Support "--diff=diffoscope".

Pushed!

Ludo’.
Closed
?