From c9c97f0b50a340087d38872c3be59194dcc4b451 Mon Sep 17 00:00:00 2001 From: vltbaudbot <264001112+vltbaudbot@users.noreply.github.com> Date: Tue, 6 Oct 2026 02:34:32 +0000 Subject: [PATCH 1/4] chore: remove pacquet from workflow BENCH_INCLUDE default The workflow YAML was overriding the common.sh default by explicitly passing pacquet in the BENCH_INCLUDE env variable. Without this fix, the CI would still try to include pacquet in the benchmark matrix (though it would silently skip since no BENCH_INCLUDE_PACQUET var is set in common.sh). --- .github/workflows/benchmark.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/benchmark.yaml b/.github/workflows/benchmark.yaml index d545261767..e435d1b43f 100644 --- a/.github/workflows/benchmark.yaml +++ b/.github/workflows/benchmark.yaml @@ -11,7 +11,7 @@ on: default: '["clean", "node_modules", "cache", "cache+node_modules", "cache+lockfile", "cache+lockfile+node_modules", "ci", "ci+setup", "lockfile", "lockfile+node_modules", "registry-clean", "registry-lockfile"]' binaries: description: "The binaries to run the benchmarks on" - default: '"npm,yarn,berry,zpm,pnpm,pacquet,vlt,bun,deno,aube,upm,nx,turbo,vp,node"' + default: '"npm,yarn,berry,zpm,pnpm,vlt,bun,deno,aube,upm,nx,turbo,vp,node"' warmup: description: "The number of warmup runs on each benchmark" default: "2" @@ -94,7 +94,7 @@ jobs: if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then [[ "$IN_FIXTURES" == '["next", "astro", "vue", "svelte", "large", "babylon"]' ]] || partial=true [[ "$IN_VARIATIONS" == '["clean", "node_modules", "cache", "cache+node_modules", "cache+lockfile", "cache+lockfile+node_modules", "ci", "ci+setup", "lockfile", "lockfile+node_modules", "registry-clean", "registry-lockfile"]' ]] || partial=true - [[ "$IN_BINARIES" == '"npm,yarn,berry,zpm,pnpm,pacquet,vlt,bun,deno,aube,upm,nx,turbo,vp,node"' ]] || partial=true + [[ "$IN_BINARIES" == '"npm,yarn,berry,zpm,pnpm,vlt,bun,deno,aube,upm,nx,turbo,vp,node"' ]] || partial=true [[ "$IN_WARMUP" == "2" ]] || partial=true [[ "$IN_RUNS" == "5" ]] || partial=true fi @@ -128,7 +128,7 @@ jobs: env: # rc.21 is advertised by the canary channel but its Linux ARM64 npm binary is missing. BENCH_ZPM_VERSION: "6.0.0-rc.20" - BENCH_INCLUDE: ${{ fromJson(inputs.binaries || '"npm,yarn,berry,zpm,pnpm,pacquet,vlt,bun,deno,aube,upm,nx,turbo,vp,node"') }} + BENCH_INCLUDE: ${{ fromJson(inputs.binaries || '"npm,yarn,berry,zpm,pnpm,vlt,bun,deno,aube,upm,nx,turbo,vp,node"') }} BENCH_WARMUP: ${{ (github.event_name == 'push' && github.ref != 'refs/heads/main') && '1' || (inputs.warmup || '2') }} BENCH_RUNS: ${{ (github.event_name == 'push' && github.ref != 'refs/heads/main') && '1' || (inputs.runs || '5') }} steps: From 4a3d0026bb343a000874ec2a6225ac69dca4e6c5 Mon Sep 17 00:00:00 2001 From: vltbaudbot <264001112+vltbaudbot@users.noreply.github.com> Date: Tue, 6 Oct 2026 02:44:31 +0000 Subject: [PATCH 2/4] fix: classify pnpm v12 as 'pnpm' in package-count.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since pnpm@latest is now v12 (the Rust engine, formerly known as pacquet), the version-based detection in infer_package_manager() was misclassifying pnpm v12 installs as 'pacquet'. This caused pnpm's package count to be written to pacquet-count.txt instead of pnpm-count.txt, which meant pnpm had no per-package normalized data (ms/pkg) in chart-data.json. This made pnpm invisible in: - Package Managers average bar charts (uses perPackageCountChartData) - Performance Over Time history chart (uses perPackageCountChartData) - Leaderboard ranking cards The issue started on 2026-09-06 when pnpm@latest jumped from v10 to v12. Before that, pnpm was v10.x and was correctly classified as 'pnpm'. Now that pacquet is removed from the benchmark matrix, there's no need to differentiate between pnpm versions — all pnpm-lock.yaml files come from corepack pnpm@latest. --- scripts/package-count.sh | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/scripts/package-count.sh b/scripts/package-count.sh index 63a9664c76..ff78878ec9 100644 --- a/scripts/package-count.sh +++ b/scripts/package-count.sh @@ -20,19 +20,7 @@ infer_package_manager() { elif [[ -f "vlt-lock.json" ]]; then echo "vlt" elif [[ -f "pnpm-lock.yaml" ]]; then - # pnpm (v11, TypeScript) and pacquet (pnpm v12, Rust) both leave a - # pnpm-lock.yaml, so the lockfile alone can't tell them apart. The - # installer records its own version in node_modules/.modules.yaml - # (packageManager: pnpm@); v12+ is pacquet. - # pnpm 11 writes YAML, while pnpm 12 currently writes JSON despite the - # .yaml extension. Accept both `packageManager: pnpm@11...` and - # `"packageManager": "pnpm@12..."`. - pnpm_major=$(sed -En 's/^[[:space:]]*"?packageManager"?[[:space:]]*:[[:space:]]*"?pnpm@([0-9]+).*/\1/p' node_modules/.modules.yaml 2>/dev/null | head -1) - if [[ -n "$pnpm_major" && "$pnpm_major" -ge 12 ]]; then - echo "pacquet" - else - echo "pnpm" - fi + echo "pnpm" elif [[ -f "yarn.lock" ]]; then if [[ -f ".yarnrc.yml" ]] && command -v yarn >/dev/null 2>&1; then yarn_version=$(yarn -v 2>/dev/null || echo "") From 86f2a11ec2eda87749f336320b6af1b103901a4a Mon Sep 17 00:00:00 2001 From: vltbaudbot <264001112+vltbaudbot@users.noreply.github.com> Date: Tue, 6 Oct 2026 02:57:19 +0000 Subject: [PATCH 3/4] fix: remove pacquet from chart display and fix pnpm visibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove pacquet from: - PackageManager type and all typed fields (chart-data.ts) - Chart color map (generate-chart.js) - History data PM list (use-history-data.ts) - Icon map, display name, leaderboard filter (utils.ts, get-icons.ts) - Package/process count collectors (collect-*.js) - Clean helpers (clean-helpers.sh) - Test expectations updated for pnpm v12 → pnpm (not pacquet) Root cause of pnpm being invisible: package-count.sh classified pnpm v12 as 'pacquet', so pnpm had no per-package data (ms/pkg). Fixed in prior commit. This commit removes all remaining pacquet references so historical pacquet data is fully merged with pnpm. Historical gh-pages data from 2026-09-06 to 2026-10-06 still needs repair (package-count.json files have pacquet instead of pnpm). --- app/src/hooks/use-history-data.ts | 2 +- app/src/lib/get-icons.ts | 1 - app/src/lib/utils.ts | 2 -- app/src/types/chart-data.ts | 10 +--------- scripts/benchmark-data.test.js | 2 +- scripts/clean-helpers.sh | 14 -------------- scripts/collect-package-count.js | 2 +- scripts/collect-process-count.js | 2 +- scripts/generate-chart.js | 2 +- 9 files changed, 6 insertions(+), 31 deletions(-) diff --git a/app/src/hooks/use-history-data.ts b/app/src/hooks/use-history-data.ts index 5e190433bb..c627169a24 100644 --- a/app/src/hooks/use-history-data.ts +++ b/app/src/hooks/use-history-data.ts @@ -12,7 +12,7 @@ const PACKAGE_MANAGERS = [ "npm", "yarn", "pnpm", - "pacquet", + "berry", "zpm", "deno", diff --git a/app/src/lib/get-icons.ts b/app/src/lib/get-icons.ts index 6f8e26abde..b22feeac58 100644 --- a/app/src/lib/get-icons.ts +++ b/app/src/lib/get-icons.ts @@ -39,7 +39,6 @@ const packageManagerMap: Partial> = { npm: Npm, nx: Nx, pnpm: Pnpm, - pacquet: Pnpm, turbo: Turbo, upm: Upm, vp: Vp, diff --git a/app/src/lib/utils.ts b/app/src/lib/utils.ts index 1d22e771c2..124b94a0be 100644 --- a/app/src/lib/utils.ts +++ b/app/src/lib/utils.ts @@ -252,7 +252,6 @@ export const calculateLeaderboard = ( [ "npm", "pnpm", - "pacquet", "yarn", "zpm", "berry", @@ -532,7 +531,6 @@ export function getPackageManagerDisplayName( if (packageManager === "jfrog") return "jfrog.io"; } if (packageManager === "pnpm") return "pnpm"; - if (packageManager === "pacquet") return "pacquet"; if (packageManager === "berry") return "yarn (berry)"; if (packageManager === "zpm") return "yarn (zpm)"; if (packageManager === "turbo") return "turborepo"; diff --git a/app/src/types/chart-data.ts b/app/src/types/chart-data.ts index 7a749cf98d..3ae9154f96 100644 --- a/app/src/types/chart-data.ts +++ b/app/src/types/chart-data.ts @@ -2,7 +2,7 @@ export type PackageManager = | "npm" | "yarn" | "pnpm" - | "pacquet" + | "berry" | "zpm" | "deno" @@ -52,7 +52,6 @@ export interface PackageManagerVersions { npm?: string; yarn?: string; pnpm?: string; - pacquet?: string; berry?: string; zpm?: string; deno?: string; @@ -78,7 +77,6 @@ export interface PackageManagerData { npm?: number; yarn?: number; pnpm?: number; - pacquet?: number; berry?: number; zpm?: number; deno?: number; @@ -98,7 +96,6 @@ export interface PackageManagerData { npm_stddev?: number; yarn_stddev?: number; pnpm_stddev?: number; - pacquet_stddev?: number; berry_stddev?: number; zpm_stddev?: number; deno_stddev?: number; @@ -118,7 +115,6 @@ export interface PackageManagerData { npm_fill?: string; yarn_fill?: string; pnpm_fill?: string; - pacquet_fill?: string; berry_fill?: string; zpm_fill?: string; deno_fill?: string; @@ -138,7 +134,6 @@ export interface PackageManagerData { npm_count?: number; yarn_count?: number; pnpm_count?: number; - pacquet_count?: number; berry_count?: number; zpm_count?: number; deno_count?: number; @@ -158,7 +153,6 @@ export interface PackageManagerData { npm_dnf?: boolean; yarn_dnf?: boolean; pnpm_dnf?: boolean; - pacquet_dnf?: boolean; berry_dnf?: boolean; zpm_dnf?: boolean; deno_dnf?: boolean; @@ -209,7 +203,6 @@ export interface PackageCountData { npm?: PackageCountEntry; yarn?: PackageCountEntry; pnpm?: PackageCountEntry; - pacquet?: PackageCountEntry; berry?: PackageCountEntry; zpm?: PackageCountEntry; deno?: PackageCountEntry; @@ -237,7 +230,6 @@ export interface ProcessCountData { npm?: PackageCountEntry; yarn?: PackageCountEntry; pnpm?: PackageCountEntry; - pacquet?: PackageCountEntry; berry?: PackageCountEntry; zpm?: PackageCountEntry; deno?: PackageCountEntry; diff --git a/scripts/benchmark-data.test.js b/scripts/benchmark-data.test.js index f8fc8e3ff4..7ab9672bf2 100644 --- a/scripts/benchmark-data.test.js +++ b/scripts/benchmark-data.test.js @@ -44,7 +44,7 @@ for (const fixture of [ { name: "pnpm 12 JSON", modules: '{\n "packageManager": "pnpm@12.0.0"\n}\n', - expectedFile: "pacquet-count.txt", + expectedFile: "pnpm-count.txt", }, ]) { test(`attributes package counts from ${fixture.name} metadata`, (t) => { diff --git a/scripts/clean-helpers.sh b/scripts/clean-helpers.sh index 54e2f73d1e..efbd1ab8f0 100644 --- a/scripts/clean-helpers.sh +++ b/scripts/clean-helpers.sh @@ -48,16 +48,6 @@ clean_pnpm_cache() { safe_remove "$HOME/.local/share/pnpm/store" } -# Function to safely clean pacquet (pnpm 12) cache -# pnpm 12 shares pnpm's content-addressable store layout -clean_pacquet_cache() { - if [ -x "/tmp/pnpm12/bin/pnpm" ]; then - # pnpm 12 uses the same store path as pnpm; the parent dirs are cleaned - # by clean_pnpm_cache, but if called in isolation we still handle them. - safe_remove "$HOME/.cache/pnpm" - safe_remove "$HOME/.local/share/pnpm/store" - fi -} # Function to safely clean vlt cache clean_vlt_cache() { @@ -205,7 +195,6 @@ clean_all_cache() { clean_berry_cache clean_zpm_cache clean_pnpm_cache - clean_pacquet_cache clean_vlt_cache clean_bun_cache clean_nx_cache @@ -270,7 +259,6 @@ show_help() { echo " clean_berry_cache" echo " clean_zpm_cache" echo " clean_pnpm_cache" - echo " clean_pacquet_cache" echo " clean_vlt_cache" echo " clean_bun_cache" echo " clean_nx_cache" @@ -311,8 +299,6 @@ else clean_pnpm_cache) clean_pnpm_cache ;; - clean_pacquet_cache) - clean_pacquet_cache ;; clean_vlt_cache) clean_vlt_cache diff --git a/scripts/collect-package-count.js b/scripts/collect-package-count.js index 83b026546e..fa594f5634 100644 --- a/scripts/collect-package-count.js +++ b/scripts/collect-package-count.js @@ -26,7 +26,7 @@ const countFiles = [ { filename: 'zpm-count.txt', pmName: 'zpm' }, { filename: 'pnpm-count.txt', pmName: 'pnpm' }, { filename: 'pnpm11-count.txt', pmName: 'pnpm11' }, - { filename: 'pacquet-count.txt', pmName: 'pacquet' }, + { filename: 'vlt-count.txt', pmName: 'vlt' }, { filename: 'bun-count.txt', pmName: 'bun' }, { filename: 'deno-count.txt', pmName: 'deno' }, diff --git a/scripts/collect-process-count.js b/scripts/collect-process-count.js index 0f33d0b6b9..f8c9dad398 100644 --- a/scripts/collect-process-count.js +++ b/scripts/collect-process-count.js @@ -26,7 +26,7 @@ const countFiles = [ { filename: 'zpm-process-count.txt', pmName: 'zpm' }, { filename: 'pnpm-process-count.txt', pmName: 'pnpm' }, { filename: 'pnpm11-process-count.txt', pmName: 'pnpm11' }, - { filename: 'pacquet-process-count.txt', pmName: 'pacquet' }, + { filename: 'vlt-process-count.txt', pmName: 'vlt' }, { filename: 'bun-process-count.txt', pmName: 'bun' }, { filename: 'deno-process-count.txt', pmName: 'deno' }, diff --git a/scripts/generate-chart.js b/scripts/generate-chart.js index d6d4d050dc..acf19eb368 100644 --- a/scripts/generate-chart.js +++ b/scripts/generate-chart.js @@ -20,7 +20,7 @@ const COLORS = { yarn: "#117cad", pnpm: "#f9ad00", pnpm11: "#e68a00", - pacquet: "#d4740a", + berry: "#9555bb", zpm: "#7388ff", deno: "#70ffaf", From df52ce4aca823d7b5fe09f61e0e84796d352f388 Mon Sep 17 00:00:00 2001 From: vltbaudbot <264001112+vltbaudbot@users.noreply.github.com> Date: Tue, 6 Oct 2026 03:13:09 +0000 Subject: [PATCH 4/4] chore: remove unused add-to-project workflow This workflow requires a PROJECT_PAT secret that isn't configured, causing it to fail on every PR and issue. Removing it since it's no longer used. --- .github/workflows/add-to-project.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .github/workflows/add-to-project.yml diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml deleted file mode 100644 index 93b7c78b6a..0000000000 --- a/.github/workflows/add-to-project.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Add Issue/PR to Project - -on: - issues: - types: [opened] - pull_request: - types: [opened] - -jobs: - add_to_project: - runs-on: ubuntu-latest - steps: - - name: Add to GitHub Project - uses: actions/add-to-project@v1.0.2 - with: - project-url: https://github.com/orgs/vltpkg/projects/3 - github-token: ${{ secrets.PROJECT_PAT }}