-
Notifications
You must be signed in to change notification settings - Fork 609
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[rush] Rush is not compatible with pnpm v8 due to lockfile v6 format #4033
Comments
Just want to add that pnpm v7 can read lockfile v6 format, it just didn't use it yet. |
Working on it. |
There are also issues with |
Spent several hours debugging this, from looking in all node_modules (nothing found, rush's own sources lie outside the managed repo), to digging into rush'es intestines. Would like to see stack-traces when |
It's not critical, but would be great to support. The performance improvements are quite significant, check e.g.: |
@woss the issue is not about moving to v8 support, the issue is, that
So solutions might be: |
Valid points. I think that implementing option Another thing is that there could be a message of equal size as pnpms that states something like |
So I'm currently out of town with kinda spotty internet and I'm not going to be back until the first week of May. I was hoping to have this done before I left, but other things came up. I've opened a draft PR (#4065), but it isn't working yet. If someone wants to continue where I left off, feel welcome. Otherwise, I hope to get this done in early May. FYI to @dmichon-msft, @D4N14L, @octogonz, and @elliot-nelson. |
That's the latest version compatible with Rush at this time. PNPM v8+ use lockfile format 6, which is not compatible. See: microsoft/rushstack#4033
Thank you for opening the issue. I was wondering why rush commands failed with seemingly random messages. As a newbie in Rush, error message about incompatibility with pnpm v8 would be appreciated :) |
I also ran into this issue. I saw pnpm's upgrade information banner and blindly upgraded to pnpm v8 and ran into the lock-file compatibility issue. Then I went searching the Internet for answers to find this issue. Suggestion: if there is a major version upgrade of pnpm (or any other package manager) and Rush needs time to support it, the pnpm upgrade info banner should be suppressed somehow. Or add an additional banner saying, the version X of Y isn't yet supported by Rush. Not sure it will help, but this setting suppresses the banner (notifier). And/ Or, have a compatibility table somewhere in the docs showing the different version matches. Scott |
This has been released as Rush 5.100.0 |
Summary
When posting this PNPM just released v8.0.0 which introduces a major upgrade for the lockfile format. This format isn't compatible with a check that Rush executes after a
rush install
. The following error occurs afterrush install
:Repro steps
pnpmVersion
inrush.json
.pnpm-lock.yaml
incommon/config/rush
rush update --full --purge
Above mentioned steps are following the instructions from the Rush docs.
Expected result:
rush install
succeeds and newpnpm-lock.yaml
is created.Actual result:
rush install
fails with the following message:ERROR: version.includes is not a function
. However the lock file is created and looks valid.Details
This looks to be related to the following line:
rushstack/libraries/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts
Line 527 in 2f3aca6
Due to the new format of the lockfile the dependencies aren't split like this anymore:
The new format is:
Let me also state that this is expected to not be compatible as it was just released and the Rush team needs time to support the newly released pnpm v8.
The text was updated successfully, but these errors were encountered: