Files
redwoodjs__local-ci/experiments/pkg-cache-bench
dependabot[bot] 944570f551 chore(deps): bump the npm_and_yarn group across 3 directories with 2 updates (#318)
Bumps the npm_and_yarn group with 1 update in the / directory: [rwsdk](https://github.com/redwoodjs/sdk/tree/HEAD/sdk).
Bumps the npm_and_yarn group with 1 update in the /apps/website directory: [rwsdk](https://github.com/redwoodjs/sdk/tree/HEAD/sdk).
Bumps the npm_and_yarn group with 1 update in the /experiments/pkg-cache-bench directory: [rwsdk](https://github.com/redwoodjs/sdk/tree/HEAD/sdk).


Updates `rwsdk` from 1.0.6 to 1.2.3
- [Release notes](https://github.com/redwoodjs/sdk/releases)
- [Commits](https://github.com/redwoodjs/sdk/commits/v1.2.3/sdk)

Updates `basic-ftp` from 5.2.2 to 5.3.0
- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)
- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.2.2...v5.3.0)

Updates `rwsdk` from 1.0.6 to 1.2.3
- [Release notes](https://github.com/redwoodjs/sdk/releases)
- [Commits](https://github.com/redwoodjs/sdk/commits/v1.2.3/sdk)

Updates `rwsdk` from 1.0.6 to 1.2.3
- [Release notes](https://github.com/redwoodjs/sdk/releases)
- [Commits](https://github.com/redwoodjs/sdk/commits/v1.2.3/sdk)

---
updated-dependencies:
- dependency-name: rwsdk
  dependency-version: 1.2.3
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: basic-ftp
  dependency-version: 5.3.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: rwsdk
  dependency-version: 1.2.3
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: rwsdk
  dependency-version: 1.2.3
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 10:15:26 +02:00
..
2026-03-12 22:35:26 +02:00

Package Manager Cache Benchmark

Benchmarks install speed for NPM, Yarn, and Bun across 4 caching scenarios using a real create-rwsdk project.

Why

Agent CI already caches PNPM installs via warm node_modules bind-mounts (symlinked into containers). This experiment measures whether the same strategy works for other package managers.

Run

# All package managers
bash bench.sh

# Specific ones
bash bench.sh --pm npm
bash bench.sh --pm yarn
bash bench.sh --pm bun
bash bench.sh --pm npm,bun

Scenarios

# Scenario What it tests
1 Cold install Fresh install, no cache, no node_modules
2 Warm cache Global cache populated, but node_modules deleted
3 Warm modules node_modules already present, incremental install
4 Symlink only Symlink a cached node_modules — no install at all

Scenario 4 is the interesting one — it's what Agent CI does for PNPM. If it's ≫5× faster than cold install, the warm-modules strategy generalises to all package managers.

Requirements

  • npm (bundled with Node)
  • yarn v1: npm i -g yarn
  • bun: curl -fsSL https://bun.sh/install | bash