ember-cli / ember-cli

The Ember.js command line utility.

Home Page:https://cli.emberjs.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ember-try CI fails on 4.11 with NPM 8

jrjohnson opened this issue · comments

A brand new 4.11 addon will fail every ember-try CI job. I think this has to do with peerDependencies added by @bertdeblock in #10024 and NPM v8 starting to enforce those rules (whereas node 14/npm 7 doesn't). Consuming any addon that also has a peerDependency on ember-source breaks ember-try. I'm not sure if this is because of the version tag (ember-source@4.11.0-release+88df843c) not meeting the requirements for the peer dependency or something else.

Error:

npm ERR! Could not resolve dependency:
npm ERR! peer ember-source@">=3.8.0" from @ember/test-helpers@2.9.3
npm ERR! node_modules/@ember/test-helpers
npm ERR!   dev @ember/test-helpers@"^2.9.3" from the root project

Reproduction repo action run: https://github.com/jrjohnson/e411-addon/actions/runs/4550068693/jobs/8022740450

Steps to reproduce:

ember addon e411
cd e411
./node_modules/.bin/ember try:one ember-release

Output from ember version --verbose && npm --version && yarn --version:

ember-cli: 4.11.0
node: 16.19.1
v8: 9.4.146.26-node.24
uv: 1.43.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.18.1
modules: 93
nghttp2: 1.47.0
napi: 8
llhttp: 6.0.10
openssl: 1.1.1t+quic
cldr: 41.0
icu: 71.1
tz: 2022f
unicode: 14.0
ngtcp2: 0.8.1
nghttp3: 0.7.0
os: darwin arm64
8.19.4
1.22.19

fwiw, most of the peer issues in those failing CI runs are related to @ember/test-helpers and ember-resolver. Those peer statements were added independent of the blueprint changes. I.e. if you remove the peer statement in the e411 addon, the release scenario still fails with the same error.

Similar issue #9912.

Outside of @ember/test-helpers this will fail for any addon that includes another addon that has the peer for ember. So as the blueprints added for this make their way out into the ecosystem more addons will fail. I'm not sure if it's a good long term solution, but my fix for now was to add:

buildManagerOptions() {
  return ['--force'];
},

to my ember-try config.