LTRAC-910: ref(cli) - Reduce create-catalyst to a thin wrapper over catalyst create#3053
Merged
jorgemoya merged 2 commits intoJun 29, 2026
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: acbff49 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
Contributor
Bundle Size ReportComparing against baseline from No bundle size changes detected. |
Contributor
Unlighthouse Performance Comparison — VercelComparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores. Summary ScoreAggregate score across all categories as reported by Unlighthouse.
Category Scores
Core Web Vitals
|
…catalyst create` create-catalyst now delegates to `@bigcommerce/catalyst`: its entry resolves the catalyst bin from its own dependency tree and spawns `catalyst create`, forwarding all args (stdio inherited, exit code and signals propagated). All scaffolding logic now lives in @bigcommerce/catalyst. - Add @bigcommerce/catalyst as a workspace dependency; drop the ~20 runtime deps the old in-package commands needed. - Delete the duplicated commands/, utils/, prompts/, and hooks/. - Bump the tsup target to node24 so esbuild preserves `import.meta.url`. Package name and `bin` are unchanged, so `pnpm create catalyst` / `npx create-catalyst` keep working. The dropped init/integration/telemetry subcommands are superseded by `catalyst channel link`, (integration dropped), and `catalyst telemetry`. Refs LTRAC-910 Co-Authored-By: Claude <noreply@anthropic.com>
Refs LTRAC-910 Co-Authored-By: Claude <noreply@anthropic.com>
c7e8ce0 to
acbff49
Compare
Contributor
Author
|
Ran this locally: |
jorgemoya
commented
Jun 29, 2026
| @@ -0,0 +1,5 @@ | |||
| --- | |||
| "@bigcommerce/create-catalyst": major | |||
Contributor
Author
There was a problem hiding this comment.
I believe major is fine, unless we think otherwise.
rtalvarez
approved these changes
Jun 29, 2026
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Linear: LTRAC-910
Part of LTRAC-138 — consolidating
create-catalystinto thecatalystCLI (Phase 2).What/Why?
create-catalystshipped its own full copy of the scaffolding flow (create/init/integration/telemetry+ a largeutils//prompts/). Now that@bigcommerce/catalystownscreate, this reducescreate-catalystto a thin wrapper that delegates to it — single source of truth, mirroring howcreate-next-appfrontsnext.Delegation (option B — spawn): the entry resolves the
@bigcommerce/catalystbin from its own dependency tree (createRequire→ the package'sbin) and spawnscatalyst create, forwarding all args with inherited stdio and propagating the child's exit code / signals. Because@bigcommerce/catalystis a regulardependency,pnpm create catalyst/npx create-catalystinstall it alongside the wrapper — no globalcatalystneeded.@bigcommerce/catalyst(workspace:^) as a dependency; dropped ~20 runtime deps the old in-package commands required.commands/,utils/,prompts/,hooks/(keptnode-version.spec.ts, moved tosrc/).targettonode24so esbuild preservesimport.meta.url(a lower target shimmed it to{}, which brokecreateRequire).Scope note (changed from the original ticket)
The ticket assumed
init+integrationwere ported into@bigcommerce/catalyst. They weren't:integrationwas dropped (LTRAC-909 canceled) andinit's useful behavior becamecatalyst channel link(LTRAC-908). So this wrapper is scaffold-only —create-catalyst'sinit/integration/telemetrysubcommands are dropped. In the consolidated CLI:init→catalyst channel link,integration→ dropped,telemetry→catalyst telemetry.Testing
pnpm build,pnpm typecheck,pnpm lint,pnpm testall pass inpackages/create-catalyst(thenode-versiongating test is retained).End-to-end: built both packages and ran
node packages/create-catalyst/dist/index.js create --help→ it shows@bigcommerce/catalyst create's banner + help, confirming delegation. Exit codes/signals are mirrored from the child.Release / rollout
create-catalystand@bigcommerce/catalystmust now be published in lockstep — theworkspace:^is rewritten to a concrete version at publish, so the dependency range must include the published catalyst version. Changesets should bump both together.Migration
pnpm create catalyst/npx create-catalystUX is unchanged for scaffolding. Anyone who usedcreate-catalyst init/integration/telemetrydirectly should switch to thecatalyst …equivalents noted above.