Open kenrick95 opened 4 months ago
@g-chao - Would you take a look at this?
Is this something where external PRs would be accepted?
Hello, what is the current status ?
I just tried on our monorepo and everything seems to be working fine with pnpm v9.12.3, rush v5.140.1. Should I expect some issues with pnpm v9?
@dbartholomae - we're happy to accept external PRs.
I just tried updating pnpm to version 9, and it worked without additional changes (except for pnpm internal things, like the fact that pre and post hooks now are enabled by default). So there doesn't seem to be need for a PR anymore, and maybe this issue can be closed - unless anyone else still runs into trouble?
@dbartholomae curious if you have tried pnpm catalog feature that was introduced in v9 and if it works. https://pnpm.io/catalogs
We don't use them, so I can't really tell
@dbartholomae After upgrading to v9 and executing the rush install/update
command, you will find that the content of the .rush/temp/shrinkwrap-deps.json
file is incorrect. As you can see, rush is currently unable to correctly parse lockfile v9. Thus, Rush cache system doesn't work fine with pnpmv9 because rush will generate a cacheId based on the hash of shrinkwrap-deps.json
. I have submitted a PR to fix this issue. https://github.com/microsoft/rushstack/pull/5009.
Summary
Rush should support PNPM 9, which has a breaking change on the lockfile format.
Based on the conversation in Zulipchat:
When directly bumped in my company's repo, I observed that
rush update
successfully upgraded the lockfile in the temp folder (common/temp/pnpm-lock.yaml
), but it wasn't synced back tocommon/config/rush/pnpm-lock.yaml
. Not really sure why..I tried bumping the PNPM version in in the Rushstack repo and tried to build, but seems like pnpm-sync also needs to be modified to support PNPM 9.
Repro steps
Expected result:
Actual result:
Details
Standard questions
Please answer these questions to help us investigate your issue more quickly:
@microsoft/rush
globally installed version?rushVersion
from rush.json?useWorkspaces
from rush.json?node -v
)?