* [bug#56092] [PATCH] challenge: Do nothing when passed zero arguments.
@ 2022-06-19 13:55 Ludovic Courtès
2022-06-20 14:48 ` Maxime Devos
0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2022-06-19 13:55 UTC (permalink / raw)
To: 56092; +Cc: Ludovic Courtès, Vagrant Cascadian
Previously, 'guix challenge' without arguments would list live store
items that had been locally built. This was deemed confusing,
especially since 'list-live' is an expensive operation.
* guix/scripts/challenge.scm (guix-challenge): Warn and exit with 0 when
FILES is empty.
* doc/guix.texi (Invoking guix challenge): Update accordingly.
---
doc/guix.texi | 38 ++++++++++++++++++++++----------------
guix/scripts/challenge.scm | 5 +++--
2 files changed, 25 insertions(+), 18 deletions(-)
Hi!
This changes ‘guix challenge’ such that, with no arguments, it does
nothing, which is arguably less confusing that the current behavior.
Thoughts?
Ludo’.
diff --git a/doc/guix.texi b/doc/guix.texi
index 86348fc02c..75b8eca38d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14911,7 +14911,9 @@ any given store item.
The command output looks like this:
@smallexample
-$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org"
+$ guix challenge \
+ --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org" \
+ openssl git pius coreutils grep
updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER-1}'... 100.0%
updating list of substitutes from 'https://guix.example.org'... 100.0%
/gnu/store/@dots{}-openssl-1.0.2d contents differ:
@@ -14938,18 +14940,20 @@ updating list of substitutes from 'https://guix.example.org'... 100.0%
@dots{}
-6,406 store items were analyzed:
- - 4,749 (74.1%) were identical
- - 525 (8.2%) differed
- - 1,132 (17.7%) were inconclusive
+5 store items were analyzed:
+ - 2 (40.0%) were identical
+ - 3 (60.0%) differed
+ - 0 (0.0%) were inconclusive
@end smallexample
@noindent
-In this example, @command{guix challenge} first scans the store to
-determine the set of locally-built derivations---as opposed to store
-items that were downloaded from a substitute server---and then queries
-all the substitute servers. It then reports those store items for which
-the servers obtained a result different from the local build.
+In this example, @command{guix challenge} queries all the substitute
+servers for each of the fives packages specified on the command line.
+It then reports those store items for which the servers obtained a
+result different from the local build (if it exists) and/or different
+from one another; here, the @samp{local hash} lines indicate that a
+local build result was available for each of these packages and shows
+its hash.
@cindex non-determinism, in package builds
As an example, @code{guix.example.org} always gets a different answer.
@@ -15005,19 +15009,21 @@ whether @code{@value{SUBSTITUTE-SERVER-1}} and other substitute servers obtain t
same build result as you did with:
@example
-$ guix challenge @var{package}
+guix challenge @var{package}
@end example
-@noindent
-where @var{package} is a package specification such as
-@code{guile@@2.0} or @code{glibc:debug}.
-
The general syntax is:
@example
-guix challenge @var{options} [@var{packages}@dots{}]
+guix challenge @var{options} @var{argument}@dots{}
@end example
+@noindent
+where @var{argument} is a package specification such as
+@code{guile@@2.0} or @code{glibc:debug} or, alternatively, a store file
+name as returned, for example, by @command{guix build} or @command{guix
+gc --list-live}.
+
When a difference is found between the hash of a locally-built item and
that of a server-provided substitute, or among substitutes provided by
different servers, the command displays it as in the example above and
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index 96ffe53a85..1fdf245505 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -530,8 +530,9 @@ (define-command (guix-challenge . args)
(current-terminal-columns (terminal-columns)))
(let ((files (match files
(()
- (filter (cut locally-built? store <>)
- (live-paths store)))
+ (warning
+ (G_ "no arguments specified, nothing to do~%"))
+ (exit 0))
(x
files))))
(set-build-options store
base-commit: 7f208f68dea828fe02718ca8ce81d5975136cff8
--
2.36.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#56092] [PATCH] challenge: Do nothing when passed zero arguments.
2022-06-19 13:55 [bug#56092] [PATCH] challenge: Do nothing when passed zero arguments Ludovic Courtès
@ 2022-06-20 14:48 ` Maxime Devos
2022-06-20 20:15 ` Ludovic Courtès
0 siblings, 1 reply; 5+ messages in thread
From: Maxime Devos @ 2022-06-20 14:48 UTC (permalink / raw)
To: Ludovic Courtès, 56092; +Cc: Vagrant Cascadian
[-- Attachment #1: Type: text/plain, Size: 630 bytes --]
Ludovic Courtès schreef op zo 19-06-2022 om 15:55 [+0200]:
> Hi!
>
> This changes ‘guix challenge’ such that, with no arguments, it does
> nothing, which is arguably less confusing that the current behavior.
Having "guix challenge" be able to check your entire store for
reproducibility seemed a nifty feature to me. E.g., it's as good a
starting point as any to look for which packages need some
reproducibility fixes. I agree that doing the _entire store_ by
_default_ is a bit much, but I'd like the old behaviour to be still
available somewhere (guix challenge --all-local-things?)
Greetings,
Maxime.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#56092] [PATCH] challenge: Do nothing when passed zero arguments.
2022-06-20 14:48 ` Maxime Devos
@ 2022-06-20 20:15 ` Ludovic Courtès
2022-06-20 20:18 ` Maxime Devos
0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2022-06-20 20:15 UTC (permalink / raw)
To: Maxime Devos; +Cc: 56092, Vagrant Cascadian
Hi,
Maxime Devos <maximedevos@telenet.be> skribis:
> Ludovic Courtès schreef op zo 19-06-2022 om 15:55 [+0200]:
>> Hi!
>>
>> This changes ‘guix challenge’ such that, with no arguments, it does
>> nothing, which is arguably less confusing that the current behavior.
>
> Having "guix challenge" be able to check your entire store for
> reproducibility seemed a nifty feature to me. E.g., it's as good a
> starting point as any to look for which packages need some
> reproducibility fixes.
It seemed to make sense back then, when the store was typically much
smaller. Today it’s no longer a reasonable default as you write.
> I agree that doing the _entire store_ by _default_ is a bit much, but
> I'd like the old behaviour to be still available somewhere (guix
> challenge --all-local-things?)
It can be approximated with ‘guix challenge $(guix gc --list-live)’.
It’s not exactly the same: things not built locally are also included.
But I find that it’s just as useful.
So I’d lean towards not adding an option for that.
WDYT?
Ludo’.
PS: What would be useful is a ‘--manifest’ option—future work!
^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#56092] [PATCH] challenge: Do nothing when passed zero arguments.
2022-06-20 20:15 ` Ludovic Courtès
@ 2022-06-20 20:18 ` Maxime Devos
2022-07-02 23:43 ` bug#56092: " Ludovic Courtès
0 siblings, 1 reply; 5+ messages in thread
From: Maxime Devos @ 2022-06-20 20:18 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 56092, Vagrant Cascadian
[-- Attachment #1: Type: text/plain, Size: 365 bytes --]
Ludovic Courtès schreef op ma 20-06-2022 om 22:15 [+0200]:
> It can be approximated with ‘guix challenge $(guix gc --list-live)’.
> It’s not exactly the same: things not built locally are also included.
> But I find that it’s just as useful.
>
> So I’d lean towards not adding an option for that.
Right, that would work.
Greetings,
Maxime.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#56092: [PATCH] challenge: Do nothing when passed zero arguments.
2022-06-20 20:18 ` Maxime Devos
@ 2022-07-02 23:43 ` Ludovic Courtès
0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2022-07-02 23:43 UTC (permalink / raw)
To: Maxime Devos; +Cc: Vagrant Cascadian, 56092-done
Pushed as e7ab3d33aec3993737cdbc4396a9c44a54a3ce84!
Ludo’.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-07-02 23:45 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-19 13:55 [bug#56092] [PATCH] challenge: Do nothing when passed zero arguments Ludovic Courtès
2022-06-20 14:48 ` Maxime Devos
2022-06-20 20:15 ` Ludovic Courtès
2022-06-20 20:18 ` Maxime Devos
2022-07-02 23:43 ` bug#56092: " Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).