Skip to content

Release branching: main stays the trunk; release/vX.Y branches carry tagged releases and their patches; v1.1.1 back-ported to release/v1.1 #850

Closed

Description

@brettheap

Decision, Brett Heap, 2026-10-17T19:52:26Z (in lane openRepoShape-3's session): "back-port to release/v1.1 as 1.1.1, open the issue". It answers his question of 19:49:52Z, on whether versioned tagged releases should use release branches. Lane 3 is the release owner.

The model

  • main stays the trunk. Every pull request lands on main, as today. No version waits on another's tag, so the v1.1.1 freeze ends at the v1.1.0 tag.
  • A release is a tag, not a branch. The version comes only from the tag (release.yml: v1.1.0 gives 1.1.0), so no branch or file carries a version number.
  • A release branch per minor version. release/v1.1 is cut from the v1.1.0 tag. Each v1.1.x patch is tagged on it, while main heads toward v1.2.0.
  • Back-ports. A fix bound for a patch lands on main first, through its own review, CI and gate. It is then back-ported to release/v1.1.
  • release.yml already accepts this. A tag on release/v<major>.<minor> is accepted, and v1.0.1 was cut from release/v1.0 this way.

v1.1

  1. v1.1.0 is tagged on main tonight, as planned: README, AGENTS.md, docs/cli.md and the handbook: pipx install openreposhape is the second way in and the first on native Windows, git-filter-repo is installed in install.sh's order and never with a bare pip install, and a first draft of the v1.1.0 release notes (#563) #630 lands last, then main's push run must be green, then the tag, release.yml, and Brett's testpypi and pypi approvals.
  2. Right after that tag, create release/v1.1 at v1.1.0, and post it on docs/release-notes/v1.0.0.md: the v1.0.0 release notes, a draft for Brett to amend before he tags, saying what 1.0 contains and promises, how to pin it by commit, what changed on the way grouped by the five tracking areas, and every known limit as the input that triggers it and what the person sees (#472) #473.
  3. The v1.1.1 milestone's pull requests land on main from then on, under the merge words already given: lane 3's at 13:00:57Z and lane 4's at 19:09:44Z. Each is back-ported to release/v1.1.
  4. v1.1.1 is tagged on release/v1.1 once the milestone is done there and the branch's tests pass on that commit.

One efficiency. While every PR landing on main belongs to the v1.1.1 milestone, release/v1.1 can follow main by fast-forward (or a merge of main), with no cherry-picks. Cherry-picks (git cherry-pick -x of the squash commit) are needed only once main also takes work meant for v1.2.0. Such work then goes on a v1.2.0 milestone, and only v1.1.1's commits are back-ported.

Work items

Lane: openreposhape-3 (openRepoShape-3)

🤖 Generated with Claude Code

Activity

  1. added this to the v1.1.1 milestone on Oct 17, 2026
  2. brettheap commented on Oct 17, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-17T19:57:21Z, for #850

    Logged in lanes/log/openRepoShape-3.md at e05f4c86900281306e2ba584372d76150563323b.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#850:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#850"`, kept where the row or its body names `#850`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `850` as a whole token:
       none
    
  3. brettheap commented on Oct 18, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-3, 2026-10-18T02:19:40Z) Every item is done, so #850 closes.

    Lane: openreposhape-3 (openRepoShape-3)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions