Skip to content

Adjust release GitHub workflow for v9#33838

Merged
valentinpalkovic merged 14 commits into
v9from
v9-release-fixes
Feb 17, 2026
Merged

Adjust release GitHub workflow for v9#33838
valentinpalkovic merged 14 commits into
v9from
v9-release-fixes

Conversation

@valentinpalkovic
Copy link
Copy Markdown
Contributor

@valentinpalkovic valentinpalkovic commented Feb 13, 2026

Closes #

What I did

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

Caution

This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli-storybook/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This pull request has been released as version 0.0.0-pr-33838-sha-fc291b54. Try it out in a new sandbox by running npx storybook@0.0.0-pr-33838-sha-fc291b54 sandbox or in an existing project with npx storybook@0.0.0-pr-33838-sha-fc291b54 upgrade.

More information
Published version 0.0.0-pr-33838-sha-fc291b54
Triggered by @valentinpalkovic
Repository storybookjs/storybook
Branch v9-release-fixes
Commit fc291b54
Datetime Fri Feb 13 13:50:07 UTC 2026 (1770990607)
Workflow run 21989128242

To request a new release of this pull request, mention the @storybookjs/core team.

core team members can create a new canary release here or locally with gh workflow run --repo storybookjs/storybook publish.yml --field pr=33838

Summary by CodeRabbit

  • Documentation

    • Added a detailed release-process guide covering hotfix extraction, canary validation, and release branch preparation.
  • Chores

    • Simplified the standard publish workflow and added an automated canary publish flow for preview releases.
    • Pinned Storybook and Next.js tooling to specific versions for reproducible scaffolding and builds.
    • Clarified browser and Node compatibility targets for builds.
    • Added a runtime dependency for baseline browser mapping.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 13, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Split the publish workflow: normal publish now targets v9 and is simplified; added a manual publish-canary job for PR canary releases. Added release-process documentation. Pin versions for Chromatic/compiler addons and Next.js CLI in templates. Updated swcrc targets and added a new runtime dependency.

Changes

Cohort / File(s) Summary
Release docs
.github/workflows/publish.md
New procedural guide for releasing a previous major: hotfix branch extraction, canary validation, merging hotfixes back into the major branch, and release environment setup.
Publish workflow
.github/workflows/publish.yml
Reworked publish pipeline: normal publish simplified to always target v9 (removed dynamic prerelease/merge/sync steps); added a manual publish-canary job (workflow_dispatch) that extracts PR metadata, creates and publishes PR-specific canary versions, updates PR body, and posts failure comments.
Template & scaffold pinning
code/lib/cli-storybook/src/sandbox-templates.ts, code/lib/create-storybook/src/scaffold-new-project.ts
Pin Next.js create-app CLI to 16.0.1 in sandbox template and scaffold create commands for npm/yarn/pnpm.
Addon versioning
code/lib/create-storybook/src/generators/baseGenerator.ts
Chromatic addon now installed with version constraint (^4); webpack compiler addon packaged with an explicit computed version (e.g., @storybook/addon-webpack5-compiler-...@<compilerVersion>).
Build config
code/.swcrc
Removed top-level target and added env.targets with browser and Node targets (chrome 100, safari 15, firefox 91, node 22).
Dependency
code/package.json
Added runtime dependency baseline-browser-mapping ^2.9.19.

Sequence Diagram(s)

sequenceDiagram
    participant User as User
    participant GHA as GitHub Actions
    participant PR as Pull Request
    participant Node as Node/npm
    participant Registry as npm Registry

    User->>GHA: Trigger workflow_dispatch (publish-canary)
    GHA->>GHA: Verify permissions & environment
    GHA->>PR: Read PR metadata (number, head SHA, repo)
    PR-->>GHA: Return PR metadata
    GHA->>Node: Conditional checkout & setup Node
    Node-->>GHA: Environment ready
    GHA->>Node: Generate canary version (PR-specific short SHA)
    Node-->>GHA: Canary version produced
    GHA->>Registry: Publish package with canary tag
    Registry-->>GHA: Publish result (success/failure)
    alt success
        GHA->>PR: Update PR body with canary release details
        PR-->>GHA: PR body updated
    else failure
        GHA->>PR: Post failure comment with error
        PR-->>GHA: Comment posted
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
.github/workflows/publish.yml (2)

16-18: ⚠️ Potential issue | 🟠 Major

pull_request trigger currently produces no runnable jobs.

The workflow listens to pull_request, but publish-canary is restricted to workflow_dispatch, so PR events will skip all jobs. Either remove the pull_request trigger or allow the job to run for PRs (and gate it with a branch-suffix/permission rule).

🧩 Minimal fix (remove no-op PR trigger)
-  pull_request:
-    # Automated canary releases on PRs with the "with-canary-release"-suffix in the branch name
-    types: [opened, synchronize, reopened]

Also applies to: 143-146


103-119: ⚠️ Potential issue | 🟠 Major

Avoid passing literal false to gh release create.

IS_PRERELEASE: false expands to the string false, which gh release create treats as an asset path argument. This will cause the release step to fail. For normal releases, drop the variable and the extra argument entirely. For prerelease versions, use the --prerelease flag instead.

✅ Corrected command
-          IS_PRERELEASE: false
...
-            --notes "$CHANGELOG" \
-            $IS_PRERELEASE
+            --notes "$CHANGELOG"
🤖 Fix all issues with AI agents
In @.github/workflows/publish.md:
- Around line 7-12: Fix the typo and clarify the workflow dispatch: correct
"patcn" to "patch" in the hotfix placeholder (step 8) and update step 6 to state
that you should dispatch the Publish workflow (not a separate `publish-canary`
workflow) and trigger its canary job; for example, change "Trigger canary
release via dispatching the workflow for `publish-canary`" to something like
"Dispatch the Publish workflow and run the canary job to trigger a canary
release." Ensure the wording in steps 6 and 8 references "patch" and clearly
indicates the Publish workflow's canary job rather than a non-existent workflow
named `publish-canary`.

Comment thread .github/workflows/publish.md Outdated
Comment on lines +7 to +12
3. `git checkout -b hotfix/v<next-patch-release-version>`
4. Apply necessary hotfixes
5. `yarn release:version --deferred --release-type patch --verbose && git add . && git commit -m "Bump deferred version"`
6. Trigger canary release via dispatching the workflow for `publish-canary`
7. Test the canary release
8. Merge `hotfix/v<next-patcn-release-version>` into `v9`
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.

⚠️ Potential issue | 🟡 Minor

Fix typo and clarify which workflow to dispatch for canary releases.

Step 6 names a publish-canary workflow, but canary is a job inside the Publish workflow. Step 8 also has a patcn typo in the hotfix placeholder.

📝 Suggested doc tweak
-6. Trigger canary release via dispatching the workflow for `publish-canary`
+6. Trigger canary release by dispatching the `Publish` workflow (publish.yml) so the `publish-canary` job runs
...
-8. Merge `hotfix/v<next-patcn-release-version>` into `v9`
+8. Merge `hotfix/v<next-patch-release-version>` into `v9`
🤖 Prompt for AI Agents
In @.github/workflows/publish.md around lines 7 - 12, Fix the typo and clarify
the workflow dispatch: correct "patcn" to "patch" in the hotfix placeholder
(step 8) and update step 6 to state that you should dispatch the Publish
workflow (not a separate `publish-canary` workflow) and trigger its canary job;
for example, change "Trigger canary release via dispatching the workflow for
`publish-canary`" to something like "Dispatch the Publish workflow and run the
canary job to trigger a canary release." Ensure the wording in steps 6 and 8
references "patch" and clearly indicates the Publish workflow's canary job
rather than a non-existent workflow named `publish-canary`.

@storybook-app-bot
Copy link
Copy Markdown

storybook-app-bot Bot commented Feb 16, 2026

Package Benchmarks

Commit: 04e87fb, ran on 16 February 2026 at 16:40:54 UTC

The following packages have significant changes to their size or dependencies:

@storybook/addon-a11y

Before After Difference
Dependency count 0 2 🚨 +2 🚨
Self size 0 B 515 KB 🚨 +515 KB 🚨
Dependency size 0 B 2.98 MB 🚨 +2.98 MB 🚨
Bundle Size Analyzer Link Link

@storybook/addon-docs

Before After Difference
Dependency count 0 12 🚨 +12 🚨
Self size 0 B 2.43 MB 🚨 +2.43 MB 🚨
Dependency size 0 B 9.74 MB 🚨 +9.74 MB 🚨
Bundle Size Analyzer Link Link

@storybook/addon-links

Before After Difference
Dependency count 0 1 🚨 +1 🚨
Self size 0 B 20 KB 🚨 +20 KB 🚨
Dependency size 0 B 5 KB 🚨 +5 KB 🚨
Bundle Size Analyzer Link Link

@storybook/addon-onboarding

Before After Difference
Dependency count 0 0 0
Self size 0 B 228 KB 🚨 +228 KB 🚨
Dependency size 0 B 646 B 🚨 +646 B 🚨
Bundle Size Analyzer Link Link

storybook-addon-pseudo-states

Before After Difference
Dependency count 0 0 0
Self size 0 B 47 KB 🚨 +47 KB 🚨
Dependency size 0 B 665 B 🚨 +665 B 🚨
Bundle Size Analyzer Link Link

@storybook/addon-themes

Before After Difference
Dependency count 0 1 🚨 +1 🚨
Self size 0 B 21 KB 🚨 +21 KB 🚨
Dependency size 0 B 28 KB 🚨 +28 KB 🚨
Bundle Size Analyzer Link Link

@storybook/addon-vitest

Before After Difference
Dependency count 0 6 🚨 +6 🚨
Self size 0 B 556 KB 🚨 +556 KB 🚨
Dependency size 0 B 1.53 MB 🚨 +1.53 MB 🚨
Bundle Size Analyzer Link Link

@storybook/builder-vite

Before After Difference
Dependency count 0 5 🚨 +5 🚨
Self size 0 B 450 KB 🚨 +450 KB 🚨
Dependency size 0 B 834 KB 🚨 +834 KB 🚨
Bundle Size Analyzer Link Link

@storybook/builder-webpack5

Before After Difference
Dependency count 0 200 🚨 +200 🚨
Self size 0 B 81 KB 🚨 +81 KB 🚨
Dependency size 0 B 32.28 MB 🚨 +32.28 MB 🚨
Bundle Size Analyzer Link Link

storybook

Before After Difference
Dependency count 0 50 🚨 +50 🚨
Self size 0 B 36.43 MB 🚨 +36.43 MB 🚨
Dependency size 0 B 16.65 MB 🚨 +16.65 MB 🚨
Bundle Size Analyzer Link Link

@storybook/angular

Before After Difference
Dependency count 0 201 🚨 +201 🚨
Self size 0 B 192 KB 🚨 +192 KB 🚨
Dependency size 0 B 30.57 MB 🚨 +30.57 MB 🚨
Bundle Size Analyzer Link Link

@storybook/ember

Before After Difference
Dependency count 0 205 🚨 +205 🚨
Self size 0 B 28 KB 🚨 +28 KB 🚨
Dependency size 0 B 29.00 MB 🚨 +29.00 MB 🚨
Bundle Size Analyzer Link Link

@storybook/html-vite

Before After Difference
Dependency count 0 8 🚨 +8 🚨
Self size 0 B 24 KB 🚨 +24 KB 🚨
Dependency size 0 B 1.33 MB 🚨 +1.33 MB 🚨
Bundle Size Analyzer Link Link

@storybook/nextjs

Before After Difference
Dependency count 0 543 🚨 +543 🚨
Self size 0 B 881 KB 🚨 +881 KB 🚨
Dependency size 0 B 60.37 MB 🚨 +60.37 MB 🚨
Bundle Size Analyzer Link Link

@storybook/nextjs-vite

Before After Difference
Dependency count 0 130 🚨 +130 🚨
Self size 0 B 3.12 MB 🚨 +3.12 MB 🚨
Dependency size 0 B 22.94 MB 🚨 +22.94 MB 🚨
Bundle Size Analyzer Link Link

@storybook/preact-vite

Before After Difference
Dependency count 0 8 🚨 +8 🚨
Self size 0 B 14 KB 🚨 +14 KB 🚨
Dependency size 0 B 1.31 MB 🚨 +1.31 MB 🚨
Bundle Size Analyzer Link Link

@storybook/react-native-web-vite

Before After Difference
Dependency count 0 163 🚨 +163 🚨
Self size 0 B 32 KB 🚨 +32 KB 🚨
Dependency size 0 B 24.29 MB 🚨 +24.29 MB 🚨
Bundle Size Analyzer Link Link

@storybook/react-vite

Before After Difference
Dependency count 0 120 🚨 +120 🚨
Self size 0 B 32 KB 🚨 +32 KB 🚨
Dependency size 0 B 20.73 MB 🚨 +20.73 MB 🚨
Bundle Size Analyzer Link Link

@storybook/react-webpack5

Before After Difference
Dependency count 0 287 🚨 +287 🚨
Self size 0 B 25 KB 🚨 +25 KB 🚨
Dependency size 0 B 44.73 MB 🚨 +44.73 MB 🚨
Bundle Size Analyzer Link Link

@storybook/server-webpack5

Before After Difference
Dependency count 0 212 🚨 +212 🚨
Self size 0 B 17 KB 🚨 +17 KB 🚨
Dependency size 0 B 33.55 MB 🚨 +33.55 MB 🚨
Bundle Size Analyzer Link Link

@storybook/svelte-vite

Before After Difference
Dependency count 0 14 🚨 +14 🚨
Self size 0 B 54 KB 🚨 +54 KB 🚨
Dependency size 0 B 26.56 MB 🚨 +26.56 MB 🚨
Bundle Size Analyzer Link Link

@storybook/sveltekit

Before After Difference
Dependency count 0 15 🚨 +15 🚨
Self size 0 B 51 KB 🚨 +51 KB 🚨
Dependency size 0 B 26.61 MB 🚨 +26.61 MB 🚨
Bundle Size Analyzer Link Link

@storybook/vue3-vite

Before After Difference
Dependency count 0 105 🚨 +105 🚨
Self size 0 B 34 KB 🚨 +34 KB 🚨
Dependency size 0 B 43.70 MB 🚨 +43.70 MB 🚨
Bundle Size Analyzer Link Link

@storybook/web-components-vite

Before After Difference
Dependency count 0 9 🚨 +9 🚨
Self size 0 B 20 KB 🚨 +20 KB 🚨
Dependency size 0 B 1.36 MB 🚨 +1.36 MB 🚨
Bundle Size Analyzer Link Link

sb

Before After Difference
Dependency count 0 51 🚨 +51 🚨
Self size 0 B 1 KB 🚨 +1 KB 🚨
Dependency size 0 B 53.08 MB 🚨 +53.08 MB 🚨
Bundle Size Analyzer Link Link

@storybook/cli

Before After Difference
Dependency count 0 220 🚨 +220 🚨
Self size 0 B 598 KB 🚨 +598 KB 🚨
Dependency size 0 B 98.55 MB 🚨 +98.55 MB 🚨
Bundle Size Analyzer Link Link

@storybook/codemod

Before After Difference
Dependency count 0 189 🚨 +189 🚨
Self size 0 B 31 KB 🚨 +31 KB 🚨
Dependency size 0 B 82.38 MB 🚨 +82.38 MB 🚨
Bundle Size Analyzer Link Link

@storybook/core-webpack

Before After Difference
Dependency count 0 1 🚨 +1 🚨
Self size 0 B 16 KB 🚨 +16 KB 🚨
Dependency size 0 B 28 KB 🚨 +28 KB 🚨
Bundle Size Analyzer Link Link

create-storybook

Before After Difference
Dependency count 0 1 🚨 +1 🚨
Self size 0 B 12.76 MB 🚨 +12.76 MB 🚨
Dependency size 0 B 99 KB 🚨 +99 KB 🚨
Bundle Size Analyzer Link Link

@storybook/csf-plugin

Before After Difference
Dependency count 0 3 🚨 +3 🚨
Self size 0 B 11 KB 🚨 +11 KB 🚨
Dependency size 0 B 796 KB 🚨 +796 KB 🚨
Bundle Size Analyzer Link Link

eslint-plugin-storybook

Before After Difference
Dependency count 0 20 🚨 +20 🚨
Self size 0 B 333 KB 🚨 +333 KB 🚨
Dependency size 0 B 3.36 MB 🚨 +3.36 MB 🚨
Bundle Size Analyzer Link Link

@storybook/react-dom-shim

Before After Difference
Dependency count 0 0 0
Self size 0 B 10 KB 🚨 +10 KB 🚨
Dependency size 0 B 774 B 🚨 +774 B 🚨
Bundle Size Analyzer Link Link

@storybook/preset-create-react-app

Before After Difference
Dependency count 0 68 🚨 +68 🚨
Self size 0 B 18 KB 🚨 +18 KB 🚨
Dependency size 0 B 5.99 MB 🚨 +5.99 MB 🚨
Bundle Size Analyzer Link Link

@storybook/preset-react-webpack

Before After Difference
Dependency count 0 177 🚨 +177 🚨
Self size 0 B 24 KB 🚨 +24 KB 🚨
Dependency size 0 B 31.46 MB 🚨 +31.46 MB 🚨
Bundle Size Analyzer Link Link

@storybook/preset-server-webpack

Before After Difference
Dependency count 0 10 🚨 +10 🚨
Self size 0 B 10 KB 🚨 +10 KB 🚨
Dependency size 0 B 1.20 MB 🚨 +1.20 MB 🚨
Bundle Size Analyzer Link Link

@storybook/html

Before After Difference
Dependency count 0 2 🚨 +2 🚨
Self size 0 B 38 KB 🚨 +38 KB 🚨
Dependency size 0 B 32 KB 🚨 +32 KB 🚨
Bundle Size Analyzer Link Link

@storybook/preact

Before After Difference
Dependency count 0 2 🚨 +2 🚨
Self size 0 B 23 KB 🚨 +23 KB 🚨
Dependency size 0 B 32 KB 🚨 +32 KB 🚨
Bundle Size Analyzer Link Link

@storybook/react

Before After Difference
Dependency count 0 2 🚨 +2 🚨
Self size 0 B 1.66 MB 🚨 +1.66 MB 🚨
Dependency size 0 B 16 KB 🚨 +16 KB 🚨
Bundle Size Analyzer Link Link

@storybook/server

Before After Difference
Dependency count 0 3 🚨 +3 🚨
Self size 0 B 13 KB 🚨 +13 KB 🚨
Dependency size 0 B 716 KB 🚨 +716 KB 🚨
Bundle Size Analyzer Link Link

@storybook/svelte

Before After Difference
Dependency count 0 2 🚨 +2 🚨
Self size 0 B 64 KB 🚨 +64 KB 🚨
Dependency size 0 B 230 KB 🚨 +230 KB 🚨
Bundle Size Analyzer Link Link

@storybook/vue3

Before After Difference
Dependency count 0 3 🚨 +3 🚨
Self size 0 B 83 KB 🚨 +83 KB 🚨
Dependency size 0 B 211 KB 🚨 +211 KB 🚨
Bundle Size Analyzer Link Link

@storybook/web-components

Before After Difference
Dependency count 0 3 🚨 +3 🚨
Self size 0 B 57 KB 🚨 +57 KB 🚨
Dependency size 0 B 47 KB 🚨 +47 KB 🚨
Bundle Size Analyzer Link Link

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@code/lib/create-storybook/src/generators/baseGenerator.ts`:
- Around line 290-292: Guard against adding a duplicate Chromatic addon by
checking existing addon specs before pushing: when handling
features.includes('test') in the code that mutates extraAddons (and/or reads
options.extraAddons), first scan extraAddons.concat(options.extraAddons || [])
for any spec whose base package equals "@chromatic-com/storybook" (e.g., strip
any version suffix or match with a regex like
/^@chromatic-com\/storybook(@|$)/), and only push "@chromatic-com/storybook@^4"
if no match is found; update the block that currently does
extraAddons.push('@chromatic-com/storybook@^4') to perform this conditional
check.

Comment on lines 290 to 292
if (features.includes('test')) {
extraAddons.push('@chromatic-com/storybook');
extraAddons.push('@chromatic-com/storybook@^4');
}
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.

⚠️ Potential issue | 🟡 Minor

Avoid duplicate Chromatic addon specs when users already provide one.

If options.extraAddons already contains @chromatic-com/storybook (with or without a version), pushing @chromatic-com/storybook@^4 creates two specs for the same package. Because de-duping later is string-based, this can lead to conflicting installs or nondeterministic version selection. Consider guarding by base package name before adding.

💡 Suggested fix
 if (features.includes('test')) {
-  extraAddons.push('@chromatic-com/storybook@^4');
+  const chromaticPkg = '@chromatic-com/storybook';
+  const hasChromatic = extraAddons.some(
+    (addon) => getPackageDetails(addon)[0] === chromaticPkg
+  );
+  if (!hasChromatic) {
+    extraAddons.push(`${chromaticPkg}@^4`);
+  }
 }
🤖 Prompt for AI Agents
In `@code/lib/create-storybook/src/generators/baseGenerator.ts` around lines 290 -
292, Guard against adding a duplicate Chromatic addon by checking existing addon
specs before pushing: when handling features.includes('test') in the code that
mutates extraAddons (and/or reads options.extraAddons), first scan
extraAddons.concat(options.extraAddons || []) for any spec whose base package
equals "@chromatic-com/storybook" (e.g., strip any version suffix or match with
a regex like /^@chromatic-com\/storybook(@|$)/), and only push
"@chromatic-com/storybook@^4" if no match is found; update the block that
currently does extraAddons.push('@chromatic-com/storybook@^4') to perform this
conditional check.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@code/lib/create-storybook/src/scaffold-new-project.ts`:
- Around line 48-51: The scaffold commands include undocumented negated flags
(--no-app and --no-react-compiler) which may fail; update the command strings in
scaffold-new-project.ts (the npm, yarn, and pnpm entries) to remove these
undocumented flags, or replace them with documented equivalents after
verification — e.g., omit --no-app to rely on the default (absence of --app) and
remove --no-react-compiler (or use the documented --react-compiler option with
an allowed value) so the commands only use supported flags.

Comment on lines +48 to +51
npm: 'npm create next-app@16.0.1 . -- --turbopack --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir --no-react-compiler',
// yarn doesn't support version ranges, so we have to use npx
yarn: 'npx create-next-app . --turbopack --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir --no-react-compiler',
pnpm: 'pnpm create next-app . --turbopack --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir --no-react-compiler',
yarn: 'npx create-next-app@16.0.1 . --turbopack --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir --no-react-compiler',
pnpm: 'pnpm create next-app@16.0.1 . --turbopack --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir --no-react-compiler',
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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify create-next-app@16.0.1 exists on npm and check available CLI options

echo "=== Checking create-next-app@16.0.1 ==="
npm view create-next-app@16.0.1 version 2>&1

echo -e "\n=== Checking available 16.x versions ==="
npm view create-next-app versions --json 2>&1 | grep -o '"16\.[^"]*"' | head -20

echo -e "\n=== Checking CLI help for create-next-app@16.0.1 ==="
npx create-next-app@16.0.1 --help 2>&1 | head -60

Repository: storybookjs/storybook

Length of output: 3326


Fix undocumented CLI flags that may cause the scaffold command to fail.

Version 16.0.1 is valid and most flags are supported. However, --no-app and --no-react-compiler are not shown in the create-next-app@16.0.1 help output. The CLI documents only --app and --react-compiler as positive flags. These negated forms may work as implicit boolean negations (common in some CLI tools) but are undocumented and risk command failure.

Verify these flags work with version 16.0.1, or replace them with documented equivalents or omit them if the defaults are already correct.

🤖 Prompt for AI Agents
In `@code/lib/create-storybook/src/scaffold-new-project.ts` around lines 48 - 51,
The scaffold commands include undocumented negated flags (--no-app and
--no-react-compiler) which may fail; update the command strings in
scaffold-new-project.ts (the npm, yarn, and pnpm entries) to remove these
undocumented flags, or replace them with documented equivalents after
verification — e.g., omit --no-app to rely on the default (absence of --app) and
remove --no-react-compiler (or use the documented --react-compiler option with
an allowed value) so the commands only use supported flags.

@valentinpalkovic valentinpalkovic merged commit a594eb8 into v9 Feb 17, 2026
6 checks passed
@valentinpalkovic valentinpalkovic deleted the v9-release-fixes branch February 17, 2026 13:16
@coderabbitai coderabbitai Bot mentioned this pull request Feb 17, 2026
8 tasks
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.

2 participants