Subject: [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 26 Feb 2022 22:09:26 +0100

Hi,

Am Samstag, dem 26.02.2022 um 14:55 -0500 schrieb Philip McGrath:
> "configure-layer.rkt" seems fine. I do see the potential for confusion
> about whether this was "making" an "installation-layer.rkt".
configure-layer.rkt it is then :)

> > > > > > I think some way to shorten those origins would do wonders in
> > > > > > terms of the number of lines this patch adds.
> > > > > 
> > > > > At one point, I had abbreviated the origins as something like:
> > > > > 
> > > > >   (REPO-SPEC SHA256 [COMMIT])
> > > > > 
> > > > > [...]
> > > > 
> > > > I wouldn't do this inside of extract-package-source, but define a
> > > > one or two liner for adding specifically packages hosted on
> > > > racket's github.  WDYT?
> > > > 
> > > > > I wasn't sure about the trade-off between being slightly more
> > > > > cryptic
> > > > > than explicit origins, but a lot shorter.
> > > > 
> > > > Note that the goal is not to code golf, but to be understandable.
> > > > When adding a bunch of origins as inputs, understandability
> > > > suffers
> > > > by induced scrolling.
> > > 
> > > I've done this, and it was a very good idea. In particular, it
> > > helped
> > > find some places where I hadn't switched to using `%racket-commit`
> > > once the release was tagged.
> > 
> > That is better, but can still be improved.  As hinted at in my
> > comment
> > to your tree, origin snippets might be a better solution here unless
> > I'm missing something in the heat of the moment.
> 
> Could you give an example of what you imagine the result might look
> like in use? E.g. (but I'm not sure this would really be an
> improvement):
> 
> > (cons*
> >  ...
> >  libedit
> >  racket-minimal
> >  (append
> >   (racket-package-sources
> >    "2d" (base32
> > "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr")
> >    "2d" "2d-doc" "2d-lib")
> >   (racket-package-sources
> >    "algol60" (base32
> > "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx")
> >    '("algol60" "."))
> >   ...))
I'd write this as 
--8<---------------cut here---------------start------------->8---
(list
 ... 
 libedit
 racket-minimal
 (simple-racket-origin
  "2d" (base32 "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr")
  '("2d" "2d-doc" "2d-lib")
 (simple-racket-origin
  "algol60" (base32
"09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx")
  '("algol60" ".")
 ...)
--8<---------------cut here---------------end--------------->8---
I do wonder whether these packages can further be modularized (i.e. so
that they build as packages) with configure-layer.rkt acting as a
profile hook and some racket meta package simply adding racket-minimal
and all the base stuff into the profile, but for now let's just have an
easy way of formulating origins.

Cheers