Subject: [bug#50072] [PATCH WIP 0/4] Add upstream updater for git-fetch origins.

From: Maxime Devos <[email-masked]>
Date: Wed, 05 Jan 2022 12:10:01 +0000

zimoun schreef op wo 05-01-2022 om 12:48 [+0100]:
> > > > +  (if (or (eq? recursive? #true)
> > > > +          (and (eq? recursive? 'auto)
> > > 
> > > …the symbol ’auto’ is only used here.  IIRC all the series. :-)
> > 
> > In ‘[PATCH v4 3/4] refresh: Support non-tarball sources.’, there's
> > 
> > > +                (let ((hash (file-hash* output)))
> > 
> > There, #:recursive? is 'auto'.
> 
> Naive questions: Is it mandatory?  Or can be explicitly set?
> 
> (I have nothing against, just to me ’auto’ is somehow ambiguous and
> «In
> the face of ambiguity, refuse the temptation to guess» as ’pyhon3 -c
> 'import this'’ says ;-))

'auto' is indeed a little ambigious, so I adjusted most calls to
file-hash* to set #:recursive? #true/#false appropriately in v3.
But in this particular case (guix/scripts/refresh.scm), it not known in
advance, so some guesswork is necessary.

Anyway, these calls to file-hash* are bothering me a little: can't
we just record the hash in the 'upstream-source' record or ask the
daemon for the hash of a store item (*) or something?

(*) Maybe query-path-hash works or maybe there are problems.
    Also, would be nice if there was a variant of query-path-hash
    that works on non-sha256 (in principle guix supports other hashes,
    though currently they are unused). Or maybe query-path-hash is
    works differently.

That would complicate this patch series more, so I'd prefer to delay
that for a future patch series.

Greetings,
Maxime.