[npm] Preserve requirement source when updating transtive dep parents #5816
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We had been setting the source of transitive parent dependencies to nil but this caused the FileUpdater to think the requirement was always changing. This might not be the case for a library with a requirement range that already allows the fixed version. We should prefer to preserve the existing source when an updated source is not provided.
Example:
The version is updating from 8.8.0 to 8.8.1 but because this came from a library the requirement did not need to change. However, the source change between the previous/current requirements triggers an attempt to update
package.json
which results in this failure:The smoke test is failing on this PR because its expectations don't currently include the source populated in the new requirements.