-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"bundled": true added to package-lock.json
in lerna + npm monorepo
#3436
Comments
Thanks for reporting. It seems that |
@mcous I've made some changes that I think resolve this problem. In short, npm has a bug around Please alert me if you notice any problems remaining and I'll need to dig deeper with reproduction. FYI you can retry/regenerate any PR by ticking the rebase/retry checkbox in the PR body. |
Thanks for the quick resolution @rarkins! I'll keep an eye out and post results here |
Just had a new one come in (tracespace/tracespace#190) and unfortunately the issue still appears to be present - Weirdly enough, when I pull the branch down locally (macOS, npm v6.9.0), I have to run |
@mcous Thanks for referencing #3317 from this; it made it easy for me to find this and I noticed it while investigating a commit which added a Also, it's unfortunate that this is broken, but I do think the npm team is working hard on resolving issues related to this but thank you @rarkins for looking into it, nevertheless. |
@abernix actually, npm just laid off the (recently hired) staff member who had been assigned responsibility for pushing out new npm CLI releases, so I'm not sure we'll see lots of CLI fixes for a while. Speaking of npm releases, I am wondering if it's the latest version of npm that could have broken things with local references. We didn't have anyone noticing problems for so long and then now there's at least the two of you. |
Here's a log extract from one of tracespace's recent lock file updates in the app:
When I run it locally against a fork:
|
I can now reproduce when running locally/forked using the Renovate docker image: |
Testing with renovate@14.39.1 (last release to use npm 6.8.0) doesn't solve it |
@mcous could you try ticking the rebase/retry checkbox on some of your PRs? I think the problem may be resolved now in the app. Example from my fork: https://github.com/renovate-tests/tracespace/pull/7/files It seems that |
@rarkins thanks! That explanation makes sense. I just ticked the rebase box for a couple PRs and will keep an eye on them |
@rarkins Is there something we need to do in order to adopt the fix for this? Or is this just something that would occur going forward? We're getting plagued with peculiarities like this https://github.com/apollographql/apollo-tooling/pull/1150/files. Is there a specific way we should be indicating the version of npm to be used with Lerna? (Sorry, I know you're not Lerna support, I just wasn't aware we had control over the version of npm that Renovate would use in a lerna monorepo). |
What Renovate type are you using?
Renovate GitHub App
Describe the bug
In a lerna + npm monorepo using
file:
dependencies, Renovate introduces lockfile changes that are different from runningnpm install
locally. The most common difference I'm seeing is that Renovate will replace{..., "resolved": "...", "integrity": "...", ...}
with{..., "bundled": "true", ..."}
.Did you see anything helpful in debug logs?
I'm happy to check them out with some guidance, but at the moment I don't know what to look for.
To Reproduce
I could try to get a minimal repro repository with a little bit of guidance, if that seems helpful!
For now I'm observing this with almost every Renovate PR to tracespace/tracespace (e.g. tracespace/tracespace#177; I think the renovate job ID is 5444517)
Expected behavior
Lockfile should not have changes compared to npm install
Additional context
From browsing the issues, this is possibly related to #2294, #3317, #2388, and #2389
I pulled down the branch in the tracespace PR listed above on both macOS and Ubuntu running npm v6.9.0. I did not end up with the same lockfile on both OS's (Ubuntu diff was a superset of the macOS one with some
"optional": true
s added), so - as mentioned in the threads above - there's definitely still some npm weirdness with cross-platform lockfile generation. Crucially, though, both OS's reverted all the Renovate"bundled": true
changes.Also, thanks for this very cool tool! I'm excited to have automated dependency bumping
The text was updated successfully, but these errors were encountered: