From 8a296202fc4df5023fceda977fe2fc41be54f946 Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 16 Nov 2025 09:04:32 +0100 Subject: [PATCH 1/8] chore: storybook new cli ux --- packages/addons/storybook/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/storybook/index.ts b/packages/addons/storybook/index.ts index dd3b76393..5b3fa91f7 100644 --- a/packages/addons/storybook/index.ts +++ b/packages/addons/storybook/index.ts @@ -12,7 +12,7 @@ export default defineAddon({ runsAfter('eslint'); }, run: async ({ sv }) => { - const args = ['create-storybook@latest', '--skip-install', '--no-dev']; + const args = ['create-storybook@0.0.0-pr-32984-sha-9ba02343', '--skip-install', '--no-dev']; // skips the onboarding prompt during tests if (process.env.NODE_ENV?.toLowerCase() === 'test') args.push('--yes'); From 6b4883b4e047ecb1fab1f8d073034c714bc03b38 Mon Sep 17 00:00:00 2001 From: "jyc.dev" Date: Mon, 17 Nov 2025 11:30:24 +0100 Subject: [PATCH 2/8] Update packages/addons/storybook/index.ts Co-authored-by: Jeppe Reinhold --- packages/addons/storybook/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/storybook/index.ts b/packages/addons/storybook/index.ts index 5b3fa91f7..b8ea9fb3e 100644 --- a/packages/addons/storybook/index.ts +++ b/packages/addons/storybook/index.ts @@ -12,7 +12,7 @@ export default defineAddon({ runsAfter('eslint'); }, run: async ({ sv }) => { - const args = ['create-storybook@0.0.0-pr-32984-sha-9ba02343', '--skip-install', '--no-dev']; + const args = ['create-storybook@0.0.0-pr-32717-sha-f340a68b', '--skip-install', '--no-dev']; // skips the onboarding prompt during tests if (process.env.NODE_ENV?.toLowerCase() === 'test') args.push('--yes'); From 2fe9bc4d02c4b7b39c7a5eb54a1edec6cfdb2214 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 18 Nov 2025 12:46:31 +0100 Subject: [PATCH 3/8] link storybook versions --- packages/addons/_tests/storybook/test.ts | 8 +- packages/addons/package.json | 3 +- packages/addons/storybook/index.ts | 4 +- pnpm-lock.yaml | 145 ++++++++++++----------- 4 files changed, 83 insertions(+), 77 deletions(-) diff --git a/packages/addons/_tests/storybook/test.ts b/packages/addons/_tests/storybook/test.ts index 5ca86e022..8c6f5a31a 100644 --- a/packages/addons/_tests/storybook/test.ts +++ b/packages/addons/_tests/storybook/test.ts @@ -1,9 +1,9 @@ import process from 'node:process'; -import { execSync } from 'node:child_process'; +import { exec } from 'tinyexec'; import { expect } from '@playwright/test'; import { beforeAll } from 'vitest'; import { setupTest } from '../_setup/suite.ts'; -import storybook from '../../storybook/index.ts'; +import storybook, { STORYBOOK_VERSION } from '../../storybook/index.ts'; import eslint from '../../eslint/index.ts'; // we're including the `eslint` add-on to prevent `storybook` from modifying this repo's `eslint.config.js` @@ -15,10 +15,10 @@ const { test, testCases, prepareServer } = setupTest( let port = 6006; const CI = Boolean(process.env.CI); -beforeAll(() => { +beforeAll(async () => { if (CI) { // prefetch the storybook cli during ci to reduce fetching errors in tests - execSync('pnpm dlx create-storybook@latest --version'); + await exec(`pnpm dlx create-storybook@${STORYBOOK_VERSION} --version`); } }); diff --git a/packages/addons/package.json b/packages/addons/package.json index 085d39d3b..2046ab500 100644 --- a/packages/addons/package.json +++ b/packages/addons/package.json @@ -15,6 +15,7 @@ "@sveltejs/cli-core": "workspace:*" }, "devDependencies": { - "package-manager-detector": "^0.2.11" + "package-manager-detector": "^0.2.11", + "tinyexec": "^0.3.2" } } diff --git a/packages/addons/storybook/index.ts b/packages/addons/storybook/index.ts index b8ea9fb3e..6d4ae4cfc 100644 --- a/packages/addons/storybook/index.ts +++ b/packages/addons/storybook/index.ts @@ -2,6 +2,8 @@ import process from 'node:process'; import { defineAddon } from '@sveltejs/cli-core'; import { getNodeTypesVersion } from '../common.ts'; +export const STORYBOOK_VERSION = '0.0.0-pr-32717-sha-f340a68b'; + export default defineAddon({ id: 'storybook', shortDescription: 'frontend workshop', @@ -12,7 +14,7 @@ export default defineAddon({ runsAfter('eslint'); }, run: async ({ sv }) => { - const args = ['create-storybook@0.0.0-pr-32717-sha-f340a68b', '--skip-install', '--no-dev']; + const args = [`create-storybook@${STORYBOOK_VERSION}`, '--skip-install', '--no-dev']; // skips the onboarding prompt during tests if (process.env.NODE_ENV?.toLowerCase() === 'test') args.push('--yes'); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef26c6178..802afeee2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,6 +91,9 @@ importers: package-manager-detector: specifier: ^0.2.11 version: 0.2.11 + tinyexec: + specifier: ^0.3.2 + version: 0.3.2 packages/cli: devDependencies: @@ -615,8 +618,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/types@0.96.0': - resolution: {integrity: sha512-r/xkmoXA0xEpU6UGtn18CNVjXH6erU3KCpCDbpLmbVxBFor1U9MqN5Z2uMmCHJuXjJzlnDR+hWY+yPoLo8oHDw==} + '@oxc-project/types@0.97.0': + resolution: {integrity: sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -637,91 +640,91 @@ packages: '@quansync/fs@0.1.5': resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==} - '@rolldown/binding-android-arm64@1.0.0-beta.47': - resolution: {integrity: sha512-vPP9/MZzESh9QtmvQYojXP/midjgkkc1E4AdnPPAzQXo668ncHJcVLKjJKzoBdsQmaIvNjrMdsCwES8vTQHRQw==} + '@rolldown/binding-android-arm64@1.0.0-beta.50': + resolution: {integrity: sha512-XlEkrOIHLyGT3avOgzfTFSjG+f+dZMw+/qd+Y3HLN86wlndrB/gSimrJCk4gOhr1XtRtEKfszpadI3Md4Z4/Ag==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-beta.47': - resolution: {integrity: sha512-Lc3nrkxeaDVCVl8qR3qoxh6ltDZfkQ98j5vwIr5ALPkgjZtDK4BGCrrBoLpGVMg+csWcaqUbwbKwH5yvVa0oOw==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.50': + resolution: {integrity: sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.47': - resolution: {integrity: sha512-eBYxQDwP0O33plqNVqOtUHqRiSYVneAknviM5XMawke3mwMuVlAsohtOqEjbCEl/Loi/FWdVeks5WkqAkzkYWQ==} + '@rolldown/binding-darwin-x64@1.0.0-beta.50': + resolution: {integrity: sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.47': - resolution: {integrity: sha512-Ns+kgp2+1Iq/44bY/Z30DETUSiHY7ZuqaOgD5bHVW++8vme9rdiWsN4yG4rRPXkdgzjvQ9TDHmZZKfY4/G11AA==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.50': + resolution: {integrity: sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.47': - resolution: {integrity: sha512-4PecgWCJhTA2EFOlptYJiNyVP2MrVP4cWdndpOu3WmXqWqZUmSubhb4YUAIxAxnXATlGjC1WjxNPhV7ZllNgdA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.50': + resolution: {integrity: sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.47': - resolution: {integrity: sha512-CyIunZ6D9U9Xg94roQI1INt/bLkOpPsZjZZkiaAZ0r6uccQdICmC99M9RUPlMLw/qg4yEWLlQhG73W/mG437NA==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.50': + resolution: {integrity: sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.47': - resolution: {integrity: sha512-doozc/Goe7qRCSnzfJbFINTHsMktqmZQmweull6hsZZ9sjNWQ6BWQnbvOlfZJe4xE5NxM1NhPnY5Giqnl3ZrYQ==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.50': + resolution: {integrity: sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.47': - resolution: {integrity: sha512-fodvSMf6Aqwa0wEUSTPewmmZOD44rc5Tpr5p9NkwQ6W1SSpUKzD3SwpJIgANDOhwiYhDuiIaYPGB7Ujkx1q0UQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.50': + resolution: {integrity: sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.47': - resolution: {integrity: sha512-Rxm5hYc0mGjwLh5sjlGmMygxAaV2gnsx7CNm2lsb47oyt5UQyPDZf3GP/ct8BEcwuikdqzsrrlIp8+kCSvMFNQ==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.50': + resolution: {integrity: sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-openharmony-arm64@1.0.0-beta.47': - resolution: {integrity: sha512-YakuVe+Gc87jjxazBL34hbr8RJpRuFBhun7NEqoChVDlH5FLhLXjAPHqZd990TVGVNkemourf817Z8u2fONS8w==} + '@rolldown/binding-openharmony-arm64@1.0.0-beta.50': + resolution: {integrity: sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.47': - resolution: {integrity: sha512-ak2GvTFQz3UAOw8cuQq8pWE+TNygQB6O47rMhvevvTzETh7VkHRFtRUwJynX5hwzFvQMP6G0az5JrBGuwaMwYQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.50': + resolution: {integrity: sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.47': - resolution: {integrity: sha512-o5BpmBnXU+Cj+9+ndMcdKjhZlPb79dVPBZnWwMnI4RlNSSq5yOvFZqvfPYbyacvnW03Na4n5XXQAPhu3RydZ0w==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.50': + resolution: {integrity: sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.47': - resolution: {integrity: sha512-FVOmfyYehNE92IfC9Kgs913UerDog2M1m+FADJypKz0gmRg3UyTt4o1cZMCAl7MiR89JpM9jegNO1nXuP1w1vw==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.50': + resolution: {integrity: sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.47': - resolution: {integrity: sha512-by/70F13IUE101Bat0oeH8miwWX5mhMFPk1yjCdxoTNHTyTdLgb0THNaebRM6AP7Kz+O3O2qx87sruYuF5UxHg==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.50': + resolution: {integrity: sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-beta.47': - resolution: {integrity: sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==} + '@rolldown/pluginutils@1.0.0-beta.50': + resolution: {integrity: sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==} '@rollup/rollup-android-arm-eabi@4.46.2': resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} @@ -1909,8 +1912,8 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-beta.47: - resolution: {integrity: sha512-Mid74GckX1OeFAOYz9KuXeWYhq3xkXbMziYIC+ULVdUzPTG9y70OBSBQDQn9hQP8u/AfhuYw1R0BSg15nBI4Dg==} + rolldown@1.0.0-beta.50: + resolution: {integrity: sha512-JFULvCNl/anKn99eKjOSEubi0lLmNqQDAjyEMME2T4CwezUDL0i6t1O9xZsu2OMehPnV2caNefWpGF+8TnzB6A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2696,7 +2699,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@oxc-project/types@0.96.0': {} + '@oxc-project/types@0.97.0': {} '@pkgjs/parseargs@0.11.0': optional: true @@ -2713,51 +2716,51 @@ snapshots: dependencies: quansync: 0.2.11 - '@rolldown/binding-android-arm64@1.0.0-beta.47': + '@rolldown/binding-android-arm64@1.0.0-beta.50': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.47': + '@rolldown/binding-darwin-arm64@1.0.0-beta.50': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.47': + '@rolldown/binding-darwin-x64@1.0.0-beta.50': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.47': + '@rolldown/binding-freebsd-x64@1.0.0-beta.50': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.47': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.50': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.47': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.50': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.47': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.50': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.47': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.50': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.47': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.50': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.47': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.50': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.47': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.50': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.47': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.50': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.47': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.50': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.47': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.50': optional: true - '@rolldown/pluginutils@1.0.0-beta.47': {} + '@rolldown/pluginutils@1.0.0-beta.50': {} '@rollup/rollup-android-arm-eabi@4.46.2': optional: true @@ -3837,7 +3840,7 @@ snapshots: reusify@1.1.0: {} - rolldown-plugin-dts@0.16.9(rolldown@1.0.0-beta.47)(typescript@5.8.3): + rolldown-plugin-dts@0.16.9(rolldown@1.0.0-beta.50)(typescript@5.8.3): dependencies: '@babel/generator': 7.28.3 '@babel/parser': 7.28.4 @@ -3848,32 +3851,32 @@ snapshots: dts-resolver: 2.1.2 get-tsconfig: 4.10.1 magic-string: 0.30.19 - rolldown: 1.0.0-beta.47 + rolldown: 1.0.0-beta.50 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - oxc-resolver - supports-color - rolldown@1.0.0-beta.47: + rolldown@1.0.0-beta.50: dependencies: - '@oxc-project/types': 0.96.0 - '@rolldown/pluginutils': 1.0.0-beta.47 + '@oxc-project/types': 0.97.0 + '@rolldown/pluginutils': 1.0.0-beta.50 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.47 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.47 - '@rolldown/binding-darwin-x64': 1.0.0-beta.47 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.47 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.47 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.47 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.47 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.47 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.47 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.47 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.47 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.47 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.47 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.47 + '@rolldown/binding-android-arm64': 1.0.0-beta.50 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.50 + '@rolldown/binding-darwin-x64': 1.0.0-beta.50 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.50 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.50 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.50 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.50 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.50 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.50 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.50 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.50 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.50 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.50 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.50 rollup@4.46.2: dependencies: @@ -4100,8 +4103,8 @@ snapshots: diff: 8.0.2 empathic: 2.0.0 hookable: 5.5.3 - rolldown: 1.0.0-beta.47 - rolldown-plugin-dts: 0.16.9(rolldown@1.0.0-beta.47)(typescript@5.8.3) + rolldown: 1.0.0-beta.50 + rolldown-plugin-dts: 0.16.9(rolldown@1.0.0-beta.50)(typescript@5.8.3) semver: 7.7.2 tinyexec: 1.0.1 tinyglobby: 0.2.15 From 61688cc48ba8bf7bda366dac6cbdf44bc3a2f891 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 18 Nov 2025 13:48:08 +0100 Subject: [PATCH 4/8] with this syntax! --- packages/addons/_tests/storybook/test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/_tests/storybook/test.ts b/packages/addons/_tests/storybook/test.ts index 8c6f5a31a..ea3c5e017 100644 --- a/packages/addons/_tests/storybook/test.ts +++ b/packages/addons/_tests/storybook/test.ts @@ -18,7 +18,7 @@ const CI = Boolean(process.env.CI); beforeAll(async () => { if (CI) { // prefetch the storybook cli during ci to reduce fetching errors in tests - await exec(`pnpm dlx create-storybook@${STORYBOOK_VERSION} --version`); + await exec('pnpm', ['dlx', `create-storybook@${STORYBOOK_VERSION}`, '--version']); } }); From 41a69c8cb434254775c2af8cf9a0501539f45f12 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 18 Nov 2025 14:02:17 +0100 Subject: [PATCH 5/8] --features docs --- packages/addons/storybook/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/addons/storybook/index.ts b/packages/addons/storybook/index.ts index 6d4ae4cfc..59b7589f7 100644 --- a/packages/addons/storybook/index.ts +++ b/packages/addons/storybook/index.ts @@ -14,7 +14,13 @@ export default defineAddon({ runsAfter('eslint'); }, run: async ({ sv }) => { - const args = [`create-storybook@${STORYBOOK_VERSION}`, '--skip-install', '--no-dev']; + const args = [ + `create-storybook@${STORYBOOK_VERSION}`, + '--skip-install', + '--no-dev', + '--features', + 'docs' + ]; // skips the onboarding prompt during tests if (process.env.NODE_ENV?.toLowerCase() === 'test') args.push('--yes'); From 059d0cd2b4d6cedc25efdb036deb8a05cdd54b40 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 18 Nov 2025 19:13:59 +0100 Subject: [PATCH 6/8] prefetch storybook ONCE in the global setup. (for all-addons + storybook + others...) --- packages/addons/_tests/_setup/global.ts | 15 +++++++++++++++ packages/addons/_tests/storybook/test.ts | 11 +---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/addons/_tests/_setup/global.ts b/packages/addons/_tests/_setup/global.ts index c078a3c67..734f0c0d1 100644 --- a/packages/addons/_tests/_setup/global.ts +++ b/packages/addons/_tests/_setup/global.ts @@ -1,11 +1,26 @@ import { fileURLToPath } from 'node:url'; import { setup, type ProjectVariant } from 'sv/testing'; import type { TestProject } from 'vitest/node'; +import process from 'node:process'; +import { exec } from 'tinyexec'; + +import { STORYBOOK_VERSION } from '../../storybook/index.ts'; const TEST_DIR = fileURLToPath(new URL('../../../../.test-output/addons/', import.meta.url)); const variants: ProjectVariant[] = ['kit-js', 'kit-ts', 'vite-js', 'vite-ts']; +const CI = Boolean(process.env.CI); export default async function ({ provide }: TestProject) { + if (CI) { + // prefetch the storybook cli during ci to reduce fetching errors in tests + const { stdout } = await exec('pnpm', [ + 'dlx', + `create-storybook@${STORYBOOK_VERSION}`, + '--version' + ]); + console.info('storybook version:', stdout); + } + // downloads different project configurations (sveltekit, js/ts, vite-only, etc) const { templatesDir } = await setup({ cwd: TEST_DIR, variants }); diff --git a/packages/addons/_tests/storybook/test.ts b/packages/addons/_tests/storybook/test.ts index ea3c5e017..94422541c 100644 --- a/packages/addons/_tests/storybook/test.ts +++ b/packages/addons/_tests/storybook/test.ts @@ -1,9 +1,7 @@ import process from 'node:process'; -import { exec } from 'tinyexec'; import { expect } from '@playwright/test'; -import { beforeAll } from 'vitest'; import { setupTest } from '../_setup/suite.ts'; -import storybook, { STORYBOOK_VERSION } from '../../storybook/index.ts'; +import storybook from '../../storybook/index.ts'; import eslint from '../../eslint/index.ts'; // we're including the `eslint` add-on to prevent `storybook` from modifying this repo's `eslint.config.js` @@ -15,13 +13,6 @@ const { test, testCases, prepareServer } = setupTest( let port = 6006; const CI = Boolean(process.env.CI); -beforeAll(async () => { - if (CI) { - // prefetch the storybook cli during ci to reduce fetching errors in tests - await exec('pnpm', ['dlx', `create-storybook@${STORYBOOK_VERSION}`, '--version']); - } -}); - test.for(testCases)( 'storybook $variant', { concurrent: !CI }, From 3a73fc958c20385ff92d063be82eeff5d06c61ff Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 18 Nov 2025 19:16:11 +0100 Subject: [PATCH 7/8] let's see if now in // t's possible in CI --- packages/addons/_tests/storybook/test.ts | 32 ++++++++++-------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/packages/addons/_tests/storybook/test.ts b/packages/addons/_tests/storybook/test.ts index 94422541c..a651fadb6 100644 --- a/packages/addons/_tests/storybook/test.ts +++ b/packages/addons/_tests/storybook/test.ts @@ -1,4 +1,3 @@ -import process from 'node:process'; import { expect } from '@playwright/test'; import { setupTest } from '../_setup/suite.ts'; import storybook from '../../storybook/index.ts'; @@ -11,24 +10,19 @@ const { test, testCases, prepareServer } = setupTest( ); let port = 6006; -const CI = Boolean(process.env.CI); -test.for(testCases)( - 'storybook $variant', - { concurrent: !CI }, - async (testCase, { page, ...ctx }) => { - const cwd = ctx.cwd(testCase); +test.concurrent.for(testCases)('storybook $variant', async (testCase, { page, ...ctx }) => { + const cwd = ctx.cwd(testCase); - const { close } = await prepareServer({ - cwd, - page, - previewCommand: `pnpm storybook -p ${++port} --ci`, - buildCommand: '' - }); - // kill server process when we're done - ctx.onTestFinished(async () => await close()); + const { close } = await prepareServer({ + cwd, + page, + previewCommand: `pnpm storybook -p ${++port} --ci`, + buildCommand: '' + }); + // kill server process when we're done + ctx.onTestFinished(async () => await close()); - expect(page.locator('main .sb-bar')).toBeTruthy(); - expect(page.locator('#storybook-preview-wrapper')).toBeTruthy(); - } -); + expect(page.locator('main .sb-bar')).toBeTruthy(); + expect(page.locator('#storybook-preview-wrapper')).toBeTruthy(); +}); From 31da3f86ec18dbe61131595262f708e25d7703a8 Mon Sep 17 00:00:00 2001 From: jycouet Date: Wed, 19 Nov 2025 08:20:13 +0100 Subject: [PATCH 8/8] --no-features --- packages/addons/storybook/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/addons/storybook/index.ts b/packages/addons/storybook/index.ts index 59b7589f7..d524a8a26 100644 --- a/packages/addons/storybook/index.ts +++ b/packages/addons/storybook/index.ts @@ -18,8 +18,7 @@ export default defineAddon({ `create-storybook@${STORYBOOK_VERSION}`, '--skip-install', '--no-dev', - '--features', - 'docs' + '--no-features' ]; // skips the onboarding prompt during tests