berry icon indicating copy to clipboard operation
berry copied to clipboard

[Bug]: yarn adds packageManager field even if standard devEngines is defined during update

Open trivikr opened this issue 7 months ago • 2 comments

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 "[email protected]" 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": "[email protected]"
}

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

trivikr avatar Mar 29 '25 22:03 trivikr

Fixed in my project by manually updating devEngines.packageManager.version, and removing packageManager field Commit: https://github.com/aws/aws-sdk-js-codemod/pull/984/commits/0a36eff00f11f539188aafe8b67fb828167c813c in https://github.com/aws/aws-sdk-js-codemod/pull/984

trivikr avatar Mar 29 '25 22:03 trivikr

I noticed this issue again during yarn version update. It'll be helpful is yarn updates version in devEngines field, if the project already uses it.

trivikr avatar Jun 16 '25 18:06 trivikr