Vitest: Fallback detecting vitest version in postinstall #33415
Merged
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.
Closes #33410
What I did
I copied the fallback mechanism found in
AddonVitestServiceto the postinstall. Though this is no longer really needed due to the second fix in this PR:I have figured out why the
packageManager.getInstalledVersion('vitest')is failing:When this command is executed:
pnpm list "vitest" --json --depth=99pnpmexits with code=1, with this error:Running the command with
shell:trueresolves the problem.It seemed both
pnpmandyarn1PackageManager-instances were affected by this.I've added additional debug logging to make the errors easier to find in the future.
Another discovery was that the config-file getting edited/generated for addon-vitest can get out of sync with the version getting add/installed due to a missing
semver.coerce.Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
I've tested a canary with just the fallback addition.
Then I switched to running the bin directly off a development branch, as suggested by the issue.
Adding debug logging until I was able to figure out why the installed version was not correctly detected.
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal,ci:mergedorci:dailyGH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli-storybook/src/sandbox-templates.tsMake 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-33415-sha-8542def9. Try it out in a new sandbox by runningnpx storybook@0.0.0-pr-33415-sha-8542def9 sandboxor in an existing project withnpx storybook@0.0.0-pr-33415-sha-8542def9 upgrade.More information
0.0.0-pr-33415-sha-8542def9norbert/vitest-version-detection-fallback8542def91766487493)To request a new release of this pull request, mention the
@storybookjs/coreteam.core team members can create a new canary release here or locally with
gh workflow run --repo storybookjs/storybook publish.yml --field pr=33415