Skip to content

ci(release): fail loudly on bump-PR creation; add RELEASING.md (supersedes #88) - #208

Open
devops-thiago wants to merge 1 commit into
mainfrom
ci/release-bump-pr-error-handling
Open

ci(release): fail loudly on bump-PR creation; add RELEASING.md (supersedes #88)#208
devops-thiago wants to merge 1 commit into
mainfrom
ci/release-bump-pr-error-handling

Conversation

@devops-thiago

Copy link
Copy Markdown
Owner

What type of PR is this?

  • 🐛 Bug fix
  • 🏗️ CI/CD
  • 📝 Documentation

Description

Minimal, current-main replacement for the stale #88. The bump-version job's gh pr create was followed by || echo "PR already exists", which masked any failure — including the "GitHub Actions is not permitted to create or approve pull requests" error — so the post-release pom-bump PR could be silently lost.

Since then the repo setting Allow GitHub Actions to create and approve pull requests is enabled (can_approve_pull_request_reviews: true) and the job already has permissions: { contents: write, pull-requests: write }, so the bump PR now opens normally. #88's elaborate tracking-issue fallback is no longer needed — this just stops the masking.

Changes

  • release.yml — branch on the gh pr create outcome: success or an already-existing PR is fine; anything else fails the job loudly (the bump branch is already pushed, so the PR can be opened by hand). actionlint (incl. shellcheck) passes.
  • docs/RELEASING.md — documents the release flow, the one-time Actions setting, and the two main-ruleset caveats for merging the bump PR (close/reopen to run the required checks; squash/merge not rebase so the commit is GitHub-signed). Adapted from fix(release): unblock automated bump-version PR creation (#11) #88, minus the now-unneeded tracking-issue machinery.

Related Issues

Fixes #11. Supersedes #88.

How Has This Been Tested?

CI/docs only. actionlint clean locally; bash -n on the run block clean.

🤖 Generated with Claude Code

…dd RELEASING.md

The bump-version job ran `gh pr create` followed by `|| echo "PR already exists"`,
which masked any failure (including the "Actions not permitted to create PRs"
error) so the post-release pom-bump PR could be silently lost.

- release.yml: branch on the gh pr create outcome — success or an already-existing
  PR is fine; anything else fails the job loudly. The bump branch is already
  pushed, so the PR can still be opened by hand. The "Allow GitHub Actions to
  create and approve pull requests" repo setting (now enabled) is what lets the
  default GITHUB_TOKEN open it.
- docs/RELEASING.md: documents the release flow, the one-time setting, and the two
  main-ruleset caveats for merging the bump PR (close/reopen to run the required
  checks; squash/merge not rebase so the commit is GitHub-signed).

Supersedes #88 (drops its tracking-issue fallback, unneeded now the setting is on).
Fixes #11.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@thrillhousebot

Copy link
Copy Markdown

🤖 ThrillhouseBot PR Summary

What this PR does

This change modifies the release CI to fail loudly when the bump-PR creation fails (unless the PR already exists), instead of silently masking any failure with || echo 'PR already exists'. It also adds a RELEASING.md documenting the release flow and how to handle the post-release bump PR.

Changes Overview

  • Files changed: 2
  • Lines added: +73
  • Lines removed: -3

Risk Assessment

Risk Count
🔴 Critical 0
🟠 High 0
🟡 Medium 0
🔵 Low 0

No new issues found in this PR, but the review cannot be approved until the required checks are passing.

⚠️ Required CI Checks Status

Some required checks are still pending or have failed:

Check Type Status Detail
test check-run ⏳ Pending -

Automated review by ThrillhouseBot. Reply with /review to re-run.

@codecov

codecov Bot commented Jun 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.18%. Comparing base (fd8ddc6) to head (10e5813).

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #208   +/-   ##
=========================================
  Coverage     99.18%   99.18%           
  Complexity     1761     1761           
=========================================
  Files            64       64           
  Lines          4681     4681           
  Branches        663      663           
=========================================
  Hits           4643     4643           
  Misses           10       10           
  Partials         28       28           

☔ 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.

@sonarqubecloud

Copy link
Copy Markdown

devops-thiago added a commit that referenced this pull request Jul 27, 2026
…425)

## What type of PR is this?

- [x] 📝 Documentation

## Description

`[Unreleased]` carried **6 entries for 20 merged issues**. This adds the
13 missing user-facing
changes in the existing house style — bold lead-in, issue number,
concrete before/after, dogfood
example where one exists.

**Added** — #123 adversarial failure-mode characterization, #322 CI
gating strictness, #323 blocking
strictness, #64 model generation parameters. Also adds the missing
`(#110)` citation to the existing
bug-fix efficacy entry.

**Changed** — #105 low-confidence findings routed to the summary, #97
exact-arithmetic / "test fails"
cap, #342 dual-gate merge policy (framed as contributor-facing, not
operator-facing).

**Fixed** — #336 force-push anchor invalidation, #337
framework-idiomatic false positives, #334
duplicate CI-pending comment.

**Performance** (new section) — #386 pure renames excluded from budget,
#135 backstop hot-path dedupe.

**Dependencies** (new section) — the seven bumps merged this cycle.

### What was deliberately left out

Per the rule that only pre-0.5 behaviour belongs here, **fixes to code
introduced within this cycle
are excluded** — they never reached a release, so there is nothing for a
user to have experienced:

- the flaky `AckReactionServiceTest` interrupt race (#421)
- the `@InjectMocks` SUT-construction refactor (#410)
- the `java:S5850` regex fix and the coverage follow-up, both squashed
into #420

**#136** is also omitted — test hardening with no user-facing behaviour.
It is the only merged issue
with no entry, and that is intentional.

`### Performance` and `### Dependencies` are non-standard
Keep-a-Changelog headings, but 0.4.0 already
set the precedent by adding `### Dependencies`.

## Related Issues

N/A — release preparation for v0.5.0.

## How Has This Been Tested?

- [x] Manual testing

Verified programmatically that every merged issue is now cited in
`[Unreleased]` except the one
intentional omission:

```
entries=19  sections: Added Changed Fixed Performance Dependencies
uncited: #136
```

Docs-only change; no code touched.

### Still open for the release (not in this PR)

1. `pom.xml` is `0.4.1-SNAPSHOT` — needs the 0.5.0 bump (PR #208 hardens
that flow).
2. `[Unreleased]` needs renaming to `[0.5.0] — <date>` when the release
is cut.
3. The 0.4.0 docs should be frozen with `cd website && npm run
docs:archive -- <slug>` before 0.5.0
docs go current — archives exist for 0.1.0–0.3.0; worth confirming 0.4.0
was done.

## Checklist

- [x] My code follows the project's coding standards
- [x] I have performed a self-review of my own code
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.

fix(release): unblock automated bump-version PR creation

1 participant