guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New review checklist


From: Liliana Marie Prikler
Subject: Re: New review checklist
Date: Fri, 01 Apr 2022 20:25:37 +0200
User-agent: Evolution 3.42.1

Hi Maxime,

Am Freitag, dem 01.04.2022 um 19:46 +0200 schrieb Maxime Devos:
> [...]
> I know there have been some discussions in the past about whether
> git-version should be used when a commit is explicitly chosen,
> whether
> tags should be used instead of commits, how high a risk there is that
> version->commit can become multi-valued, ‘tricking peer review’ ...
> 
> However, my question isn't about any of that.  It is only about the
> let-binding itself, in situations where the bound variable is only
> used in a single place.  What is the reason for doing
> 
> (let ((commit "cabba9e..."))
>   (package
>     (name "foobar")
>     (version "0.1.2")
>     (source (origin ...
>               ;; this is the only use of the 'commit' variable bound
> in
>               ;; the above 'commit'
>               (commit commit)))
>     ...))
> 
> when it can be simplified to
> 
> (package
>   (name "foobar")
>   (version "0.1.2")
>   (source (origin ... (commit "cabba9e..."))))?
> 
> I mean, we don't do this for, say, 'name', 'version' and 'uri':
> 
> ;; these three variables are only used in a single location
> (let ((name "foobar")
>       (version "0.1.2")
>       (uri "https://foo.bar";))
>   (package
>     (name name)
>     (version version)
>     (source (origin (uri uri) (commit <some-reference>) [...]))
>     ...))
> 
> Why would things be different for 'commit' here?  How does putting
> the value of 'commit' in a let-form reduce surprises?
The main goal of let-binding commit and revision is to allow for easier
change.  Suppose you need to reference some half-release for some
obscure reason, then this style makes it easier to switch to what is
already established praxis.

In general, consider the poor soul who may have to read and maintain
your code after you get hit by a car because neither busses nor trams
run in your region.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]