qiwi / multi-semantic-release

Proof of concept that wraps semantic-release to work with monorepos.
BSD Zero Clause License
86 stars 34 forks source link

npm ERR! code ENOWORKSPACES #60

Open antongolub opened 2 years ago

antongolub commented 2 years ago

msr@4.0.0

https://github.com/qiwi/semantic-release-toolkit/runs/5289081231?check_suite_focus=true

npm ERR! code ENOWORKSPACES npm ERR! This command does not support workspaces.

https://github.com/npm/cli/issues/4404

chawyehsu commented 2 years ago

I'm encountering the same error in chawyehsu/lxgw-wenkai-webfont. Is it possible to be related to this issue? It failed in the latest runs, but I didn't change anything of my npm configurations, previous runs were good.

antongolub commented 2 years ago

afair, it was resolved by updating global npm from 8.5.[0-2] to 8.5.3+

chawyehsu commented 2 years ago

For anyone who is encountering the same issue, I downgraded nodejs to 16.13.2 as per https://github.com/npm/cli/issues/4600#issuecomment-1090524559= and sucessfully made the ci work. Simply updating npm to the latest version will not work.

csantos1113 commented 2 years ago

We experiencing an issue that seems related to this?

2022-05-24T20:16:20.377Z msr:updateDeps [@org/core] package.json path= /home/ec2-user/actions-runner/_work/org/packages/core/package.json
2022-05-24T20:16:20.377Z msr:updateDeps [@org/core] no deps changes
@org/core
v1.0.0-alpha.3
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "workspace:": workspace:*

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ec2-user/.npm/_logs/2022-05-24T20_16_20_760Z-debug-0.log
[8:16:34 PM] [@org/core] › ✖  Failed step "prepare" of plugin "Inline plugin"
[8:16:34 PM] [@org/core] › ✖  An error occurred while running semantic-release: Error: Command failed with exit code 1: npm version 1.0.0-alpha.3 --userconfig /tmp/42c421784d097ee5539e9e266df07a3f/.npmrc --no-git-tag-version --allow-same-version
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "workspace:": workspace:*

We currently have .nvmrc set to v14.18.1 so

➜ npm -v      
6.14.15
➜ node -v
v14.18.1

But semantic-release is supposed to use the npm locally installed in the package

Current msr config:

multi-semantic-release version: 6.4.0
semantic-release version: 19.0.2
flags: {
  "debug": true,
  "sequentialInit": false,
  "sequentialPrepare": true,
  "firstParent": false,
  "deps": {
    "bump": "override",
    "release": "patch",
    "prefix": ""
  },
  "ignorePrivate": true,
  "tagFormat": "${name}@${version}",
  "dryRun": false
}
antongolub commented 2 years ago

@csantos1113 It seems more related to https://github.com/dhoulb/multi-semantic-release/issues/111

csantos1113 commented 2 years ago

@csantos1113 It seems more related to dhoulb#111

Thanks for the quick response.

it's odd because our monorepos currently work with "@qiwi/multi-semantic-release": "3.17.1",. but it breaks when I update it to 4.0.0 (or latest 6.4.0, if that matters)

here is the config where it works:

multi-semantic-release version: 3.17.1
semantic-release version: 17.4.4
flags: {
  "debug": true,
  "sequentialInit": false,
  "sequentialPrepare": false,
  "firstParent": false,
  "deps": {
    "bump": "override",
    "release": "patch"
  },
  "tagFormat": "${name}@${version}",
  "dryRun": false
}
antongolub commented 2 years ago

https://github.com/qiwi/multi-semantic-release/compare/v3.17.1...v4.0.0

afair, there was an issue with npm that we've tried to fix by pinning in 4.0.2

Since v6 this fork uses toposort instead of concurrent events and it's reported to be affecting some older projects. Unfortunately we still dont know what is exacty is broken.

aarne commented 1 year ago

The problem is with npm starting from version 8.5 that comes by default with node 16.15.

Adding workspaces-update = false to your .npmrc will fix the issue on newer npm versions