Skip to content

chore(release): release v0.24.0 - #303

Merged
so0k merged 1 commit into
mainfrom
release-please--branches--main
Aug 7, 2026
Merged

chore(release): release v0.24.0#303
so0k merged 1 commit into
mainfrom
release-please--branches--main

Conversation

@open-constructs-cdktn

@open-constructs-cdktn open-constructs-cdktn Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

🤖 Release PR — merge to cut a new release. Kept open and rebased as commits land on main.

0.24.0

0.24.0 (2026-08-06)

⚠ BREAKING CHANGES

  • lib: validate Terraform function versions by default (#362)
  • deps: Require Node 22 minimum (#345)
  • lib: preserve symlinks in TerraformAsset walkers (#321)
  • cli: replace node-fetch with undici (#306)

Features

  • lib: canonical asset hashes behind the canonicalAssetHashes feature flag (#323) (76dd4ff)
  • lib: validate Terraform function versions by default (#362) (4ac0736)
  • support newer provider plugin-protocol features via targetVersions (RFC-04) (#296) (90322f9)

Bug Fixes

  • cli: don't downgrade prebuilt providers on a transient registry failure (#298) (a960c5c)
  • cli: include dev dependencies in npm version lookup (#280) (955204a)
  • docs: fix stale constructs pin breaking with()/IMixin docs (#305) (605cf63)
  • gha: Allow pnpm to update the lockfile after package updates (#318) (a899b7c)
  • gha: Fix pnpm upgrade workflow (#335) (e1a69fc)
  • gha: flip merged release PR label to autorelease: tagged (#302) (8d64f6c)
  • gha: mint the Go-publish token from the CDKTN Maintainers app (#369) (71921ce)
  • gha: mint the Go-publish token from the open-constructs-cdktn App (#368) (179f10c)
  • gha: pass the Go-publish App token as x-access-token userinfo (#370) (4e3ff19)
  • lib: Disallow constructs 10.8 until support can be added (#363) (8bdae0d)
  • lib: preserve symlinks in TerraformAsset walkers (#321) (6360e20)
  • typo in moveFromId JSDoc (#355) (e1cf8ce)

Miscellaneous Chores

  • cli: replace Ink + React with smaller-tree CLI libraries (#264) (a6aff7e)
  • cli: replace node-fetch with undici (#306) (1317141)
  • deps: bump glob to 13.0.6 (#307) (47ee2bb)
  • deps: bump the github-actions-backward-compatible group with 2 updates (#295) (eab2a01)
  • deps: replace lerna with nx (#315) (94999fc)
  • deps: Require Node 22 minimum (#345) (2bf315d)
  • deps: update ci-info to 4.4.0 across all packages (#329) (557a163)
  • deps: update fs-extra to 11.3.6 across all packages (#328) (95753a9)
  • deps: update minimatch to 10.2.5 (#330) (d1c1c53)
  • deps: Update sscaff to v2.0.388 (#331) (38ea0ba)
  • deps: Update zod to v4.4.3 (#332) (c10ee35)
  • deps: Upgrade dependencies (#347) (45d3a66)
  • remove cdktf from tests (#277) (dc9a8e9)
  • ship Terraform 1.15.8 in the jsii-terraform image (#367) (deaa9b0)
  • Upgrade dependencies for lib (#348) (d616f17)

This PR was generated with Release Please. See documentation.

@open-constructs-cdktn
open-constructs-cdktn Bot requested a review from a team as a code owner July 4, 2026 09:28
@open-constructs-cdktn open-constructs-cdktn Bot added autorelease: pending 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 Jul 4, 2026
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch 6 times, most recently from 8d1c52e to 409cd13 Compare July 9, 2026 04:29
@open-constructs-cdktn open-constructs-cdktn Bot changed the title chore(release): release v0.23.5 chore(release): release v0.24.0 Jul 10, 2026
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch 8 times, most recently from aadded0 to 3c934a1 Compare July 17, 2026 01:38
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch 2 times, most recently from 28f71a3 to d1986e8 Compare July 18, 2026 22:22
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch 4 times, most recently from ba05f16 to 8a5d969 Compare July 24, 2026 08:51
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch from 8a5d969 to 40239cf Compare July 27, 2026 13:14

@so0k so0k left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch 3 times, most recently from d7281da to 462f693 Compare August 6, 2026 08:28
so0k added a commit that referenced this pull request Aug 6, 2026
#368)

## Problem

The `release_golang` job authenticates with
`TERRAFORM_CDK_GO_REPO_GITHUB_TOKEN` — a user PAT that has expired.
GitHub 401s the push, headless git falls back to an interactive password
prompt, and the job dies:

```
fatal: could not read Password for 'https://***@github.com': No such device or address
    Command failed: git push origin cdktn/v0.24.0-pre.95
```

Both the original `publish_next` run and a fresh rerun
([31085026499](https://github.com/open-constructs/cdk-terrain/actions/runs/31085026499))
failed identically, so this is credential death, not token-TTL
flakiness. **This currently blocks the 0.24.0 release cut** (#303) — the
stable flow publishes Go with the same secret.

## Fix

Mint an installation token from the **open-constructs-cdktn** GitHub App
([installation
138220829](https://github.com/apps/open-constructs-cdktn/installations/138220829))
whose credentials are already in this repo's secrets (`GH_APP_ID` /
`GH_APP_PRIVATE_KEY`), scoped to `cdk-terrain-go`, and use it as
`GITHUB_TOKEN` for `publib-golang`. Fresh every run, expires in an hour,
no PAT to rot. Same pinned `create-github-app-token@v2` SHA as
release-please.yml / pnpm-upgrade.yml.

If the App installation turns out not to cover `cdk-terrain-go`, the
mint step fails fast with a clear error — fallback is rotating the PAT.

Closes #66 (this was exactly the failure mode that issue predicted).

## Verification

Merging this triggers the `next` pre-release flow on main, which will
exercise the new token path end-to-end (expect `v0.24.0-pre.96` to land
in cdk-terrain-go). A green `publish_next / Release Go to Github Repo
(next)` is the all-clear to merge #303.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch from 462f693 to ddfd1ef Compare August 6, 2026 11:30
so0k added a commit that referenced this pull request Aug 6, 2026
)

Follow-up to #368. The `GH_APP_ID`/`GH_APP_PRIVATE_KEY` secrets — unused
by any workflow for the 7 months before #368 adopted them — evidently do
not describe an app installed on `cdk-terrain-go`: the mint fails with a
404 on the installation lookup ([run
31097478176](https://github.com/open-constructs/cdk-terrain/actions/runs/31097478176))
even after the repo was added to open-constructs-cdktn's installation.

Switch `release_golang` to the **CDKTN Maintainers** app
(`CDKTN_MAINTAINERS_APP_ID`/`_PRIVATE_KEY` org secrets) — the app
`release-please.yml` and `pnpm-upgrade.yml` authenticate with
successfully in this repo every day.

⚠️ One org-admin precondition: the maintainers app's installation must
include **`cdk-terrain-go`** (with Contents: write). @hoegertn — the
installation screenshot you shared listing `cdk-terrain`,
`cdk-terrain-docs`, `cdk-terrain-go` — if that was this app's
installation and it's saved, we're already set.

Verification: merge triggers the `next` flow; a green `publish_next /
Release Go to Github Repo (next)` with `v0.24.0-pre.96` in
cdk-terrain-go is the all-clear to cut 0.24.0 (#303).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch from ddfd1ef to e7dcf6f Compare August 6, 2026 14:29
@open-constructs-cdktn
open-constructs-cdktn Bot force-pushed the release-please--branches--main branch from e7dcf6f to eb40731 Compare August 6, 2026 14:57
@so0k
so0k merged commit b91823e into main Aug 7, 2026
15 checks passed
@so0k
so0k deleted the release-please--branches--main branch August 7, 2026 00:03
@so0k so0k added autorelease: tagged This PR represents a release that has been tagged and published and removed autorelease: pending labels Aug 7, 2026
so0k added a commit that referenced this pull request Aug 7, 2026
## Summary
- The `release_github` job's "Mark merged release PR as tagged" step
calls `gh pr edit` without an explicit repo, so `gh` shells out to `git`
to auto-detect it.
- That job runs inside the `jsii-terraform` container, where the
checkout is owned by a different UID than the container user, so `git`
refuses with "detected dubious ownership" and the step fails (exit code
1), even though the GitHub release itself already succeeded.
- Fix: pass `-R "${{ github.repository }}"` to `gh pr edit` so it never
needs `git` to infer the repo — smallest possible fix, no container/git
config changes needed.

Note: an alternative fix would be adding a `git config --global --add
safe.directory /__w/cdk-terrain/cdk-terrain` step after checkout (as
`prepare-release` and `prepare-next` already do), but passing `-R`
avoids touching git config in the container entirely.

Diagnosed from the failed run:
https://github.com/open-constructs/cdk-terrain/actions/runs/31133236561/job/92730605482

As an immediate unblock, I've also manually relabeled the affected PR
(#303) from `autorelease: pending` to `autorelease: tagged` so
release-please can open the next release PR.

## Test plan
- [ ] Next release run exercises the `release_github` job's relabel step
and confirms `gh pr edit -R ...` succeeds inside the container
X-Guardian pushed a commit to X-Guardian/cdk-terrain that referenced this pull request Aug 10, 2026
open-constructs#368)

## Problem

The `release_golang` job authenticates with
`TERRAFORM_CDK_GO_REPO_GITHUB_TOKEN` — a user PAT that has expired.
GitHub 401s the push, headless git falls back to an interactive password
prompt, and the job dies:

```
fatal: could not read Password for 'https://***@github.com': No such device or address
    Command failed: git push origin cdktn/v0.24.0-pre.95
```

Both the original `publish_next` run and a fresh rerun
([31085026499](https://github.com/open-constructs/cdk-terrain/actions/runs/31085026499))
failed identically, so this is credential death, not token-TTL
flakiness. **This currently blocks the 0.24.0 release cut** (open-constructs#303) — the
stable flow publishes Go with the same secret.

## Fix

Mint an installation token from the **open-constructs-cdktn** GitHub App
([installation
138220829](https://github.com/apps/open-constructs-cdktn/installations/138220829))
whose credentials are already in this repo's secrets (`GH_APP_ID` /
`GH_APP_PRIVATE_KEY`), scoped to `cdk-terrain-go`, and use it as
`GITHUB_TOKEN` for `publib-golang`. Fresh every run, expires in an hour,
no PAT to rot. Same pinned `create-github-app-token@v2` SHA as
release-please.yml / pnpm-upgrade.yml.

If the App installation turns out not to cover `cdk-terrain-go`, the
mint step fails fast with a clear error — fallback is rotating the PAT.

Closes open-constructs#66 (this was exactly the failure mode that issue predicted).

## Verification

Merging this triggers the `next` pre-release flow on main, which will
exercise the new token path end-to-end (expect `v0.24.0-pre.96` to land
in cdk-terrain-go). A green `publish_next / Release Go to Github Repo
(next)` is the all-clear to merge open-constructs#303.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
X-Guardian pushed a commit to X-Guardian/cdk-terrain that referenced this pull request Aug 10, 2026
…pen-constructs#369)

Follow-up to open-constructs#368. The `GH_APP_ID`/`GH_APP_PRIVATE_KEY` secrets — unused
by any workflow for the 7 months before open-constructs#368 adopted them — evidently do
not describe an app installed on `cdk-terrain-go`: the mint fails with a
404 on the installation lookup ([run
31097478176](https://github.com/open-constructs/cdk-terrain/actions/runs/31097478176))
even after the repo was added to open-constructs-cdktn's installation.

Switch `release_golang` to the **CDKTN Maintainers** app
(`CDKTN_MAINTAINERS_APP_ID`/`_PRIVATE_KEY` org secrets) — the app
`release-please.yml` and `pnpm-upgrade.yml` authenticate with
successfully in this repo every day.

⚠️ One org-admin precondition: the maintainers app's installation must
include **`cdk-terrain-go`** (with Contents: write). @hoegertn — the
installation screenshot you shared listing `cdk-terrain`,
`cdk-terrain-docs`, `cdk-terrain-go` — if that was this app's
installation and it's saved, we're already set.

Verification: merge triggers the `next` flow; a green `publish_next /
Release Go to Github Repo (next)` with `v0.24.0-pre.96` in
cdk-terrain-go is the all-clear to cut 0.24.0 (open-constructs#303).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
X-Guardian pushed a commit to X-Guardian/cdk-terrain that referenced this pull request Aug 10, 2026
🤖 Release PR — merge to cut a new release. Kept open and rebased
as commits land on `main`.
---


<details><summary>0.24.0</summary>

##
[0.24.0](open-constructs/cdk-terrain@v0.23.4...v0.24.0)
(2026-08-06)


### ⚠ BREAKING CHANGES

* **lib:** validate Terraform function versions by default
([open-constructs#362](open-constructs#362))
* **deps:** Require Node 22 minimum
([open-constructs#345](open-constructs#345))
* **lib:** preserve symlinks in TerraformAsset walkers
([open-constructs#321](open-constructs#321))
* **cli:** replace node-fetch with undici
([open-constructs#306](open-constructs#306))

### Features

* **lib:** canonical asset hashes behind the canonicalAssetHashes
feature flag
([open-constructs#323](open-constructs#323))
([76dd4ff](open-constructs@76dd4ff))
* **lib:** validate Terraform function versions by default
([open-constructs#362](open-constructs#362))
([4ac0736](open-constructs@4ac0736))
* support newer provider plugin-protocol features via targetVersions
(RFC-04)
([open-constructs#296](open-constructs#296))
([90322f9](open-constructs@90322f9))


### Bug Fixes

* **cli:** don't downgrade prebuilt providers on a transient registry
failure
([open-constructs#298](open-constructs#298))
([a960c5c](open-constructs@a960c5c))
* **cli:** include dev dependencies in npm version lookup
([open-constructs#280](open-constructs#280))
([955204a](open-constructs@955204a))
* **docs:** fix stale constructs pin breaking with()/IMixin docs
([open-constructs#305](open-constructs#305))
([605cf63](open-constructs@605cf63))
* **gha:** Allow pnpm to update the lockfile after package updates
([open-constructs#318](open-constructs#318))
([a899b7c](open-constructs@a899b7c))
* **gha:** Fix pnpm upgrade workflow
([open-constructs#335](open-constructs#335))
([e1a69fc](open-constructs@e1a69fc))
* **gha:** flip merged release PR label to autorelease: tagged
([open-constructs#302](open-constructs#302))
([8d64f6c](open-constructs@8d64f6c))
* **gha:** mint the Go-publish token from the CDKTN Maintainers app
([open-constructs#369](open-constructs#369))
([71921ce](open-constructs@71921ce))
* **gha:** mint the Go-publish token from the open-constructs-cdktn App
([open-constructs#368](open-constructs#368))
([179f10c](open-constructs@179f10c))
* **gha:** pass the Go-publish App token as x-access-token userinfo
([open-constructs#370](open-constructs#370))
([4e3ff19](open-constructs@4e3ff19))
* **lib:** Disallow constructs 10.8 until support can be added
([open-constructs#363](open-constructs#363))
([8bdae0d](open-constructs@8bdae0d))
* **lib:** preserve symlinks in TerraformAsset walkers
([open-constructs#321](open-constructs#321))
([6360e20](open-constructs@6360e20))
* typo in `moveFromId` JSDoc
([open-constructs#355](open-constructs#355))
([e1cf8ce](open-constructs@e1cf8ce))


### Miscellaneous Chores

* **cli:** replace Ink + React with smaller-tree CLI libraries
([open-constructs#264](open-constructs#264))
([a6aff7e](open-constructs@a6aff7e))
* **cli:** replace node-fetch with undici
([open-constructs#306](open-constructs#306))
([1317141](open-constructs@1317141))
* **deps:** bump glob to 13.0.6
([open-constructs#307](open-constructs#307))
([47ee2bb](open-constructs@47ee2bb))
* **deps:** bump the github-actions-backward-compatible group with 2
updates
([open-constructs#295](open-constructs#295))
([eab2a01](open-constructs@eab2a01))
* **deps:** replace lerna with nx
([open-constructs#315](open-constructs#315))
([94999fc](open-constructs@94999fc))
* **deps:** Require Node 22 minimum
([open-constructs#345](open-constructs#345))
([2bf315d](open-constructs@2bf315d))
* **deps:** update ci-info to 4.4.0 across all packages
([open-constructs#329](open-constructs#329))
([557a163](open-constructs@557a163))
* **deps:** update fs-extra to 11.3.6 across all packages
([open-constructs#328](open-constructs#328))
([95753a9](open-constructs@95753a9))
* **deps:** update minimatch to 10.2.5
([open-constructs#330](open-constructs#330))
([d1c1c53](open-constructs@d1c1c53))
* **deps:** Update sscaff to v2.0.388
([open-constructs#331](open-constructs#331))
([38ea0ba](open-constructs@38ea0ba))
* **deps:** Update zod to v4.4.3
([open-constructs#332](open-constructs#332))
([c10ee35](open-constructs@c10ee35))
* **deps:** Upgrade dependencies
([open-constructs#347](open-constructs#347))
([45d3a66](open-constructs@45d3a66))
* remove cdktf from tests
([open-constructs#277](open-constructs#277))
([dc9a8e9](open-constructs@dc9a8e9))
* ship Terraform 1.15.8 in the jsii-terraform image
([open-constructs#367](open-constructs#367))
([deaa9b0](open-constructs@deaa9b0))
* Upgrade dependencies for lib
([open-constructs#348](open-constructs#348))
([d616f17](open-constructs@d616f17))
</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>
X-Guardian pushed a commit to X-Guardian/cdk-terrain that referenced this pull request Aug 10, 2026
…constructs#372)

## Summary
- The `release_github` job's "Mark merged release PR as tagged" step
calls `gh pr edit` without an explicit repo, so `gh` shells out to `git`
to auto-detect it.
- That job runs inside the `jsii-terraform` container, where the
checkout is owned by a different UID than the container user, so `git`
refuses with "detected dubious ownership" and the step fails (exit code
1), even though the GitHub release itself already succeeded.
- Fix: pass `-R "${{ github.repository }}"` to `gh pr edit` so it never
needs `git` to infer the repo — smallest possible fix, no container/git
config changes needed.

Note: an alternative fix would be adding a `git config --global --add
safe.directory /__w/cdk-terrain/cdk-terrain` step after checkout (as
`prepare-release` and `prepare-next` already do), but passing `-R`
avoids touching git config in the container entirely.

Diagnosed from the failed run:
https://github.com/open-constructs/cdk-terrain/actions/runs/31133236561/job/92730605482

As an immediate unblock, I've also manually relabeled the affected PR
(open-constructs#303) from `autorelease: pending` to `autorelease: tagged` so
release-please can open the next release PR.

## Test plan
- [ ] Next release run exercises the `release_github` job's relabel step
and confirms `gh pr edit -R ...` succeeds inside the container
@github-actions

github-actions Bot commented Sep 6, 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 Sep 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autorelease: tagged This PR represents a release that has been tagged and published 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.

1 participant