[FEATURE] Branching strategy Phase 2.B - release trigger and versioning docs#557
Open
John McCall (lowlydba) wants to merge 4 commits into
Open
Conversation
Detects an umbrella overture-schema major/minor bump on main and creates a draft GitHub Release at v<major>.<minor>.0. Publishing the draft is the only trigger for the public PyPI publish (Phase 3). Decisions locked: patch builds stay CodeArtifact-only; release notes are authored manually at release time; only the umbrella package bump cuts a release. Closes #533 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: John McCall <john@overturemaps.org>
John McCall (lowlydba)
temporarily deployed
to
staging
July 14, 2026 14:45 — with
GitHub Actions
Inactive
🗺️ Schema reference docs preview is live!
Note ♻️ This preview updates automatically with each push to this PR. |
…ases Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: John McCall <john@overturemaps.org>
John McCall (lowlydba)
temporarily deployed
to
staging
July 14, 2026 14:53 — with
GitHub Actions
Inactive
…ft release tag Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: John McCall <john@overturemaps.org>
John McCall (lowlydba)
marked this pull request as ready for review
July 14, 2026 14:54
John McCall (lowlydba)
temporarily deployed
to
staging
July 14, 2026 14:55 — with
GitHub Actions
Inactive
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Phase 2.B release-event detection on main and documents the versioning/release process so Phase 3 publish workflows can rely on a clear trigger and scheme.
Changes:
- Adds a
release-triggerGitHub Actions workflow that detects umbrellaoverture-schema<major>.<minor>bumps onmainand creates a draft GitHub Release/tag. - Adds
docs/versioning.mddescribing version ownership (human vs CI), trigger→destination behavior, and the release process. - Updates
CONTRIBUTING.mdwith a release-trigger section, a versioning quick reference, and Phase status updates.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.github/workflows/release-trigger.yaml |
New workflow that detects umbrella major/minor bumps and creates a draft GitHub Release/tag to gate public releases. |
docs/versioning.md |
New documentation for version scheme, CI version behavior, and the release process. |
CONTRIBUTING.md |
Adds contributor-facing guidance and references to the new versioning/release process docs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+93
to
+96
| if gh release view "$TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then | ||
| echo "::error::Release ${TAG} already exists. A duplicate major/minor bump landed on main — investigate before re-releasing." | ||
| exit 1 | ||
| fi |
Contributor
Author
There was a problem hiding this comment.
If we want this, the better approach is to make tags immutable with a Ruleset at the GitHub repo layer - I can configure this if desired.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: John McCall <john@overturemaps.org>
John McCall (lowlydba)
requested review from
Seth Fitzsimmons (sethfitz) and
Victor Schappert (vcschapp)
July 14, 2026 15:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 2.B of the branching strategy (#533): release-event detection on
mainplus the versioning/release documentation. No publish workflows — those are Phase 3 (#509), which this partially unblocks.Key decisions
These resolve the TBDs flagged in #533/#509, plus one deliberate deviation from the original issue text:
mainmerge is not a public event.v<major>.<minor>.0tag can't represent two packages bumping to different versions — e.g. a cli 0.1→0.2 bump would have cut a misleadingv0.2.0. Only the umbrellaoverture-schemabump now cuts a release; its version names the tag. Escape hatch: a non-core package needing public PyPI immediately bumps the umbrella minor in the same PR (one line, and honest — the umbrella distribution's contents changed). Otherwise it rides the next umbrella release.release: publishedevent fires the Phase 3 publish. Pairs the manual-notes decision with a natural approval gate — no accidental public releases.pyproject.toml, CI computes patch from CodeArtifact state). The custom trigger is ~40 lines.Changes
release-triggerworkflow (new)main, path-filtered topackages/overture-schema/pyproject.toml.<major>.<minor>before/after viagit show+ stdlibtomllib.v<major>.<minor>.0. Fails loudly if the tag already exists. Patch-only changes are a no-op.beforeSHA (force-push) gracefully.docs/versioning.md(new)Version scheme (human owns major/minor, CI owns patch), CI trigger/destination table, bump rules, full release process, vnext→main merge process, guardrails.
CONTRIBUTING.mdRelease trigger CI section, versioning quick reference, vnext release diagram annotated with the bump commit + draft tag, roadmap table (2.B → done), Phase 2.B/3 migration notes updated with locked decisions.
Notes
vnext-compat,rebase-vnext) verified already in place — no changes needed.p3-release-publishtrigger should be updated in [Devops] Branching Strategy - Phase 3 #509 torelease: published.Closes #533