test: guard package manager parity#589
Closed
JustYannicc wants to merge 115 commits into
Closed
Conversation
…perf-wave2-integration-stack-20260704 # Conflicts: # src/renderer/src/raycast-api/hooks/use-cached-promise.ts
…perf-wave2-integration-stack-20260704 # Conflicts: # src/renderer/src/raycast-api/list-runtime-renderers.tsx # src/renderer/src/raycast-api/list-runtime.tsx
…perf-wave2-integration-stack-20260704 # Conflicts: # src/renderer/src/CameraExtension.tsx
…perf-wave2-integration-stack-20260704
…perf-wave2-integration-stack-20260704
…perf-wave2-integration-stack-20260704
…perf-wave2-integration-stack-20260704
…perf-wave2-integration-stack-20260704 # Conflicts: # src/renderer/src/raycast-api/list-runtime.tsx
…perf-wave2-integration-stack-20260704 # Conflicts: # scripts/bench-script-command-discovery.mjs # scripts/benchmark-file-search-delete-batch.mjs # scripts/lib/script-command-runner-harness.mjs # scripts/lib/ts-import.mjs # scripts/test-file-search-delete-batch.mjs # scripts/test-script-command-runner.mjs # src/main/file-search-index.ts # src/main/main.ts
…perf-wave2-integration-stack-20260704 # Conflicts: # scripts/lib/script-command-runner-harness.mjs # scripts/lib/ts-import.mjs # scripts/test-extension-lifecycle-sandbox.mjs # scripts/test-script-command-runner.mjs # src/main/main.ts # src/renderer/src/ExtensionView.tsx
…perf-wave2-integration-stack-20260704 # Conflicts: # .github/workflows/project-checks.yml # scripts/test-root-search-perf.mjs # src/renderer/src/CameraExtension.tsx # src/renderer/src/raycast-api/list-runtime.tsx
…-integration-stack-20260704
…-integration-stack-20260704
…-integration-stack-20260704
…e3-integration-stack-20260704
…erf-wave3-integration-stack-20260704 # Conflicts: # package.json # scripts/measure-extension-bundle-cache.mjs # scripts/test-icon-runtime-file-icon-cache.mjs # src/main/extension-runner.ts # src/renderer/src/components/HiddenExtensionRunners.tsx # src/renderer/src/raycast-api/icon-runtime-render.tsx
…/perf-wave3-integration-stack-20260704 # Conflicts: # scripts/test-browser-search-performance.mjs # scripts/test-root-search-perf.mjs
Collaborator
Author
|
Superseded by #600, which consolidates the package-manager parity validation into the final npm-based project checks branch without pnpm artifacts. |
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.
What changed
package-lock.jsonas authoritative, rejects pnpm lifecycle/runtime markers, rejects rootpnpm-lock.yaml, validates root dependency spec parity, and compares installed package versions against the npm lockfile whennode_modulesis present.pnpm-lock.yamlso generated pnpm locks cannot be accidentally swept into normal PR staging.Why
macOS local
npmmay be a shim that delegates to pnpm, which can generate an untracked rootpnpm-lock.yamland install dependency versions that differ from CInpm ci. The guard makes that drift visible or blocks the validation path before local results diverge from the committed npm lockfile.Compatibility impact
Developer validation only. App runtime behavior and production code paths are unchanged.
How tested
206eab8280a2eb91a57e4e74ea6df99e45a55cb4:/usr/bin/time -p npm testused the disabled macOS npm shim, printednpm is intentionally disabled on this Mac. Using pnpm instead., passed in 12.30s, generated untrackedpnpm-lock.yaml, and installed@raycast/api1.104.21 whilepackage-lock.jsonexpected 1.104.19.PATH=/opt/homebrew/opt/node@22/bin:...:npm ci8.16s,npm test4.79s,npm run check:i18n0.16s,npm run build:main1.44s,tsc -p tsconfig.main.json --noEmit --pretty false1.06s,npm run typecheck:renderer3.24s,npm run build:renderer4.54s./usr/bin/time -p npm testfailed fast in 0.24s withThis project is configured to use npm, exit 1, and no rootpnpm-lock.yamlwas created.PATH=/opt/homebrew/opt/node@22/bin:...:npm ci8.03s,npm run check:package-manager0.17s after install and checked 584 installed package versions,npm test4.89s,npm run check:i18n0.24s,npm run build:main1.50s,tsc -p tsconfig.main.json --noEmit --pretty false1.07s,npm run typecheck:renderer3.33s,npm run build:renderer4.60s..mjsscripts; no diagnostics found. eslint/biome LSP servers were unavailable, so LSP coverage did not include lint-rule diagnostics.Performance evidence
The new parity prechecks add a small validation cost while blocking drift: direct post-install package-manager check completed in 0.17s across 584 installed package entries. After timings remained close to base real-npm timings: tests 4.89s vs 4.79s, i18n 0.24s vs 0.16s, build:main 1.50s vs 1.44s, renderer typecheck 3.33s vs 3.24s, renderer build 4.60s vs 4.54s.
Stack validation
codex/perf-wave3-integration-stack-20260704at206eab8280a2eb91a57e4e74ea6df99e45a55cb4.npm run build:mainand explicittsc -p tsconfig.main.json --noEmit --pretty false.npm run typecheck:renderer.pnpm-lock.yaml, coordinator notes, prompts, or playbooks are included.Replaces
npm ci.