ci(pm-bench): add aube + flexible bench controls#2815
Merged
Conversation
aube's CLI has no --registry flag, so we use NPM_CONFIG_REGISTRY instead. It reads pnpm-workspace.yaml (not the npm workspaces field), so reuse the existing pnpm workspace setup. Cold-purge clears the aube store at $XDG_DATA_HOME/aube and cache at $XDG_CACHE_HOME/aube. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
When benchmarking only against the npm-published utoo (baseline=true), building the current branch from source is pure overhead. Add a build_current input (default true for backward compat) that short-circuits build-linux and the macOS cargo steps. In that mode, the npm-installed utoo takes the primary spot in the bench instead of being injected alongside current-build utoo. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Switch pm_list from choice dropdown to string so runs can opt into arbitrary subsets like utoo,aube without adding a new option per combo. Also clarify that AUBE_CACHE_DIR already covers aube's packument (manifest) cache: aube-store's cache_dir() points at $XDG_CACHE_HOME/aube, which holds both metadata and global-links — so cold-run rm -rf on that plus AUBE_STORE_DIR gives a fully cold start. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Code Review
This pull request adds support for the aube package manager to the e2e/pm-bench.sh benchmarking script. The changes include defining storage and cache directories, implementing cache cleaning for cold runs, and integrating aube into the workspace setup and installation command generation logic. Review feedback suggests removing a redundant directory change and ensuring the registry variable is properly quoted to prevent word splitting.
fireairforce
approved these changes
Apr 20, 2026
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.
Summary
Why
aube uses a per-file CAS + pnpm-style isolated `.aube/` virtual store, which is a structurally different profile from utoo's nested-hardlink layout. Having it in the bench surfaces where our system-call-heavy warm install diverges from a symlink-based approach.
The `build_current` flag matters because a run that only needs the npm baseline shouldn't spend ~5min on cargo before the bench starts.
Details
Test plan
🤖 Generated with Claude Code