Various improvements have been made in the core to improve performance. Additionally:
Commands
The yarn workspaces foreach run command is now able to run binaries.
The yarn npm info command now supports displaying information about a tagged version of a package (e.g. yarn npm info vue@next).
A new yarn explain command has been added. It can be used to explain an error code, or list all available error codes.
For example, try to run yarn explain YN0002.
The yarn npm publish command now accepts a new --otp option, to set the One-Time Password from the CLI.
A better error message will also be shown when a query fails due to an invalid OTP.
yarn upgrade-interactive now has improved paging:
Yarn will display as many suggestions as can fit in the viewport (rather than a fixed-size list).
The suggestions that fit in the viewport will be fetched in the foreground and will load one-by-one.
The suggestions that don't will be fetched in the background and will be loaded in batches to increase responsiveness and reduce input lag.
Most notably, you won't have to wait for all of the suggestions to be fetched (which took a very long time before on large monorepos) before you can start navigating through the list.
Installs
The node-modules linker now tolerates if node_modules is a symbolic link, and doesn't recreate it.
On top of the cpu and arch fields, Yarn now support a new libc field which can be used in tandem with optionalDependencies to avoid downloading packages that have been linked against incompatible standard libraries (we currently support two values: glibc and musl).
The pnpm linker has received various improvements:
It will now remove the node_modules/.store and node_modules folders if they are empty.
It now supports running binaries of soft links.
It will now create self-references for packages that don't depend on other versions of themselves.
It will now remove scope folders (e.g. node_modules/@yarnpkg) if they are empty or after removing a scoped dependency.
All .pnp.cjs files with inlined data will now store the data in a JSON string literal instead of an object literal to improve startup performance.
Compatibility
The shell now treats backslashes same as Bash (so it mostly ignore them).
Could potentially be a breaking change, but the old behavior caused portability issues with a few packages, so we had to make this change (especially since the portable shell is intended to help portability).
The shell now supports ${FOO:+}.
The PnP filesystem now handles read and readSync using options.
The PnP filesystem now handles UNC paths using forward slashes.
The PnP filesystem now sets the proper path property on streams created by createReadStream() and obtained from zip archives.
The PnP runtime now throws an ERR_REQUIRE_ESM error when attempting to require an ES Module, matching the default Node.js behaviour.
Updates the PnP compatibility layer for TypeScript 4.6 Beta (it's possible we'll need to publish another patch update once the 4.6 enters stable).
Bugfixes
@yarnpkg/pnpify now escapes paths correctly.
The ESM loader is now enabled regardless of the entrypoint module type, this fixes support for dynamic imports in commonjs modules when the entrypoint is also commonjs.
The ESM loader is now able to resolve relative imports with search parameters.
The node field inside the npm_config_user_agent Yarn sets will now include a leading v.
Yarn is now able to recover from a corrupted install state.
Yarn is now able to migrate classic lockfiles containing unconventional tarball URLs.
The nm linker hoists portals after hoisting their dependencies first.
Fixed a crash caused by a bad interaction between aliased packages and peer dependencies.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps @yarnpkg/sdks from 3.1.3 to 3.2.0.
Release notes
Sourced from
@yarnpkg/sdks
's releases.Changelog
Sourced from
@yarnpkg/sdks
's changelog.... (truncated)
Commits
ab48d62
Releasing 9 new packagesd463ea4
Adds support for user-defined wrappers in the SDK (#6370)1125165
Generate CLI docs as a Docusaurus plugin (#6218)f1edfae
Sync master with the changes from masterDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show