On Tue, Jul 13, 2021 at 9:34 AM Attila Lendvai <attila.lend...@gmail.com> wrote: >> >> >> Would the "stable" branch be any different from the "release" branch? >> If it's actually a not-so-stable development branch for 3.3 while a >> separate branch contains development for 3.4, then maybe indeed >> calling branches v3.3 and v3.4 make more sense. >> > > +1 > > what i would do: > > one branch that holds the bleeding edge. i'd call it main, just to go with > the flow. > branches for ASDF versions (down to the desired resolution, probably > major.minor), so that you can easily cherry pick or backport fixes into them. > a new version-branch is forked off of main whenever a release happens. > optionally a stable *tag* as an indirection to the latest release. it > communicates which specific git revision is it that the maintainer considers > the stable state at any moment in time. it comes handy e.g. in CI scripts > that want to check out the latest ASDF release, etc... > > note though that this last point requires force-pushing the stable tag, which > i have done before, but i'm not completely sure it results in a slick > workflow. the main question is whether or not a git fetch/pull silently and > automatically updates the tag in the local repo. > Nah, a tag is supposed to never change. The mechanism for a "tag that changes" is called... a branch. And that's precisely why we have a release branch. And yes, if we have version-based branches v1, v2, v3.0, v3.1, v3.2, v3.3, v3.4... then it makes sense to force-push to the release branch when the release "jumps" from v3.3 to v3.4... or to "merge" the latest release into master or main before to make a new release off of it so there is no need for force.
—♯ƒ • François-René Rideau • Co-Founder and CEO, MuKn.io Love thy neighbor as thyself, but choose your neighborhood. — Louise Beal