vp migrate currently treats YARN_NODE_LINKER=node-modules as enough to skip Yarn PnP handling. However, if the repository itself has .yarnrc.yml with nodeLinker: pnp, migration can complete successfully while leaving unsupported PnP config in the project. Future installs without that environment override will return to PnP mode.
Expected behavior:
- If
.yarnrc.yml explicitly sets nodeLinker: pnp, migration should not silently pass just because YARN_NODE_LINKER=node-modules is set.
- Preferably, migration should stop and ask the user to change the project config manually, or apply the existing node-modules conversion flow if that is the intended behavior.
YARN_NODE_LINKER=pnp should still hard-block migration as today.
Suggested test:
Create a Yarn Berry fixture with:
# .yarnrc.yml
nodeLinker: pnp
Run migrate with:
YARN_NODE_LINKER=node-modules vp migrate --no-interactive
Assert that migration does not report the project as successfully migrated while leaving nodeLinker: pnp unchanged.
vp migratecurrently treatsYARN_NODE_LINKER=node-modulesas enough to skip Yarn PnP handling. However, if the repository itself has.yarnrc.ymlwithnodeLinker: pnp, migration can complete successfully while leaving unsupported PnP config in the project. Future installs without that environment override will return to PnP mode.Expected behavior:
.yarnrc.ymlexplicitly setsnodeLinker: pnp, migration should not silently pass just becauseYARN_NODE_LINKER=node-modulesis set.YARN_NODE_LINKER=pnpshould still hard-block migration as today.Suggested test:
Create a Yarn Berry fixture with:
Run migrate with:
Assert that migration does not report the project as successfully migrated while leaving
nodeLinker: pnpunchanged.