Open
Description
Self-service
- I'd be willing to implement a fix
Describe the bug
yarn adds packageManager field even if standard devEngines is defined during update
To reproduce
$ npm i -g corepack
$ echo '{"devEngines": {"packageManager": {"name": "yarn", "version": "4.7.0"} } }' > package.json
$ yarn --version
4.7.0
$ yarn set version 4.8.0
➤ YN0000: Done in 0s 2ms
$ yarn
"packageManager" field is set to "yarn@4.8.0" which does not match the value defined in "devEngines.packageManager" for "yarn" of "4.7.0"
Observed
packageManager field is set to correct version of yarn, while devEngines.packageManager is not updated
$ cat package.json
{
"devEngines": {
"packageManager": {
"name": "yarn",
"version": "4.7.0"
}
},
"packageManager": "yarn@4.8.0"
}
Expected
packageManager field is not added, and devEngines.packageManager.version is update to 4.8.0
$ cat package.json
{
"devEngines": {
"packageManager": {
"name": "yarn",
"version": "4.8.0"
}
}
}
Environment
System:
OS: macOS 15.3.1
CPU: (8) arm64 Apple M1 Pro
Binaries:
Node: 22.14.0 - /private/var/folders/42/54jl1_3x4hz06cf7bc_kzd4h0000gn/T/xfs-050f7851/node
Yarn: 4.8.0 - /private/var/folders/42/54jl1_3x4hz06cf7bc_kzd4h0000gn/T/xfs-050f7851/yarn
npm: 10.9.2 - ~/.local/state/fnm_multishells/19028_1743286080122/bin/npm
Additional context
No response