Skip to content

fix(release): add Changelog title for correct release-please insertion#255

Merged
jsteinich merged 1 commit into
mainfrom
claude/fix-changelog-rp-header
Jun 8, 2026
Merged

fix(release): add Changelog title for correct release-please insertion#255
jsteinich merged 1 commit into
mainfrom
claude/fix-changelog-rp-header

Conversation

@so0k

@so0k so0k commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes the changelog insertion position in release-please's standing release PR (observed in #254, where ## [0.23.4] was injected below ## 0.23.3 instead of at the top).

Root cause

release-please's changelog updater finds where to insert a new entry with this regex (src/updaters/changelog.ts):

DEFAULT_VERSION_HEADER_REGEX = '\n###? v?[0-9[]'

The leading \n means it only matches a version header that has a newline before it, and it inserts immediately before the first match. Our CHANGELOG.md began at byte 0 with:

## 0.23.3      ← no preceding newline → not matched
...
## 0.23.2      ← preceded by \n → first match

So the top ## 0.23.3 was skipped and the new entry was inserted before ## 0.23.2 — i.e. below 0.23.3.

Fix

Prepend a # Changelog H1 so the first version header has a preceding newline:

+# Changelog
+
 ## 0.23.3

release-please now inserts new entries at the top. The plain (## 0.23.3) vs. linked (## [0.23.4](…)) header format is irrelevant to the matcher, so existing entries are left untouched — minimal 2-line diff.

After merge

On the next push to main, release-please rebases its standing release PR (#254) and will regenerate the CHANGELOG.md diff with the entry inserted at the top.

Checklist

  • I have updated the PR title to match CDKTN's style guide
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation if applicable

https://claude.ai/code/session_0168ykjbd1W96iSBoQUEkSLE


Generated by Claude Code

release-please's changelog updater locates the insertion point with
`/\n###? v?[0-9[]/`, which requires a newline *before* a version header.
CHANGELOG.md began at byte 0 with `## 0.23.3` (no preceding newline and no
title), so the regex skipped the top entry and matched the next header
`\n## 0.23.2` — inserting new release entries below 0.23.3 instead of at the
top (observed in release PR #254).

Prepend a `# Changelog` H1 so the first version header has a preceding
newline; release-please then inserts new entries at the top. Plain vs.
linked header format is irrelevant to the matcher. Minimal 2-line diff;
existing entries unchanged.

https://claude.ai/code/session_0168ykjbd1W96iSBoQUEkSLE
@so0k
so0k requested a review from a team as a code owner June 8, 2026 02:10
@so0k so0k added ci/skip-examples Skip Examples Testing in PR ci/skip-integration Skips Integration Testing on PR ci/skip-provider-integration Skips Provider Integration Tests on PR ci/skip-unit Skips Unit Testing on PR labels Jun 8, 2026
@sakul-learning

Copy link
Copy Markdown
Contributor

I ran a local release-please dry-run against a temp clone where origin/main was the simulated merge of PR #255 into current main.

Result: ✅ the fix works. Release Please would open chore(release): release v0.23.4, and applying the generated changelog updater inserts the ## [0.23.4](https://github.com/open-constructs/cdk-terrain/compare/v0.23.3...v0.23.4) (2026-06-08) entry immediately after # Changelog and before ## 0.23.3.

Verified positions in the simulated changelog:

  • ## [0.23.4]... at line 3
  • ## 0.23.3 at line 20
  • ## 0.23.2 at line 49

So this should correct the standing release PR insertion order once release-please rebases/regenerates it after merge.

@jsteinich
jsteinich merged commit 004818a into main Jun 8, 2026
278 of 280 checks passed
@jsteinich
jsteinich deleted the claude/fix-changelog-rp-header branch June 8, 2026 13:01
so0k pushed a commit that referenced this pull request Jul 3, 2026
🤖 Release PR — merge to cut a new release. Kept open and rebased
as commits land on `main`.
---


<details><summary>0.23.4</summary>

##
[0.23.4](v0.23.3...v0.23.4)
(2026-07-02)


### Features

* **cli:** validate Terraform CLI feature versions
([#237](#237))
([32d434c](32d434c))
* declared Terraform/OpenTofu target versions (validation foundation)
([#269](#269))
([0aa2343](0aa2343))
* **lib:** S3-backend - Add `useLockfile` field and update
`dynamodbTable` deprecated JSDoc
([#234](#234))
([32a408f](32a408f))
* **lib:** validate Fn usage against Terraform/OpenTofu versions
([#268](#268))
([cdf8115](cdf8115))


### Bug Fixes

* **cli:** don't mistake terraform error output for a missing-variable
prompt
([#267](#267))
([0ea946f](0ea946f))
* **cli:** release terraform state lock when interrupting diff/deploy
([#284](#284))
([de617db](de617db))
* **cli:** resolve prebuilt Java provider versions via repo1.maven.org
([#285](#285))
([d5af07d](d5af07d))
* **gha:** Adding CHANGELOG.md to prettier ignore list
([#258](#258))
([5160469](5160469))
* **gha:** pull jsii-terraform CI image from GHCR instead of Docker Hub
([#261](#261))
([f19d34b](f19d34b))
* **provider-generator:** copy only publishable files into the jsii
compile bundle
([#292](#292))
([562d4c7](562d4c7))
* **provider-generator:** match shorthand provider sources against
OpenTofu schema keys
([#293](#293))
([fda0103](fda0103))
* **release:** add Changelog title for correct release-please insertion
([#255](#255))
([004818a](004818a))
* **release:** drop devEngines.packageManager that broke npm publish
([ef508a6](ef508a6))
* **tools:** repair generate-function-bindings tool
([#273](#273))
([821e1cf](821e1cf))


### Miscellaneous Chores

* Add Gradle to Mise config
([#271](#271))
([1578270](1578270))
* add pnpm to mise
([#266](#266))
([48ab91f](48ab91f))
* add uv to mise
([#260](#260))
([163cf3d](163cf3d))
* **deps:** bump nrwl/nx-set-shas from
38457b511e60ee4e1da09255b658e480748a1af4 to
afb73a62d26e41464e9254689e1fd6122ee683c1
([#236](#236))
([b5ac018](b5ac018))
* **deps:** bump the github-actions-backward-compatible group across 1
directory with 7 updates
([#235](#235))
([de67d9f](de67d9f))
* **deps:** replace uuid dependency with node:crypto.randomUUID
([#291](#291))
([6d3657a](6d3657a))
* ESLint ignore test edge-provider-bindings
([#270](#270))
([ba407bb](ba407bb))
* Fix Verdaccio logging config
([#272](#272))
([aded64b](aded64b))
* **gha:** parallelize provider binding generation for documentation
examples
([#244](#244))
([0a9c955](0a9c955))
* Migrate package manager from yarn to pnpm
([#170](#170))
([d23da4e](d23da4e))
* migrate planning artifacts to cdktn-planning [skip ci]
([968c358](968c358))
* **release:** add release-please automation for versioning
([#243](#243))
([c759eec](c759eec))
* Remove dependency-pinner tool
([#250](#250))
([42c27d5](42c27d5))
* Remove unused dependencies
([#281](#281))
([c7de65e](c7de65e))
* **tests:** run verdaccio in-process
([#248](#248))
([c17677d](c17677d))
* Update JSII version constraint
([#245](#245))
([d89558f](d89558f))
* Update scheduled workflows to only run on open-constructs/cdk-terrain
([#256](#256))
([ba408cf](ba408cf))
</details>

---
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: open-constructs-cdktn[bot] <291052431+open-constructs-cdktn[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

I'm going to lock this pull request because it has been closed for 30 days. This helps our maintainers find and focus on the active issues. If you've found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jul 9, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

ci/skip-examples Skip Examples Testing in PR ci/skip-integration Skips Integration Testing on PR ci/skip-provider-integration Skips Provider Integration Tests on PR ci/skip-unit Skips Unit Testing on PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants