Skip to content

chore: release 0.19.0 - #270

Merged
fclairamb merged 1 commit into
mainfrom
chore/release-as-0-19-0
Aug 27, 2026
Merged

fclairamb merged 1 commit into
mainfrom
chore/release-as-0-19-0

Conversation

@fclairamb

Copy link
Copy Markdown
Owner

The 2026-08-26-2 batch (#269) landed as a single squash commit whose subject was not a conventional commit:

e662950a7 Batch 2026-08-26-2: rate caps & scheduling, … (#269)

release-type: simple parses squash-commit subjects, so release-please found nothing releasable in it and left the release PR at v0.18.4 — a patch whose changelog covers only the Slack scope fix from a260aca5e, while main had in fact gained ~30 feat commits. The workflow reported success; the tell was the release PR's head SHA never moving.

This carries a Release-As: 0.19.0 footer to force the version release-please could not infer. Every prior release with a ### Features section bumped the minor (0.18.0, 0.17.0, 0.16.0 …), so the batch belongs in a minor.

The CHANGELOG.md section will be written by hand on the release branch, since release-please cannot reconstruct it from the squashed subject.

🤖 Generated with Claude Code

The 2026-08-26-2 batch landed as a single squash commit whose subject was
not a conventional commit, so release-please parsed nothing releasable
from it and left the release PR at v0.18.4 — a patch covering only the
Slack scope fix, while main had in fact gained ~30 feat commits.

Force the version release-please could not infer. Every prior release
carrying a Features section bumped the minor (0.18.0, 0.17.0, 0.16.0),
so the batch belongs in 0.19.0, not a patch.

Release-As: 0.19.0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@fclairamb
fclairamb enabled auto-merge (squash) August 27, 2026 14:32
@fclairamb
fclairamb merged commit 168f5a2 into main Aug 27, 2026
11 checks passed
@fclairamb
fclairamb deleted the chore/release-as-0-19-0 branch August 27, 2026 15:04
fclairamb added a commit that referenced this pull request Aug 27, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.19.0](v0.18.3...v0.19.0)
(2026-08-27)


### Bug Fixes

* **slack:** make the install scope request match the app manifests
([#267](#267))
([a260aca](a260aca))


### Miscellaneous Chores

* release 0.19.0
([#270](#270))
([168f5a2](168f5a2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
fclairamb added a commit that referenced this pull request Aug 27, 2026
## Why

This repo squash-merges exclusively, and `squash_merge_commit_title` is
`PR_TITLE`. A pull request title is therefore **not a label — it is the
commit subject that lands on `main`**, and release-please
(`release-type: simple`) parses exactly those subjects to pick the next
version and build the changelog.

Nothing checked that, and the failure is silent: release-please reports
**success** while releasing nothing. The only tell is the release PR's
head SHA never moving.

[#269](#269) hit it. A
147-commit batch titled `Batch 2026-08-26-2: …` produced this on `main`:

```
e662950 Batch 2026-08-26-2: rate caps & scheduling, … (#269)
```

release-please found nothing releasable, so the release PR stayed pinned
at `v0.18.4` — a patch whose changelog covered one unrelated Slack fix —
while ~30 `feat` commits went unrecorded. Recovery needed a manual
`Release-As:` override
([#270](#270)).

## What

A `pull_request` job (`opened`, `edited`, `reopened`, `synchronize`)
that validates the title as `<type>[(scope)][!]: <description>`. Allowed
types track `release-please-config.json`'s `changelog-sections`, so the
two cannot drift apart on what counts as releasable. On failure it
writes an actionable job summary rather than only a red X.

No third-party action — it is a few lines of bash, so there is no
supply-chain surface. The title is passed via `env:` rather than
inlined, since it is attacker-controlled text.

## Verified against the real corpus

Rejects: both of #269's titles, `Update the readme`, `FEAT: …`
(uppercase), `feat add …` (no colon), `feat:no space`.
Accepts: `chore(release): v0.19.0` (release-please's own), `chore(deps):
…` and `fix(deps): … (non-major)` (Renovate), `feat!: …`, and the repo's
existing `fix(slack): …` / `fix(dash0): …` titles.

An earlier draft also enforced a minimum description length. Testing
showed it rejected `chore(release): v0.19.0` and would have broken
**every future release** — dropped before shipping.

## Follow-up (needs a repo admin, not this PR)

The job blocks nothing until it is a **required status check** on
`main`. Once merged:

```
gh api -X PATCH repos/fclairamb/solidping/branches/main/protection/required_status_checks \
  -f 'checks[][context]=Conventional commit title'
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This was referenced Sep 8, 2026
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