Skip to content

chore: align dev dependencies across workspaces#1341

Open
mrgrain wants to merge 2 commits intomainfrom
mrgrain/chore/align-dev-dependencies
Open

chore: align dev dependencies across workspaces#1341
mrgrain wants to merge 2 commits intomainfrom
mrgrain/chore/align-dev-dependencies

Conversation

@mrgrain
Copy link
Copy Markdown
Contributor

@mrgrain mrgrain commented Apr 10, 2026

This PR aligns dev dependencies across all workspace packages and replaces ts-node with tsx as a dev tool.

Previously, several shared dev dependencies were allowed to drift independently across workspaces. This caused packages like cdk-assets-lib and cloud-assembly-api to use jest 30 while the rest of the repo was on jest 29, eslint-plugin-prettier ranged from v4 to v5, and @types/node varied from ^16 to ^18 depending on each package's minNodeVersion.

Enabling consistentVersions for eslint-config-prettier, eslint-plugin-prettier, jest, and @types/jest ensures the root workspace version is enforced everywhere via yarn constraints. The root versions are set to the most common versions already in use (jest@^29, eslint-plugin-prettier@^4, eslint-config-prettier@^10), so most packages see no functional change.

For @types/node, projen's minNodeVersion kept overriding the version back to ^16. This is worked around by calling addDevDeps('@types/node@^20') on all projects after configuration, which takes precedence over the minNodeVersion-derived default.

The fs-extra dependency is upgraded from ^9 to ^11 across all packages (aws-cdk, toolkit-lib, integ-runner, cli-integ, cdk-assets-lib) along with @types/fs-extra to ^11. This removes the old fs-extra@^9 and @types/fs-extra@^9 from the lockfile entirely.

The ts-node to tsx switch only affects the aws-cdk pre-compile task (user-input-gen.ts) and the cdk-assets-lib manual test script. Both are internal dev scripts, not user-facing.

Checklist

  • This change contains a major version upgrade for a dependency and I confirm all breaking changes are addressed
    • eslint-plugin-prettier is downgraded from v5 to v4 in some workspaces (aligning to the majority version). No breaking changes since v4 is the less restrictive version.
    • fs-extra upgraded from v9 to v11. The API is backwards compatible; v10 dropped Node 10/12 support and v11 dropped Node 14 support, both well below our minimum.
    • @types/node upgraded from ^16/^17/^18 to ^20. This provides more accurate type definitions for the Node versions we actually target.

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

Replace ts-node with tsx for the aws-cdk pre-compile task and
cdk-assets-lib manual test script.

Enable consistentVersions for @types/node, eslint-config-prettier,
eslint-plugin-prettier, and jest to ensure all workspace packages
use the same versions of shared dev dependencies.
@mrgrain mrgrain force-pushed the mrgrain/chore/align-dev-dependencies branch from cd066ad to ff76efe Compare April 10, 2026 16:19
@mrgrain mrgrain disabled auto-merge April 10, 2026 16:55
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.30%. Comparing base (841b47e) to head (3e32842).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1341   +/-   ##
=======================================
  Coverage   88.30%   88.30%           
=======================================
  Files          73       73           
  Lines       10386    10386           
  Branches     1412     1412           
=======================================
  Hits         9171     9171           
  Misses       1188     1188           
  Partials       27       27           
Flag Coverage Δ
suite.unit 88.30% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants