Repository navigation
fix(lib): Disallow constructs 10.8 until support can be added - #363
Merged
jsteinich merged 1 commit intoAug 1, 2026
Merged
Conversation
jsteinich
marked this pull request as ready for review
August 1, 2026 16:02
so0k
approved these changes
Aug 1, 2026
sakul-learning
approved these changes
Aug 1, 2026
sakul-learning
left a comment
Contributor
There was a problem hiding this comment.
Approved. I built the PR head and verified cdktn init --template java using the locally packaged cdktn artifact; initialization, ./gradlew install, and ./gradlew test passed. Local testing briefly hit a semver@7.8.5 resolution issue in pack.mjs, resolved with a clean npm cache/staging directory and apparently unrelated to this PR.
so0k
pushed a commit
that referenced
this pull request
Aug 7, 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](v0.23.4...v0.24.0) (2026-08-06) ### ⚠ BREAKING CHANGES * **lib:** validate Terraform function versions by default ([#362](#362)) * **deps:** Require Node 22 minimum ([#345](#345)) * **lib:** preserve symlinks in TerraformAsset walkers ([#321](#321)) * **cli:** replace node-fetch with undici ([#306](#306)) ### Features * **lib:** canonical asset hashes behind the canonicalAssetHashes feature flag ([#323](#323)) ([76dd4ff](76dd4ff)) * **lib:** validate Terraform function versions by default ([#362](#362)) ([4ac0736](4ac0736)) * support newer provider plugin-protocol features via targetVersions (RFC-04) ([#296](#296)) ([90322f9](90322f9)) ### Bug Fixes * **cli:** don't downgrade prebuilt providers on a transient registry failure ([#298](#298)) ([a960c5c](a960c5c)) * **cli:** include dev dependencies in npm version lookup ([#280](#280)) ([955204a](955204a)) * **docs:** fix stale constructs pin breaking with()/IMixin docs ([#305](#305)) ([605cf63](605cf63)) * **gha:** Allow pnpm to update the lockfile after package updates ([#318](#318)) ([a899b7c](a899b7c)) * **gha:** Fix pnpm upgrade workflow ([#335](#335)) ([e1a69fc](e1a69fc)) * **gha:** flip merged release PR label to autorelease: tagged ([#302](#302)) ([8d64f6c](8d64f6c)) * **gha:** mint the Go-publish token from the CDKTN Maintainers app ([#369](#369)) ([71921ce](71921ce)) * **gha:** mint the Go-publish token from the open-constructs-cdktn App ([#368](#368)) ([179f10c](179f10c)) * **gha:** pass the Go-publish App token as x-access-token userinfo ([#370](#370)) ([4e3ff19](4e3ff19)) * **lib:** Disallow constructs 10.8 until support can be added ([#363](#363)) ([8bdae0d](8bdae0d)) * **lib:** preserve symlinks in TerraformAsset walkers ([#321](#321)) ([6360e20](6360e20)) * typo in `moveFromId` JSDoc ([#355](#355)) ([e1cf8ce](e1cf8ce)) ### Miscellaneous Chores * **cli:** replace Ink + React with smaller-tree CLI libraries ([#264](#264)) ([a6aff7e](a6aff7e)) * **cli:** replace node-fetch with undici ([#306](#306)) ([1317141](1317141)) * **deps:** bump glob to 13.0.6 ([#307](#307)) ([47ee2bb](47ee2bb)) * **deps:** bump the github-actions-backward-compatible group with 2 updates ([#295](#295)) ([eab2a01](eab2a01)) * **deps:** replace lerna with nx ([#315](#315)) ([94999fc](94999fc)) * **deps:** Require Node 22 minimum ([#345](#345)) ([2bf315d](2bf315d)) * **deps:** update ci-info to 4.4.0 across all packages ([#329](#329)) ([557a163](557a163)) * **deps:** update fs-extra to 11.3.6 across all packages ([#328](#328)) ([95753a9](95753a9)) * **deps:** update minimatch to 10.2.5 ([#330](#330)) ([d1c1c53](d1c1c53)) * **deps:** Update sscaff to v2.0.388 ([#331](#331)) ([38ea0ba](38ea0ba)) * **deps:** Update zod to v4.4.3 ([#332](#332)) ([c10ee35](c10ee35)) * **deps:** Upgrade dependencies ([#347](#347)) ([45d3a66](45d3a66)) * remove cdktf from tests ([#277](#277)) ([dc9a8e9](dc9a8e9)) * ship Terraform 1.15.8 in the jsii-terraform image ([#367](#367)) ([deaa9b0](deaa9b0)) * Upgrade dependencies for lib ([#348](#348)) ([d616f17](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>
so0k
added a commit
to cdktn-io/cdktn-repository-manager
that referenced
this pull request
Aug 7, 2026
cdktn 0.24.0 declares constructs '>=10.6.0 <10.8.0' (10.8 disallowed, open-constructs/cdk-terrain#363) instead of a caret range. upgrade-cdktf stripped a caret that wasn't there and re-prepended one, writing the invalid 'constructsVersion: "^>=10.6.0 <10.8.0"' into the template -- every provider regen then died at pnpm install with ERR_PNPM_INVALID_PEER_DEPENDENCY_SPECIFICATION (canary run 31135007155). Template value corrected, and upgrade-cdktf now passes whatever range cdktn declares straight through (quoting the yarn add in upgrade_self for ranges containing spaces).
so0k
added a commit
to cdktn-io/cdktn-repository-manager
that referenced
this pull request
Aug 7, 2026
…push (#65) ## What happened The two fix commits on `auto/upgrade-providers-cdktn-24` (constructs range + TF 1.15.8 selection, canary-verified on random/aws) were **silently wiped before #63 merged**: a re-run of the failed upgrade-cdktf workflow re-executed `peter-evans/create-pull-request`, which force-pushes the branch with exactly its regenerated content. The squash that landed as `f66f42d` therefore carries the mangled `constructsVersion: "^>=10.6.0 <10.8.0"` and lacks the container digest + `TERRAFORM_BINARY_NAME` — and the fleet fan-out from that merge failed on **all 29 providers** at `pnpm install` (cleanly: no provider PRs were created). ## This PR (cherry-picks of the wiped commits) - `projenrc.template.js`: `constructsVersion: ">=10.6.0 <10.8.0"` — cdktn 0.24's peer range verbatim (constructs 10.8 disallowed, open-constructs/cdk-terrain#363) - `upgrade-repositories.yml`: container pinned to the 0.24.0 jsii-terraform digest (`8a260318…`, ships TF 1.15.8) + `TERRAFORM_BINARY_NAME: terraform1.15.8` on the fetch step — without it the regen silently produces bindings with none of the new protocol surfaces (functions/ephemeral/write-only/resource-identity need TF ≥1.8/1.10/1.11/1.12; the image default is 1.6.5) - `upgrade-cdktf.yml`: pass cdktn's constructs peer range through verbatim instead of caret-mangling it (root cause of the bad template value) ## Rollout note Merging re-triggers deploy → the full fan-out, now with the exact configuration the canary proved (cdktn-io/cdktn-provider-random#47, cdktn-io/cdktn-provider-aws#81, both merged with ephemeral/functions/write-only surfaces present). Note: upgrade-cdktf's re-run risk is gone — main's template minor now equals latest (0.24), so its gate no longer opens. 🤖 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
…onstructs#363) <!-- Unless this is a very simple 1-line-of-code change, please create a new issue describing the change you're proposing first, then link to it from this PR. Read more about our process in our contributing guide: https://github.com/open-constructs/cdk-terrain/blob/main/CONTRIBUTING.md --> ### Related issue Fixes https://github.com/open-constructs/cdk-terrain/actions/runs/30545326461/job/90912362214 ### Description constructs 10.8.0 moved to the jsii 6.0.7 compiler and dropped jsii.tsc: {outDir: "lib", rootDir: "src"} from its package.json (replaced by jsii.tsconfig/validateTsconfig). In jsii/lib/common/symbol-id.js, findPackageInfo reads tscOutDir only from jsii.tsc.outDir in package.json. tscRootDir has an assembly-metadata fallback (asm.metadata.tscRootDir); tscOutDir does not, and no tsconfig.json ships in the tarball. So normalizePath bails, the computed symbolId stays lib/construct:Construct instead of src/construct:Construct, misses the assembly's symbolIdMap, and importedSymbol comes back undefined. assemblies.js:234 swallows this in a bare catch {}/undefined path, so you get silently wrong output instead of an error. See aws/jsii-compiler#2740 for more details. Needed to additionally quote the installed dependency in the template so that shell wouldn't mangle the updated version range. We could skip the peer dependency constraint, but it's clear that cdktn isn't fully compatible with constructs 10.8 at this time. We can revisit when we update to JSII 6.x. ### Checklist - [x] I have updated the PR title to match [CDKTN's style guide](https://github.com/open-constructs/cdk-terrain/blob/main/CONTRIBUTING.md#pull-requests-1) - [x] I have run the linter on my code locally - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the [documentation](https://github.com/open-constructs/cdk-terrain-docs/tree/main/content) if applicable - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works if applicable - [x] New and existing unit tests pass locally with my changes <!-- If this is still a work in progress, feel free to open a draft PR until you're able to check off all the items on the list above -->
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>
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related issue
Fixes https://github.com/open-constructs/cdk-terrain/actions/runs/30545326461/job/90912362214
Description
constructs 10.8.0 moved to the jsii 6.0.7 compiler and dropped jsii.tsc: {outDir: "lib", rootDir: "src"} from its package.json (replaced by jsii.tsconfig/validateTsconfig).
In jsii/lib/common/symbol-id.js, findPackageInfo reads tscOutDir only from jsii.tsc.outDir in package.json. tscRootDir has an assembly-metadata fallback (asm.metadata.tscRootDir); tscOutDir does not, and no tsconfig.json ships in the tarball. So normalizePath bails, the computed symbolId stays lib/construct:Construct instead of src/construct:Construct, misses the assembly's symbolIdMap, and importedSymbol comes back undefined. assemblies.js:234 swallows this in a bare catch {}/undefined path, so you get silently wrong output instead of an error.
See aws/jsii-compiler#2740 for more details.
Needed to additionally quote the installed dependency in the template so that shell wouldn't mangle the updated version range.
We could skip the peer dependency constraint, but it's clear that cdktn isn't fully compatible with constructs 10.8 at this time. We can revisit when we update to JSII 6.x.
Checklist