Skip to content

fix: require Node.js v24 for create-catalyst, align engine constraints#2940

Merged
chanceaclark merged 4 commits intocanaryfrom
copilot/fix-create-catalyst-issue-2939
Mar 20, 2026
Merged

fix: require Node.js v24 for create-catalyst, align engine constraints#2940
chanceaclark merged 4 commits intocanaryfrom
copilot/fix-create-catalyst-issue-2939

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 20, 2026

pnpm create @bigcommerce/catalyst was advertising support for Node v20/v22/v24 in package.json while the runtime entrypoint (bin/index.cjs) and core/package.json already required ^24. This mismatch meant users on unsupported Node versions got confusing failures.

What/Why?

  • packages/create-catalyst/package.jsonengines.node narrowed to ^24.0.0 to match the runtime gate
  • bin/supported-node-versions.cjs — new file; single source of truth for accepted version ranges, consumed by bin/index.cjs
  • core/README.md — corrected Node.js version reference from "20 or 22" to "24"
  • src/utils/node-version.spec.ts — unit tests asserting v24 is accepted and v18/v20/v22/v23 are rejected
  • .changeset/fix-create-catalyst-node-v24.md — patch changeset for @bigcommerce/create-catalyst

Testing

pnpm --filter @bigcommerce/create-catalyst test

All version-gating assertions pass: v24.x accepted, v18/v20/v22/v23 rejected.

Migration

Users must be on Node.js v24. This was already the enforced runtime requirement — the package.json engines field now makes it explicit at install time.


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 20, 2026

🦋 Changeset detected

Latest commit: 61e47ed

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@bigcommerce/create-catalyst Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
catalyst Ready Ready Preview, Comment Mar 20, 2026 4:28pm

Request Review

… core

- Update packages/create-catalyst/package.json engines from
  ^20.0.0 || ^22.0.0 || ^24.0.0 to ^24.0.0 to match the runtime check
  in bin/index.cjs and core/package.json (>=24.0.0)
- Fix core/README.md which referenced Node.js version 20 or 22 instead
  of 24
- Extract supported Node.js versions into bin/supported-node-versions.cjs
  as the single source of truth
- Add src/utils/node-version.spec.ts to test the version gating logic

Closes #2939

Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix create-catalyst not working for Node.js v24 fix: align Node.js v24 engine requirements across create-catalyst and core Mar 20, 2026
Copilot AI requested a review from chanceaclark March 20, 2026 15:07
@github-actions
Copy link
Copy Markdown
Contributor

Bundle Size Report

Comparing against baseline from 59873b1 (2026-03-20).

No bundle size changes detected.

- Use named import { satisfies } from 'semver' instead of default import
  (fixes import/no-named-as-default-member warning)
- Remove require() of .cjs file to avoid import/extensions and
  @typescript-eslint/consistent-type-assertions errors
- Simplify bin/index.cjs to remove unused intermediate variable

Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 20, 2026

Unlighthouse Performance Comparison — Vercel

Comparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores.

Summary Score

Aggregate score across all categories as reported by Unlighthouse.

Prod Desktop Prod Mobile Preview Desktop Preview Mobile
Score 92 95 91 95

Category Scores

Category Prod Desktop Prod Mobile Preview Desktop Preview Mobile
Performance 77 96 78 80
Accessibility 95 95 95 95
Best Practices 100 100 95 100
SEO 88 100 100 100

Core Web Vitals

Metric Prod Desktop Prod Mobile Preview Desktop Preview Mobile
LCP 3.6 s 2.8 s 3.3 s 5.5 s
CLS 0 0 0 0.001
FCP 1.2 s 1.2 s 1.1 s 1.2 s
TBT 0 ms 0 ms 30 ms 0 ms
Max Potential FID 40 ms 50 ms 100 ms 50 ms
Time to Interactive 3.7 s 2.8 s 4.3 s 5.5 s

Full Unlighthouse report →

@chanceaclark chanceaclark marked this pull request as ready for review March 20, 2026 16:25
@chanceaclark chanceaclark requested a review from a team as a code owner March 20, 2026 16:25
Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>
Copilot AI changed the title fix: align Node.js v24 engine requirements across create-catalyst and core fix: require Node.js v24 for create-catalyst, align engine constraints Mar 20, 2026
@migueloller
Copy link
Copy Markdown
Contributor

This PR fixes #2939.

@chanceaclark chanceaclark added this pull request to the merge queue Mar 20, 2026
Merged via the queue into canary with commit a4b614d Mar 20, 2026
18 of 19 checks passed
@chanceaclark chanceaclark deleted the copilot/fix-create-catalyst-issue-2939 branch March 20, 2026 17:22
chanceaclark added a commit that referenced this pull request Apr 27, 2026
#2940)

* Initial plan

* fix: align Node.js v24 engine requirements across create-catalyst and core

- Update packages/create-catalyst/package.json engines from
  ^20.0.0 || ^22.0.0 || ^24.0.0 to ^24.0.0 to match the runtime check
  in bin/index.cjs and core/package.json (>=24.0.0)
- Fix core/README.md which referenced Node.js version 20 or 22 instead
  of 24
- Extract supported Node.js versions into bin/supported-node-versions.cjs
  as the single source of truth
- Add src/utils/node-version.spec.ts to test the version gating logic

Closes #2939

Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>

* fix: resolve lint errors in node-version.spec.ts

- Use named import { satisfies } from 'semver' instead of default import
  (fixes import/no-named-as-default-member warning)
- Remove require() of .cjs file to avoid import/extensions and
  @typescript-eslint/consistent-type-assertions errors
- Simplify bin/index.cjs to remove unused intermediate variable

Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>

* chore: add changeset for Node.js v24 engine alignment in create-catalyst

Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: chanceaclark <10539418+chanceaclark@users.noreply.github.com>
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.

4 participants