-
Notifications
You must be signed in to change notification settings - Fork 308
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
fix: missing core yarn files #1229
Conversation
Newer versions of yarn depend on more files than "yarn.lock". As a result, the tarballs need to include these core files to ensure that any future commands against the tarball contents utilize the right version of `yarn`. Example: configuring yarn v4 with a "pinned version" requires the ".yarnrc.yml" file along with the `yarnPath` configuration value. If configured to use a specific version of yarn, Yarn will download required files into a "./.yarn/releases/" directory. In the future, any execution of `yarn` will pick up the `yarnPath` configuration and use the "./.yarn/releases/" directory contents to download and use the specific version of yarn.
Thanks for the contribution! Before we can merge this, we need @ericis to sign the Salesforce Inc. Contributor License Agreement. |
This is now signed. |
@ericis Thanks for this contribution! I'm going to merge this into a feature branch that we can run all our integration tests against and then merge to |
* fix: missing core yarn files (#1229) * fix: missing core yarn files Newer versions of yarn depend on more files than "yarn.lock". As a result, the tarballs need to include these core files to ensure that any future commands against the tarball contents utilize the right version of `yarn`. Example: configuring yarn v4 with a "pinned version" requires the ".yarnrc.yml" file along with the `yarnPath` configuration value. If configured to use a specific version of yarn, Yarn will download required files into a "./.yarn/releases/" directory. In the future, any execution of `yarn` will pick up the `yarnPath` configuration and use the "./.yarn/releases/" directory contents to download and use the specific version of yarn. * fix: yarn root path * chore: satisfy linter --------- Co-authored-by: Eric Swanson <ericis@users.noreply.github.com>
Newer versions of yarn depend on more files than "yarn.lock". As a result, the tarballs need to include these core files to ensure that any future commands against the tarball contents utilize the right version of
yarn
.Example
Configuring yarn v4 with a "pinned version" requires the ".yarnrc.yml" file along with the
yarnPath
configuration value. If configured to use a specific version of yarn, Yarn will download required files into a "./.yarn/releases/" directory. In the future, any execution ofyarn
will pick up theyarnPath
configuration and use the "./.yarn/releases/" directory contents to download and use the specific version of yarn.Current impacts
Without these changes, modern versions of
yarn
, like Yarn v4, do not properly install their dependencies when packaging for release. For example, if yarn 4 is configured to scope dependency installations to the workspace and use a classic node modules setup, the current build will only copy "yarn.lock" and either not upgrade Yarn to v4 and not copy (respect) the v4 configuration from ".yarnrc.yml" or will properly discover and use yarn v4 viacorepack
from the "package.json" file and "packageManager" value, but will still not copy (respect) the v4 configuration from ".yarnrc.yml".Testing these changes
yarn build
yarn oclif pack win