Subject: Re: [PATCH 4/6] gnu: Update Racket to 8.6. Add Zuo.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 10 Aug 2022 09:34:18 +0200

Am Dienstag, dem 09.08.2022 um 16:56 -0400 schrieb Philip McGrath:
> Hi,
> 
> On Monday, August 8, 2022 5:01:31 AM EDT Liliana Marie Prikler wrote:
> > You should really split this into two patches.  One to add Zuo, one
> > to
> > upgrade the Racket stuff.  Maybe you need even more steps if Zuo
> > depends on parts of the racket bootstrap.
> > 
> > You will probably have to parameterize the Racket origin in a bunch
> > of
> > packages to get things going.  As an upside, this added flexibility
> > hopefully comes in handy with the next Racket upgrade.
> > 
> 
> I am especially reluctant to split this patch apart.
> 
> If I had to, I could make one patch adding the Zuo package with an
> origin  inheriting from the previous %racket-origin, but adjusting
> the patches, commit, file name, and checksum to make the %racket-
> origin in this patch. (As I wrote in the patch, Zuo has no
> dependencies, it's just `cc -o zuo zuo.c`.) 
> Then, a second patch would make %racket-origin as it is in this
> package, change Zuo to use it, and update the other packages.
> 
> But I do not see the benefit in doing so. I would still need a commit
> changing the same set of packages, short of leaving some of them
> broken. And adding,  then immediately removing, a temporary origin
> for Zuo would seem to me to make reviewing this harder, not easier,
> both now and when reviewing these changes in the future.
I don't think you'd need to add an extra variable for the zuo origin,
though.  You can simply write (source (origin <whatever>)) and once
you're done switch to (source %racket-origin).  That ought to be easy
enough to review.

As for future series, I sadly can't predict what Racket is up to next.
It seems every minor release brings with it a chain of bootstrap
changes and that's very exhausting (at least for me it is, but I can
imagine it's not that easy for you either).  We could place our hopes
in the belief that the next Racket upgrade won't be that – then you
simply need to bump Racket origin and that's it.  But I personally fear
it won't be that easy and we should prepare.

> The packages developed in the main Racket Git repository are very
> tightly linked. 
You mean coupled.

> They are developed there precisely to make sure they are all always
> at consistent versions. Fighting against that is just going to cause
> difficulty with every Racket update. For example, there is no
> commitment that the version of Zuo released with Racket 8.5 will be
> able to build Racket 8.6.
> 
> I think this patch is better as a single commit, and at lease as
> justified as commits like b97f549b14402421fcfb360ddd4cff7de93b9af0.
Such commits are an exception rather than a norm, and personally, I
wouldn't sign them off.  Since you claim that zuo has no dependencies,
this could easily be avoided, no?

Cheers