Summary
Currently in a Rush repository, the build cache will be written to common/temp/build-cache unless overridden via the $HOME/.rush-user/settings.json file's buildCacheFolder property, and the pnpm store will be written to common/temp/pnpm-store unless overridden via the RUSH_PNPM_STORE_PATH environment variable.
In a multi-worktree environment, this results in duplication of the build cache and pnpm store, causing considerable excess disk usage.
Repro steps
Create a Git repository and multiple worktrees.
Expected result:
Only one build cache folder and one pnpm store.
Actual result:
One build cache folder and one pnpm store per worktree.
Details
We can address this by having the default computed location for the pnpm-store and the build cache folder be based on the git repository root, rather than the rush json folder, when the former is defined and the user is in a worktree.
We should also improve and standardize the configuration options.
Standard questions
Please answer these questions to help us investigate your issue more quickly:
| Question |
Answer |
@microsoft/rush globally installed version? |
5.168.0 |
rushVersion from rush.json? |
5.168.0 |
pnpmVersion, npmVersion, or yarnVersion from rush.json? |
8.14.0 |
(if pnpm) useWorkspaces from pnpm-config.json? |
true |
| Operating system? |
* |
| Would you consider contributing a PR? |
Yes |
Node.js version (node -v)? |
22.16.0 |
Summary
Currently in a Rush repository, the build cache will be written to
common/temp/build-cacheunless overridden via the$HOME/.rush-user/settings.jsonfile'sbuildCacheFolderproperty, and the pnpm store will be written tocommon/temp/pnpm-storeunless overridden via theRUSH_PNPM_STORE_PATHenvironment variable.In a multi-worktree environment, this results in duplication of the build cache and pnpm store, causing considerable excess disk usage.
Repro steps
Create a Git repository and multiple worktrees.
Expected result:
Only one build cache folder and one pnpm store.
Actual result:
One build cache folder and one pnpm store per worktree.
Details
We can address this by having the default computed location for the pnpm-store and the build cache folder be based on the git repository root, rather than the rush json folder, when the former is defined and the user is in a worktree.
We should also improve and standardize the configuration options.
Standard questions
Please answer these questions to help us investigate your issue more quickly:
@microsoft/rushglobally installed version?rushVersionfrom rush.json?pnpmVersion,npmVersion, oryarnVersionfrom rush.json?useWorkspacesfrom pnpm-config.json?node -v)?