Oddities in branching structure

I don't have all of this paged in, but I've got some pointers to discussion that came before that thread. I believe the issue of the current stable branch structure was first raised here:

I took a first crack at putting that proposal into practice in Make `release` a descendant of `stable` by LiberalArtist · Pull Request #4460 · racket/racket · GitHub. We picked that back up with:

From the off-list email chain with @jbclements:

We dropped the notion of delaying creation of the Git tag after this comment by @elibarzilay, plus some complications @jbclements pointed out in those off-list emails, so we focused just on organizing the Git history for the release and stable branches:

Interestingly, it seems we did discussing merging stable into master in a way that would address the git describe quirk:

That is the process illustrated in the last version of a #lang slideshow diagram I made of this process, which I found very helpful in thinking it through: Racket release branch diagram · GitHub

@jbclements raised the point that any merge of stable into master would break the property that master currently has a linear history. The last discussion I found on that is:

I don't think we ever followed up on that, and I know I personally was otherwise tied up and couldn't follow the 8.8 release process closely.

It does seem that no one has complained of any strangeness in the GitHub UI. But git describe could arguably be considered UI. It did come up in adjust build stamp for development and snapshots by LiberalArtist · Pull Request #4871 · racket/racket · GitHub (prompted by @benknoble).

That does seem like a possible path to better git describe output by default while maintaining the linear history on master. (I don't have a strong opinion myself on how to balance these competing desiderata, though.)

If we did that, I think the tags should point to commits like Post-release version for the v8.18 release · racket/racket@02afeae · GitHub, and I'd suggest a naming convention like post/8.18.0.1. In particular, I'd want the names not to start with v and to be clear to both humans and tools that they are not release versions.