unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Convention for new “guix style“?
@ 2021-12-22 13:05 zimoun
  2021-12-22 14:10 ` Jelle Licht
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: zimoun @ 2021-12-22 13:05 UTC (permalink / raw)
  To: Guix Devel

Hi,

This could be part of a RFC process. :-)


The Big Change introduces new style, other said, this old

--8<---------------cut here---------------start------------->8---
     (native-inputs
     `(("perl" ,perl)
       ("pkg-config" ,pkg-config)))
--8<---------------cut here---------------end--------------->8---

is replaced by this new,

--8<---------------cut here---------------start------------->8---
     (native-inputs
      (list perl pkg-config))
--8<---------------cut here---------------end--------------->8---

It removes all the labels. \o/  More details [1].


We had a discussion on IRC starting here [2].  This proposal is to
document in the manual and adapt ‘guix style’ to have one input per line
– as it was the case with the old style.

Aside preference, for instance, I find easier to read,

--8<---------------cut here---------------start------------->8---
    (inputs                             ;required for test
     (list julia-chainrulestestutils
           julia-finitedifferences
           julia-nanmath
           julia-specialfunctions))
    (propagated-inputs
     (list julia-chainrulescore
           julia-compat
           julia-reexport
           julia-requires))
--8<---------------cut here---------------end--------------->8---

than

--8<---------------cut here---------------start------------->8---
    (inputs                             ;required for test
     (list julia-chainrulestestutils julia-finitedifferences julia-nanmath
           julia-specialfunctions))
    (propagated-inputs
     (list julia-chainrulescore julia-compat julia-reexport
           julia-requires))
--8<---------------cut here---------------end--------------->8---

but this is somehow bikeshed.  However, the current situation leads to
non-uniform or ambiguity.

For example, the comments as here:

--8<---------------cut here---------------start------------->8---
    (inputs
     (list libx11 libiberty ;needed for objdump support
           zlib))                       ;also needed for objdump support
--8<---------------cut here---------------end--------------->8---

when the comments apply to only one line as it was:

--8<---------------cut here---------------start------------->8---
     `(("libx11" ,libx11)
       ("libiberty" ,libiberty)               ;needed for objdump support
       ("zlib" ,zlib)))                       ;also needed for objdump support
--8<---------------cut here---------------end--------------->8---

Other said, this looks better:

--8<---------------cut here---------------start------------->8---
    (inputs
     (list libx11
           libiberty ;needed for objdump support
           zlib))    ;also needed for objdump support
--8<---------------cut here---------------end--------------->8---

Obviously, we could come up a rule depending on comments, numbers of
inputs, length, etc.  It was not the case with the old style when
nothing prevented us to do it.  Because one item per line is, IMHO,
easier to maintain.


Consider the case,

    (inputs
     (list bar foo1 foo2 foo3 foo3 foo4))

then another ’baz’ inputs is added, do we end with,

    (inputs
     (list bar foo1 foo2 foo3 foo3 foo4
           baz))

to minimize and ease reading the diff, or do we end with,

    (inputs
     (list bar
           baz
           foo1
           foo2
           foo3
           foo3
           foo4))

?  And the converse is also true, consider the case just above and what
happens if foo1, foo2 and foo3 are removed.

One item per line solves all these boring cosmetic questions.

Therefore, I propose to always have only one item per line.  To be
concrete, for one item:

  (inputs
   (list foo))

or not

  (inputs (list foo))

And for more than one item:

  (inputs
   (list foo
         bar))

This would avoid “cosmetic” changes when adding/removing inputs and/or
comments.

Sadly, it implies another Big Change.  But earlier is better and we
should do it as soon as possible while the conversion is not totally
done yet.

Cheers,
simon

1: <https://guix.gnu.org/en/blog/2021/the-big-change/>
2: <https://logs.guix.gnu.org/guix/2021-12-20.log#121156>


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-01-05 19:24 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-22 13:05 Convention for new “guix style“? zimoun
2021-12-22 14:10 ` Jelle Licht
2021-12-22 15:52   ` zimoun
2021-12-22 19:24     ` André A. Gomes
2021-12-22 17:23 ` Vagrant Cascadian
2021-12-22 17:48   ` Andreas Enge
2021-12-22 21:18 ` Liliana Marie Prikler
2021-12-22 21:17   ` indieterminacy
2021-12-23 10:13     ` Ricardo Wurmus
2021-12-22 21:56   ` zimoun
2022-01-03 15:02 ` Ludovic Courtès
2022-01-03 16:23   ` zimoun
2022-01-03 19:48     ` Leo Famulari
2022-01-03 19:51       ` Leo Famulari
2022-01-03 20:05         ` zimoun
2022-01-05 19:16           ` Leo Famulari

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).