Skip to content

Add ci command benchmarks to package manager suite - #167

Open
vltbaudbot wants to merge 1 commit into
mainfrom
evert/add-ci-benchmarks
Open

Add ci command benchmarks to package manager suite#167
vltbaudbot wants to merge 1 commit into
mainfrom
evert/add-ci-benchmarks

Conversation

@vltbaudbot

Copy link
Copy Markdown
Contributor

Summary

Adds a new ci benchmark variation that tests each package manager's CI/frozen-lockfile install command — the production-oriented counterpart to regular install.

CI commands benchmarked

Package Manager CI Command
npm npm ci
yarn (classic) yarn install --frozen-lockfile
yarn (berry) yarn install --immutable
yarn (zpm) yarn install --immutable
pnpm pnpm install --frozen-lockfile
pnpm 12 (pacquet) pnpm install --frozen-lockfile
vlt vlt ci
bun bun install --frozen-lockfile
deno deno install --frozen
aube aube ci

How it works

The ci variation differs from cache+lockfile in that it uses each PM's dedicated CI command (which enforces a frozen lockfile) rather than a regular install. Each PM's prepare step:

  1. Cleans lockfiles, node_modules, and PM files from the previous PM
  2. Runs a regular install to generate the lockfile and populate caches
  3. Cleans node_modules (leaving lockfile + cache in place)

The measured command then runs the CI variant, simulating a typical CI pipeline.

Files changed

  • scripts/variations/ci.sh — New variation script
  • scripts/benchmark.sh — Add ci case to dispatcher
  • bench — Add ci to available variations
  • .github/workflows/benchmark.yaml — Add ci to matrix & partial-run detection
  • scripts/process-results.sh — Add ci to processing loop
  • scripts/generate-chart.js — Add ci to chart data generation
  • app/src/types/chart-data.ts — Add ci to TypeScript types
  • app/src/lib/utils.ts — Add ci to categories, sort order, and averages
  • app/src/hooks/use-history-data.ts — Include ci in history averages

Co-authored-by: Evert Pot me@evertpot.com

Add a new 'ci' benchmark variation that tests each package manager's
CI/frozen-lockfile install command:

- npm ci
- yarn install --frozen-lockfile (classic)
- yarn install --immutable (berry/zpm)
- pnpm install --frozen-lockfile
- pnpm 12 install --frozen-lockfile (pacquet)
- vlt ci
- bun install --frozen-lockfile
- deno install --frozen
- aube ci

The ci variation measures the production/CI-oriented counterpart to
regular install. Each PM's prepare step generates a lockfile via
regular install, then cleans node_modules — simulating a CI pipeline
where the lockfile is committed and caches may be restored, but
node_modules is absent.

Changes:
- scripts/variations/ci.sh: New variation script with per-PM ci commands
  and prepare steps that generate lockfiles before each measured run
- scripts/benchmark.sh: Add ci case to variation dispatcher
- bench: Add ci to AVAILABLE_VARIATIONS list
- .github/workflows/benchmark.yaml: Add ci to matrix variations and
  partial-run detection defaults
- scripts/process-results.sh: Add ci to the variation processing loop
- scripts/generate-chart.js: Add ci to the chart data variations list
- app/src/types/chart-data.ts: Add ci to Variation type and validation
- app/src/lib/utils.ts: Add ci to variation categories, sort order, and
  average calculation
- app/src/hooks/use-history-data.ts: Include ci in the package management
  average history computation

Co-authored-by: Evert Pot <me@evertpot.com>
@lukekarrys
lukekarrys requested a balanced review from Copilot August 26, 2026 20:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@darcyclarke
darcyclarke requested a balanced review from Copilot August 26, 2026 20:33
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.

4 participants