Change "name" configuration of snapshot builds?

Short version:

I propose that we change the snapshot builds to be more like regular releases: Use the snapshot version number as the installation's "name", which affects the way that packages get installed by default.

Long version:

When you install a regular Racket release from https://download.racket-lang.org, the installation has a name that corresponds to the Racket version. This name is shown by raco pkg config name. The name is used when of packages are added in user-specific mode, which is the default package-installation mode. Those packages end up in a name-specific and therefore version-specific place, so after upgrading to a new version, raco pkg migrate or "Package Manager" -> "Copy from Version" in DrRacket must be used to reinstall packages that were in place for the old version.

When you install a snapshot Racket build from https://snapshot.racket-lang.org, currently, the installation has a name that is always "snapshot". The intent of that fixed name was that user-specific packages from a previous snapshot are still in place when you switch to a new snapshot, and I think some Racketeers have indeed used snapshots that way. To bring the preserved packages in line with the new snapshot version, though, they must run raco setup (at a minimum). A new snapshot installation can easily start out broken because it picks up incompatible things from a previous snapshot installation.

Releases and snapshots differ, currently, because we expected different workflows for the different kinds of builds, and because we wanted to experiment to see which convention works better. Although having to use raco pkg migrate isn't great, I think it has been better than the confusion that can be created by a snapshot build's convention. Confusion is especially a problem for people who use snapshots infrequently and have no reason to think that they'd work differently than a release.

For either a regular release or snapshot build, the name can be set with raco pkg config -i --set name <new-name>. It's just a question of the default name that is chosen when packaging a release or snapshot.

Changing a snapshot build's configuration seems like an improvement to me, but it will likely break someone's workflow or some automated process, and they'll have to adapt. See also the earlier thread, Rationale for per-version user scope packages?, which started out as an argument in favor of the opposite change toward more sharing. But because the direction with more sharing is so likely to create problems, that earlier thread ended up being about an improved way to opt into sharing.

Any objections to making the change to snapshots?

9 Likes

Quick answer: Go for it. Simplification is good.

Changing a snapshot build's configuration seems like an improvement to me, but it will likely break someone's workflow or some automated process, and they'll have to adapt. See also the earlier thread, Rationale for per-version user scope packages? , which started out as an argument in favor of the opposite change toward more sharing.

I haven't been able to contribute or even use Racket as much as I'd like in the previous year anyway, so the impact on my workflow should be minimal I guess. (If you'd like to make even more aggressive changes and I'm the only one likely to be impacted, please do proceed.)

1 Like

No objection, but a question.

Would it be possible to supply both snapshot and regular-release-named installations from snapshot sites so that knowledgable users who relied on the existiing workflow could stick with it and less knowledgable ones get the newly proposed default?

Of course knowledgable users should be able to work with the new default and I have no clue how many there are.

I live on cutting-edge and have used a snapshot only once or twice a long time ago. So take this as my $2s (inflation!) on this topic. (I also call my new granddaughter “dollar” even though she’s named Penny :slight_smile:

— Matthias

2 Likes

After gathering opinions, I forgot to make this change. I'll do that now.

Would it be possible to supply both snapshot and regular-release-named installations from snapshot sites so that knowledgable users who relied on the existiing workflow could stick with it and less knowledgable ones get the newly proposed default?

Because it would double the needed storage (and also double the snapshot work, unless we add a new step in the installer build), and because users would also have more choices to wade through, I doubt this is worthwhile right now. But it's an option we can keep in mind.

1 Like