Skip to content

chore(deps): full dependency update and raise cdk baseline to 2.268.0 - #83

Open
hoegertn wants to merge 2 commits into
mainfrom
chore/full-dependency-update
Open

chore(deps): full dependency update and raise cdk baseline to 2.268.0#83
hoegertn wants to merge 2 commits into
mainfrom
chore/full-dependency-update

Conversation

@hoegertn

@hoegertn hoegertn commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Reason for this change

Full refresh of all dependencies plus a raise of the CDK/jsii/constructs baselines, keeping the library building and all unit tests green.

Description of changes

Baseline bumps in .projenrc.ts (regenerated with npx projen, no hand-editing of generated files):

  • aws-cdk-lib 2.168.0 -> 2.268.0 (devDep and peer floor ^2.268.0)
  • constructs 10.3.0 -> 10.8.1 (latest). aws-cdk-lib 2.268.0 requires peer constructs ^10.5.0; 10.8.1 satisfies it. Peer floor raised to ^10.8.1.
  • jsii + jsii-rosetta ~5.7.0 -> ~5.9.0 — forced: npx projen upgrade moved jsii-pacmak to 1.140.0, which requires peer jsii-rosetta >=5.9.0. Stays on the jsii 5.x line (no jump to 6.x).
  • jsii-pacmak / jsii-diff ^1.121.0 -> ^1.140.0, projen ^0.98.30 -> ^0.103.21, prettier ^3.7.4 -> ^3.9.6, ts-jest ^29.4.6 -> ^29.4.12, eslint-plugin-prettier ^5.5.4 -> ^5.5.6, jest-junit ^16 -> ^17 (all via npx projen upgrade).
  • @aws-cdk/integ-tests-alpha -> 2.268.0-alpha.0 (still tracks cdkVersion via the template).
  • @aws-cdk/integ-runner decoupled from the ${cdkVersion}-alpha.0 template and pinned to stable 2.205.1. Re-verified against the npm registry: @aws-cdk/integ-runner@2.268.0-alpha.0 does not exist (404) and integ-runner's newest published version across all tags is stable 2.205.1, while @aws-cdk/integ-tests-alpha@2.268.0-alpha.0 does exist. This split is the only combination that resolves. It only drives the integration tests.

One source change (a real fix, no casts or rule disabling):

  • src/aws-fsx/ontap-file-system.ts: aws-cdk-lib 2.268.0 changed FileSystemProps.kmsKey from kms.IKey to kms.IKeyRef, which no longer exposes keyId directly. Changed props.kmsKey?.keyId -> props.kmsKey?.keyRef.keyId. The redshift namespace.ts keeps .keyId because its own prop is typed IKey.

projen 0.103 also restructured the tsconfig layout, npm scripts, and jsii config; those are regenerated output. API.md tracks the raised aws-cdk-lib API surface.

Description of how you validated changes

  • npm run compile (jsii): 0 errors, 0 warnings.
  • npm run test: 240 jest tests across 12 suites pass.
  • npx projen eslint: exit 0, zero errors/warnings.
  • npx projen is idempotent (no diff on re-run), confirming no generated file was hand-edited.
  • The FSx fix is covered by test/aws-fsx/ontap-file-system.test.ts, which asserts KmsKeyId in the synthesized template.

Notes for maintainers

  • @aws-cdk/integ-runner is now pinned to 2.205.1 and no longer tracks cdkVersion. A future CDK baseline bump must revisit this pin manually until the alpha channel resumes.
  • The package:python build step could not be verified in the sandbox: jsii-pacmak 1.140.0 needs Python build~=1.5.0 but the restricted PyPI mirror caps at 1.4.4. This is a mirror limitation, not a code defect, and should pass on CI with open PyPI. Confirm it is green before cutting a release.
  • Live integration tests were not run (they need AWS credentials).

Checklist

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Run the projen upgrade task for managed devDeps and raise the baselines in
.projenrc.ts:
- aws-cdk-lib 2.168.0 -> 2.268.0 (devDep and peer floor ^2.268.0)
- constructs 10.3.0 -> 10.5.0 (forced: aws-cdk-lib 2.268.0 peers constructs ^10.5.0)
- jsii / jsii-rosetta ~5.7.0 -> ~5.9.0 (forced: jsii-pacmak 1.140.0 peers
  jsii-rosetta >=5.9.0; stays on the jsii 5.x line, no jump to 6.x major)
- jsii-pacmak / jsii-diff 1.121.0 -> 1.140.0, projen 0.98.30 -> 0.103.21,
  prettier 3.7.4 -> 3.9.6, ts-jest 29.4.6 -> 29.4.12, eslint-plugin-prettier
  5.5.4 -> 5.5.6, jest-junit 16 -> 17
- @aws-cdk/integ-tests-alpha tracks cdkVersion at 2.268.0-alpha.0;
  @aws-cdk/integ-runner pinned to stable 2.205.1 because its alpha channel
  stopped publishing at 2.185.0-alpha.0

Source fix for the CDK API change: aws-cdk-lib 2.268.0 changed
FileSystemProps.kmsKey from kms.IKey to kms.IKeyRef, so read the key id via
props.kmsKey?.keyRef.keyId in aws-fsx/ontap-file-system.ts.

@moltar moltar 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.

Bumping peers qualifies as a breaking change and would need to bump major.

@hoegertn

hoegertn commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Within aws-cdk-lib v2 the CDK team doesn't break stable APIs, so raising our peerDependencies floor only affects npm ≤ 6 consumers (who must hand-edit package.json) — on npm 7+ peers auto-install and a backward-compatible v2 bump breaks nothing, so I'd treat this as a non-breaking change, not a major.

I want to keep the floor at the latest aws-cdk-lib (here ^2.268) deliberately, so consumers pick up the current security-patched line rather than resolving to an old one, with the same version pinned in devDependencies. We version this library on its own changes, independent of CDK's cadence, and the constructs bump stays since aws-cdk-lib transitively requires it.

At least this is currently my take on versioning for other libraries. Not using latest for projects is no longer an option, in my opinion.

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.

3 participants