Skip to content

Release: Prerelease 10.6.0-alpha.2 - #35523

Merged
ndelangen merged 35 commits into
next-releasefrom
version-non-patch-from-10.6.0-alpha.1
Jul 20, 2026
Merged

ndelangen merged 35 commits into
next-releasefrom
version-non-patch-from-10.6.0-alpha.1

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 17, 2026 •

Copy link
Copy Markdown
Contributor

This is an automated pull request that bumps the version from `10.6.0-alpha.1` to `10.6.0-alpha.2`.
Once this pull request is merged, it will trigger a new release of version `10.6.0-alpha.2`.
If you're not a core maintainer with permissions to release you can ignore this pull request.

To do

Before merging the PR, there are a few QA steps to go through:

  • Add the "freeze" label to this PR, to ensure it doesn't get automatically forced pushed by new changes.
  • Add the "ci:daily" label to this PR, to trigger the full test suite to run on this PR.

And for each change below:

  1. Ensure the change is appropriate for the version bump. E.g. patch release should only contain patches, not new or de-stabilizing features. If a change is not appropriate, revert the PR.
  2. Ensure the PR is labeled correctly with one of: "BREAKING CHANGE", "feature request", "bug", "maintenance", "dependencies", "documentation", "build", "unknown".
  3. Ensure the PR title is correct, and follows the format "[Area]: [Summary]", e.g. "React: Fix hooks in CSF3 render functions". If it is not correct, change the title in the PR.
    • Areas include: React, Vue, Core, Docs, Controls, etc.
    • First word of summary indicates the type: “Add”, “Fix”, “Upgrade”, etc.
    • The entire title should fit on a line

This is a list of all the PRs merged and commits pushed directly to `next`, that will be part of this release:

  • 🐛 Bug: Search: Show docs stories as docs search result item instead of a story-group search result item #35495
  • 🐛 Bug: TanStack: Keep Start's document shell out of stories #35504
  • 📝 Documentation: Docs: Fix broken web-components snippets in loaders documentation #35368
  • 🏗️ Build: Fix(ci): surface patch-labeling failures instead of swallowing them #35525
  • 🏗️ Build: CI: Restore `pull-requests:write` permission for patch labeling #35524
  • 🏗️ Build: CI: Run the tail-defining Playwright dev jobs on xlarge with more workers #35510
  • 🏗️ Build: CI: Skip the redundant Compodoc run when documentation.json ships with the sandbox #35480
  • 🏗️ Build: CLI: Run addon postinstall automigrations with the local storybook binary #35486
  • 🏗️ Build: CI: Build sandbox static output inside the create job #35352

If you've made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with this workflow and wait for it to finish. It will wipe your progress in this to do, which is expected.

Feel free to manually commit any changes necessary to this branch after you've done the last re-generation, following the Make Manual Changes section in the docs, especially if you're making changes to the changelog.

When everything above is done:


Generated changelog

10.6.0-alpha.2

  • Search: Show docs stories as docs search result item instead of a story-group search result item - #35495, thanks kroeder!
  • TanStack: Keep Start's document shell out of stories - #35504, thanks unpunnyfuns!

coderanac and others added 25 commits July 3, 2026 14:24
The web-components examples in the loaders documentation were calling
`TodoItem` as a function without ever importing or defining it — a
copy-paste error from the React/Solid versions. Replaced with the
correct `html` tagged template literal from `lit`, consistent with
all other web-components snippets in the repository.

Co-authored-by: Cursor <cursoragent@cursor.com>
The standalone (build) job per template was ~90s of which ~55s was fixed
setup (spin-up, checkout, workspace attach and unpack) around a ~25-45s
build - and it sat between (create) and the e2e/chromatic/vitest jobs on
the workflow critical path, adding a full job hop plus a workspace
round-trip to those chains.

The static build now runs at the end of the create job, before the sandbox
is packed, so storybook-static travels inside the existing sandbox tarball
and downstream jobs need no extra restore step. e2e, chromatic, vitest and
test-runner depend on create directly.

The Windows sandbox jobs and the daily test-runner job referenced flow
jobs by array index; they now use named references, since the build job no
longer exists. saveBench('build') records identical data - it runs inside
'yarn task build' regardless of which CI job hosts it, and no job in the
generated workflows consumed the bench task output.
…nary

storybook init hardcodes skipInstall: true for addon postinstall scripts to
keep dependency handling to itself, but both the addon-vitest and addon-a11y
postinstalls also derived the package-runner mode from that flag - so every
init paid for ephemeral dlx/npx environments fetching a storybook copy that
was already installed as a devDependency one step earlier.

A new useRemotePkg postinstall option decouples the runner choice from the
subprocess flags: init passes the user's actual --skip-install value, so the
locally installed binary runs via exec whenever it exists, while a genuinely
skipped install still falls back to the ephemeral runner.

The a11y postinstall is also skipped when addon-vitest was configured in the
same init run: its single automigration (addon-a11y-addon-test) is already
executed by vitest's postinstall when both addons are present, so the second
invocation only spun up another package runner to conclude there was nothing
to do. It still runs standalone (storybook add) or when vitest fails.
…h the sandbox

The Angular dev and e2e jobs boot storybook through a docs:json prefix that
unconditionally regenerates documentation.json, stalling the dev-server start
behind a full Compodoc pass. On CI the sandbox tree is immutable once the
create job packs it, so the documentation.json travelling in the sandbox
archive is current by construction and the second run only reproduces it.
Local sandboxes keep regenerating on every start since sources change there.
After the build-in-create, local-postinstall and Compodoc-skip changes the
merged workflow tail is a tight cluster of dev-mode e2e jobs (~685s). Those
jobs run a dev server and Playwright in parallel on a large (4 vCPU)
executor with 3 workers. xlarge gives 8 vCPUs: ~2 for the dev server and 6
for the test workers, keeping the headroom ratio that made large/3 the
sweet spot when the class was last benchmarked.

Only the e2e-mode dev jobs change (17 in merged, 31 in daily); the
smoke-only dev jobs stay on medium classic and the serve-based e2e jobs
stay on medium+ with 3 workers. Dev-job minutes cost double (20 -> 40
credits), traded deliberately for wall clock on the critical tail.
The full-fleet xlarge/6-workers experiment cut the dev test phases 38% and
the matched-pair wall by ~55s, but at +45% credits on the whole e2e-dev
family (~+750k credits/30d fleet-wide) - more than the rest of the CI stack
saves. The wall only moves when the slowest chain moves, so only the
templates that define the tail keep the big class: angular-cli (webpack and
vite), next-js latest (webpack and vite), react (vite and webpack 18) and
vue3 vite. The other dev jobs return to large with 3 workers, where extra
speed cannot move the wall.

react-webpack/18-ts is included beyond the obvious tail set: in the matched
morning baseline it was the second-latest finisher (334s duration), so
leaving it on large would simply make it the new wall.
…build

CI: Build sandbox static output inside the create job
…tall-automigrate

CLI: Run addon postinstall automigrations with the local storybook binary
…oc-skip

CI: Skip the redundant Compodoc run when documentation.json ships with the sandbox
Review feedback: defineSandboxJob_dev looked up the template in
XLARGE_DEV_TEMPLATES itself; the call site now passes resourceClass
explicitly, which keeps the job factory free of template knowledge. Also
drop the PR reference from the template-set comment in favor of the
durable selection criterion. Generated configs are byte-identical.
…kers

CI: Run the tail-defining Playwright dev jobs on xlarge with more workers
Co-authored-by: Steve Dodier-Lazaro <Sidnioulz@users.noreply.github.com>
Co-authored-by: Steve Dodier-Lazaro <Sidnioulz@users.noreply.github.com>
Co-authored-by: Steve Dodier-Lazaro <Sidnioulz@users.noreply.github.com>
@github-actions github-actions Bot added the release For PRs that trigger new releases. Automated label Jul 17, 2026
ndelangen and others added 3 commits July 17, 2026 14:28
The publish workflow's `Label patch PRs as picked` step uses the GraphQL
`addLabelsToLabelable` mutation, which requires `pull-requests: write`.
Commit 93fb631 swapped this permission to `issues: write`, so the
`patch:done` labeling has failed with "Resource not accessible by
integration" since 10.5.0 reached latest-release. The failure was silent
(the script swallows the error), so already-released patch PRs kept being
re-picked into subsequent patch changelogs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…angelog-a4830f

CI: Restore `pull-requests:write` permission for patch labeling
…ell-component

TanStack: Keep Start's document shell out of stories
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-alpha.1 branch from 1ae7a70 to dbc107c Compare July 17, 2026 13:03
ndelangen and others added 3 commits July 17, 2026 15:07
`label-patches.ts` has caught and discarded labeling errors since it was
introduced in 2023 (#22959). That was fine for its original manual CLI use
(the ora spinner shows a human the failure), but the same run() is invoked
unattended by the publish workflow, where a swallowed error is invisible:
the step exits 0 and the workflow stays green. That is how the recent
pull-requests:write regression went unnoticed for two patch releases.

- label-patches.ts now re-throws after logging, so the process exits non-zero.
- The publish workflow marks the step continue-on-error (labeling is
  bookkeeping for the next release's cherry-pick and must not abort an
  already-published release) and alerts to Discord on failure.
- Adds a regression test asserting the error propagates.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Keep the change to the behavior fix only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nt-failure

Fix(ci): surface patch-labeling failures instead of swallowing them
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-alpha.1 branch from dbc107c to 1b08db6 Compare July 17, 2026 13:45
…ocs-navigation-type

Search: Show docs stories as docs search result item instead of a story-group search result item
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-alpha.1 branch from 1b08db6 to 61ac103 Compare July 17, 2026 14:38
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-alpha.1 branch from 61ac103 to 8f6c90b Compare July 17, 2026 15:48
@ndelangen ndelangen self-assigned this Jul 20, 2026
@ndelangen ndelangen added ci:daily Run the CI jobs that normally run in the daily job. freeze Freeze the Release PR with this label labels Jul 20, 2026
@ndelangen
ndelangen merged commit 10da88b into next-release Jul 20, 2026
287 of 292 checks passed
@ndelangen
ndelangen deleted the version-non-patch-from-10.6.0-alpha.1 branch July 20, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:daily Run the CI jobs that normally run in the daily job. freeze Freeze the Release PR with this label release For PRs that trigger new releases. Automated

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants