Skip to content

ci(release): adopt the release/v* branch convention - #97

Merged
roncodes merged 1 commit into
mainfrom
ci/release-branch-naming
Sep 4, 2026
Merged

ci(release): adopt the release/v* branch convention#97
roncodes merged 1 commit into
mainfrom
ci/release-branch-naming

Conversation

@roncodes

@roncodes roncodes commented Sep 3, 2026

Copy link
Copy Markdown
Member

Adopts the release/v0.0.0 branch convention. Companion to fleetbase/fleetbase#641, which holds the reusable workflow this delegates to.

What changed

One line, so the caller matches either prefix:

if: github.event_name == 'workflow_dispatch' ||
    (github.event.pull_request.merged == true &&
     (startsWith(github.event.pull_request.head.ref, 'release/v') ||
      startsWith(github.event.pull_request.head.ref, 'dev-v')))

Why both, rather than a cutover

A hard switch would leave any release branch already open unrecognised — and a merge that produces no tag and no publish looks exactly like a successful one. dev-v* keeps working; drop that arm once no such branch remains open.

Merge order

fleetbase/fleetbase#641 first. This caller references the reusable workflow at @main, so release/v* only starts being accepted once that lands. Merging this one early is harmless — it just keeps behaving as it does today.

🤖 Generated with Claude Code

Both prefixes are honoured so a release branch opened before the rename still
releases. A merge that produces no tag and no publish looks exactly like a
successful one, so the cutover is deliberately not a flag day.
@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (7f0ba99) to head (eb1f725).

Additional details and impacted files
@@             Coverage Diff             @@
##                main       #97   +/-   ##
===========================================
  Coverage     100.00%   100.00%           
  Complexity      1775      1775           
===========================================
  Files            135       135           
  Lines           7785      7785           
===========================================
  Hits            7785      7785           
Flag Coverage Δ
backend 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

roncodes added a commit that referenced this pull request Sep 4, 2026
Cuts the patch release carrying the QPay authentication fix (#99) and the
network model repairs and testing seeder split (#98).

The release/v* workflow gate is deliberately NOT changed here — #97 owns
that, with fleetbase/fleetbase#641 behind it. Both must land before this
branch is merged, or the tag job either skips (old gate) or is refused by
the reusable workflow (gate updated, reusable workflow not yet).
@roncodes roncodes mentioned this pull request Sep 4, 2026
@roncodes

roncodes commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

Reviewed this against the live workflows — the change here is correct, but merging it alone won't enable the convention, and there was a conflict with the v0.4.21 release branch that I've now removed.

1. The real blocker is fleetbase/fleetbase#641, still open. The reusable workflow this delegates to at @main currently reads:

if [[ "$HEAD_REF" != dev-v* ]]; then
  echo "::error::Head branch '${HEAD_REF}' is not a dev-v* release branch."

So with this PR merged and #641 not, a release/v* merge passes this gate and is then refused by the reusable workflow. It fails loudly rather than silently, which is the better failure — but there's still no tag. Your merge-order note is right; it just needs #641 to actually land.

2. Conflict with #100, resolved on my side. The v0.4.21 release branch had briefly carried the same gate change, which conflicted with this PR (verified by test-merge: .github/workflows/release.yml). I've dropped it there so this PR owns the change — the two now merge clean in either order.

3. Nothing else in this repo assumes dev-v. Grepped the workflows: release.yml was the only functional reference. README.md:225 mentions dev-v0.4.19 in a coverage note, which is stale prose rather than a convention dependency.

Order to unblock the v0.4.21 release: fleetbase/fleetbase#641 → this → #99 and #98 into release/v0.4.21#100.

@roncodes
roncodes merged commit 5ad3206 into main Sep 4, 2026
11 checks passed
@roncodes
roncodes deleted the ci/release-branch-naming branch September 4, 2026 10:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant