Adds yarn package resolution to build #6938
Merged
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.
References
Supersedes #6937
Code changes
One issue we see with alpha releases is that if we install an extension which does not explicitly target the alpha release, we end up with duplicate core packages. For example, installing ipywidgets for the last stable release (with dependency on say services
^4
) into an alpha release (which has services4.1-alpha0
), we'll end up with two services versions, since the semver semantics says that4.1-alpha0
does not satisfy^4
. This means that, even if ipywidgets requires no changes to work in jlab 1.1 (services 4.1), I still have to explicitly change the dependency to be able to install and test into an alpha release.This actually is an issue with actual releases too - cleaning and building a new JLab can bump the minor version of a js package without the user being aware (if for example an addon requires an updated minor version).
Instead, this forces the yarn resolution to be the versions of the js packages shipped with the release (up to patch releases - we're making the concession here that automatic js patch release upgrades are fine).
We can decide to change these resolutions before the final 1.1 release. But at least for alpha releases, this allows an extension developer to install the current extension to test.
Backwards-incompatible changes