v4.0.0
yarnbot
released this
22 Oct 16:45
·
195 commits
to master
since this release
Blog post: https://yarnpkg.com/blog/release/4.0
What's Changed
- perf(core): skip unnecessary stat call in
tgzUtils.convertToZip
by @merceyz in #4166 - chore(core): use const for pkg variable in getCandidates by @trivikr in #4161
- refactor(nm): return object with linkType and target by @trivikr in #4143
- add extension for '@cypress/snapshot' dependency on 'debug' by @devrelm in #4193
- docs: Add Ukraine support banner to Yarn website by @larixer in #4190
- docs: Add
yarn-plugin-publishconfig
to Contrib plugins by @alizeait in #4188 - docs: add
yarn-plugin-http-proxy
contrib plugin by @arontsang in #4180 - refactor(git): use const for protocol/request by @trivikr in #4183
- docs: Updates the link to support Ukraine by @larixer in #4198
- chore: remove unused dependencies by @merceyz in #4186
- chore: informations => information by @francisu in #4082
- chore(nm): use for loop in buildTree fn by @trivikr in #4200
- Don't run the tests anymore on Node 12 by @arcanis in #4196
- refactor: move and document getNpmAuthenticationHeader by @paul-soporan in #3888
- fix(esbuild): make
foo/bar
external if packagefoo
is external by @bgotink in #4209 - fix(esbuild): resolve to ESM when requested by @bgotink in #4220
- fix(nm): Support portals to external interdependent workspaces by @larixer in #4207
- fix(pnpm): pnpm linker no longer removes node_modules when nm linker is active by @larixer in #4206
- fix(nm): apply hoisting algorithm on aliased dependencies by @larixer in #4237
- feat(patch)!: Improves patches by @arcanis in #4218
- chore: remove leftover test code by @merceyz in #4246
- docs: fix a typo s/then/them by @jameskerr in #4230
- perf(libzip): migrate to zlib-ng by @merceyz in #4247
- test: disable flaky tests by @merceyz in #4248
- fix(docs): move Ukrainain banner to the home page only to not disrupt docs UX by @larixer in #4251
- refactor(parsers): use const for vars
data
andsort
by @trivikr in #4202 - fix(nm): Reinstall removed module directories by @larixer in #3467
- Make the local cache opt-in (rather than opt-out) by @arcanis in #4252
- fix(nm): takes into account scoped packages during syncing tree with disk by @larixer in #4266
- docs: add reference to
libc
key insupportedArchitectures
documentation by @julienfouilhe in #4264 - chore(git): remove redundant variable match by @trivikr in #4255
- Removes the compatibility layer for Clipanion 2 by @arcanis in #4262
- Improves boot time by @arcanis in #4261
- test(nm): Adds a unit test which checks that two-branch circular graphs handled properly by @larixer in #4272
- fix(nm): improves external soft links hoisting by @larixer in #4269
- chore(file): use const for path in getCandidates by @trivikr in #4281
- fix(plugin-pnp): wait for unplugging to finish before finalizing by @merceyz in #4278
- fix(parsers): correctly stringify keys longer than 1024 chars by @elado in #4275
- test: don't use git repositories we don't control by @merceyz in #4276
- feat: support auth in proxy url by @Leksat in #4243
- Enables all official plugins by default by @arcanis in #4253
- Prefer using exclusively Corepack when possible by @arcanis in #4254
- Soften CI coverage by @arcanis in #4286
- chore: cleanup root dependencies by @merceyz in #4273
- fix(pnp): esm - handle symlinked extensionless entrypoints by @merceyz in #4289
- ci: don't continue running when cancelled by @merceyz in #4290
- Fixes {} parsing inside shell scripts by @arcanis in #4288
- feat(pack): support
publishConfig.type
by @cometkim in #4204 - chore(compat): lock
@apollographql/apollo-tools
range by @trevor-scheer in #4293 - fix(parsers): correctly indent keys longer than 1024 chars by @elado in #4294
- Resolves tags before storing them in the manifest by @arcanis in #4291
- Normalizes dependencies by @arcanis in #4305
- Implements
--check-resolutions
by @arcanis in #4302 - Implements
--refresh-lockfile
by @arcanis in #4299 - Implements enableHardenedMode by @arcanis in #4307
- perf(pnp): hoist data string by @merceyz in #4320
- feat(libzip): add function types by @merceyz in #4318
- fix(essentials): correct typo in prompt by @GauBen in #4324
- fix(pack): handle excluding from included parent directory by @merceyz in #4317
- fix(sdks): update for VSCode 1.66 by @merceyz in #4330
- perf: reduce bundle size by @merceyz in #4315
- Repairs
yarn set version from sources
from 3 to 4 by @arcanis in #4331 - Fixes
yarn version apply
by @arcanis in #4336 - feat(essentials): add
preferReuse
setting by @marionebl in #4221 - fix(pnp): suppress experimental ESM loader warning by @merceyz in #4338
- chore(compat): add extension for 'auto-relay' peerDependency on 'reflect-metadata' by @Justkant in #4312
- fix(compat): update patch for
typescript@4.7.0-beta
by @merceyz in #4339 - fix(plugin-nm): handle
supportedArchitectures
by @merceyz in #4343 - docs: Fix plugin author name by @oliversalzburg in #4361
- perf(core): skip unnecessary
access
call infetchPackageFromCache
by @merceyz in #4352 - Yarn npm audit json exitcode by @hughdavenport in #4358
- Updates benchmark dependencies by @arcanis in #4374
- feat(essentials): support forwarding
--require
inyarn run
by @juan-fernandez in #4376 - fix(compat): update
vue-loader
entry by @merceyz in #4389 - fix(git): respect
GIT_SSH_COMMAND
andGIT_SSH
by @cwstra in #4381 - Fixes the "yarn up" command when the dependency doesnt need upgrades by @arcanis in #4378
- Fixes e2e tests by @arcanis in #4377
- fix(dlx): preserve tags by @merceyz in #4395
- fix(compat):
react-scripts
by @merceyz in #4346 - Fixes the Parcel E2E test by @arcanis in #4400
- fix(essentials): different error when importing built-in plugins by @merceyz in #4401
- chore: add lint rule for
semver.validRange
andsemver.Range
by @merceyz in #4407 - fix(core): skip cache cleanup when enableGlobalCache is true by @stevenxu-db in #4402
- fix(fslib): fix return shape of promisified
fs.write
by @mhassan1 in #4411 - docs: fix incorrect grammar in README by @osBins in #4422
- Use cygpath for MINGW (Git Bash) by @dahlbyk in #4409
- ci: update pnpm store location by @merceyz in #4440
- fix(core): ensure proper install for git dependency using Yarn classic and npm by @colincasey in #4403
- feat: move compat database to separate package by @zkochan in #4436
- fix(cli): correct the cli's dev version to match semver spec by @edvardchen in #4458
- fix(extensions): allow
consolidate@<0.16.0
to usemustache@^3.0.0
by @andreyfel in #4465 - feat(fslib): add
ftruncate
support by @merceyz in #4477 - test(fslib): add more tests for
ZipFS
by @merceyz in #4474 - Add
yarn-plugin-version-tools
to Contrib plugins by @indooorsman in #4222 - docs: Add
changed
,docker-build
,tsconfig-references
to plugin list by @tommy351 in #4233 - [plugin-npm-cli]: Add ability to exclude packages, or ignore specific advisories in
yarn npm audit
by @hughdavenport in #4356 - fix(core): prevent hangs due to degenerate lockfile diff by @xeger in #4453
- chore(extensions): add
tabbable
dependency tofocus-trap-react
by @smoores-dev in #4492 - fix(core)!: rename caFilePath to httpsCaFilePath by @jdanil in #4503
- docs: use monospace for fallback font of PT Mono by @rinsuki in #4495
- feat!: move getCustomDataKey to Linker by @jdanil in #4505
- feat!: set default
nmMode
tohardlinks-local
by @jdanil in #4504 - test(pnp): escape path in
NODE_OPTIONS
env variable by @merceyz in #4521 - test: add Babel config to integration tests by @merceyz in #4526
- fix(plugin-constraints): use proportional prolog limit by @marvinroger in #4538
- test(fslib): restore timers after each test by @merceyz in #4520
- test: add env variable TEST_IGNORE_TIMEOUT_FAILURES to suppress timeo⦠by @edvardchen in #4543
- fix(sdks): update for VSCode 1.68 by @merceyz in #4485
- ci: fix the
create-vue
e2e test by @merceyz in #4553 - docs: Append
yarn-plugin-pin-deps
to Contrib plugins by @milesrichardson in #4552 - fix(plugin-patch): avoid creating rename diffs by @redabacha in #4557
- fix(compat): update patch for
typescript@4.8.0-beta
by @merceyz in #4568 - feat(plugin-essentials): support specifying multiple paths in
yarn link
by @noahnu in #4573 - fix(esbuild-plugin-pnp): respect resolveDir by @jenseng in #4569
- fix(fslib): make recursive mkdir return the first created directory by @merceyz in #4462
- docs: update Node.js versions in migration guide by @dhruvkrishnavaid in #4576
- feat(fslib): add
fchmod
support by @merceyz in #4466 - fix(cli): fix dev version by @paul-soporan in #4582
- refactor(libui)!: require
renderForm
streams to be specified by @paul-soporan in #4589 - fix(core): don't normalize package extension peer dependency ranges by @paul-soporan in #4588
- Adds tests accidentally removed in #4305 by @arcanis in #4590
- chore: add
sponsor
field to vscode-zipfs by @paul-soporan in #4592 - feat(foreach)!: automatically enable
--verbose
in tty environments by @paul-soporan in #4595 - fix(esbuild-plugin-pnp): return
resolveDir
fromonLoad
by @alisd23 in #4597 - test(essentials): dedupe aliased dependency by @mchill in #4241
- docs(patch): document plugin options by @RDIL in #4481
- ci: remove workaround for Angular PnP e2e test by @merceyz in #4614
- ci: run tests on Node.js v18 by @merceyz in #4618
- fix(dlx): don't report
UNUSED_PACKAGE_EXTENSION
warnings by @paul-soporan in #4583 - feat(fslib): add
throwIfNoEntry
support by @merceyz in #4475 - fix(core): set
npm_package_json
environment variable when running scripts by @uhop in #4546 - docs(pnp): add Putout to native support table by @coderaiser in #3880
- docs: update logos by @treboryx in #3567
- docs: clarify the zero-installs requirements by @eoingroat in #4619
- feat: big-endian support by @paul-soporan in #3669
- fix(pnp): return
shortCircuit
from the ESM loader hooks by @merceyz in #4624 - fix(dlx): handle scoped
create
commands by @merceyz in #4627 - chore(extensions): update list by @merceyz in #4631
- fix(pnp): automatically unplug
open
andopn
by @merceyz in #4633 - fix(pnp): resolve virtual paths in
process.dlopen
by @merceyz in #4630 - Implements content addressing inside copyPromise by @arcanis in #4586
- fix(plugin-pnpm) Pnpm linker avoids symlink loops on the file system by @larixer in #4542
- fix(audit)!: remove fallback to publish registries by @paul-soporan in #4639
- chore: fix
scripts/bin/yarnpkg
symlink by @paul-soporan in #4647 - refactor!: remove deprecated versionUtils by @paul-soporan in #4648
- refactor(manifest)!: remove deprecated compatibility check methods by @paul-soporan in #4644
- refactor(core): remove
InstallOptions.skipBuild
by @paul-soporan in #4643 - refactor(core)!: remove
MapConfigurationValue
by @paul-soporan in #4645 - refactor(init)!: remove
--assume-fresh-project
by @paul-soporan in #4649 - refactor!: remove FetchOptions.skipIntegrityCheck by @paul-soporan in #4641
- test: don't hardcode timeout interval and don't rely on jasmine by @paul-soporan in #4646
- ci: run tests in parallel by @paul-soporan in #4642
- fix(fslib): correct the
FileHandle
implementation by @merceyz in #3889 - fix(shell): wait for stdio streams of process to close by @merceyz in #4651
- deps: update to
tslib@2.4.0
by @RDIL in #4693 - refactor(sdks)!: drop fallback on createRequireFromPath by @paul-soporan in #4697
- chore(libzip): set TEXTDECODER to 2 by @paul-soporan in #4699
- docs: use explicit version instead of
next
tag fortypedoc
by @merceyz in #4660 - refactor: deprecate old
INCOMPATIBLE_*
message names by @paul-soporan in #4703 - fix(core): support migrating resolutions from JFrog Artifactory registries regardless of the domain by @sargunv in #4702
- fix(core): use the current CLI to prepare external Yarn classic projects by @merceyz in #4682
- Writes a PnP spec by @arcanis in #4671
- docs: document libc in
manifest.json
schema by @paul-soporan in #4705 - chore: remove
@yarnpkg/json-proxy
by @paul-soporan in #4707 - docs: add missing commas on configuration pages by @paul-soporan in #4706
- fix(formatUtils): apply colors to
Type.NUMBER
by @paul-soporan in #4709 - test: jest improvements by @paul-soporan in #4650
- test: clear timeout after test finishes by @edvardchen in #4715
- Fixes errors in the PnP spec by @arcanis in #4724
- refactor: deprecate
FormatType
by @paul-soporan in #4725 - Faster copy through index by @arcanis in #4728
- chore(extensions): Add
webpack
optional peerDependency to xo by @flying-sheep in #4723 - docs: Cleans up a couple of errors by @arcanis in #4729
- fix(fs): Fixes the Zip magic fd bits by @arcanis in #4737
- fix(pnp): esm - correct named commonjs imports regression by @merceyz in #4739
- chore: remove release entries for
@yarnpkg/json-proxy
by @merceyz in #4740 - docs: update ESBuild PnP support status by @dritter in #4726
- refactor: tweak fs.promises patch by @paul-soporan in #4762
- docs: highlight the fact that the spec assumes the unix path format by @paul-soporan in #4747
- docs: update
error-codes
by @ctrlaltdylan in #4765 - chore: use
not_planned
reason for stale issues by @paul-soporan in #4759 - fix: use
MessageName.NETWORK_DISABLED
ingitUtils
too by @paul-soporan in #4777 - fix(pnpm-linker): warn only once about virtuals by @paul-soporan in #4776
- refactor!: stop removing old
.pnp.js
files when migrating by @paul-soporan in #4774 - fix: remove unplugged folder when switching to a different linker by @paul-soporan in #4772
- perf(core): remove dead code in
setupWorkspaces
by @paul-soporan in #4771 - refactor: update node types by @paul-soporan in #4764
- ci: use shards for big-endian by @paul-soporan in #4746
- docs: update
getSatisfying
JSDoc by @paul-soporan in #4745 - ci(e2e): use non-minified bundle by @paul-soporan in #4744
- fix(compat): update patch for
typescript@4.8.1-rc
by @merceyz in #4738 - test: add tests for our changes to
libzip
by @merceyz in #4736 - refactor: remove some duplicate fs implementations from pkg-tests-core by @paul-soporan in #4766
- refactor!: remove pnpDataPath by @paul-soporan in #4773
- Adds a note about workspaces in the
enableScripts
documentation by @arcanis in #4781 - chore(extensions): update list by @merceyz in #4779
- fix(pnp): esm - support unflagged JSON modules by @merceyz in #4786
- refactor: update
esbuild
and removeesbuild-plugin-pnp
by @RDIL in #4732 - perf(pnp): enable strict mode in
.pnp.cjs
by @merceyz in #4813 - docs: add yarn corepack activation by @jshanson7 in #4815
- fix(essentials): yarn add
--peer
and--dev
do not work when used together by @jj811208 in #4800 - chore: lock Alpine version in
Dockerfile
s by @merceyz in #4814 - deps: update to
node-gyp@9.1.0
by @amitdahan in #4812 - docs: fix small grammar error by @jpulec in #4792
- perf(NodeModulesLinker): remove
extractHint
from custom data by @paul-soporan in #4743 - refactor(init)!: disable zero-installs by default by @paul-soporan in #4698
- feat(fslib): add
fchown
support by @jj811208 in #4801 - feat: Moves the bulk of ZipOpenFS into a new MountFS by @arcanis in #4818
- fix: Always set INIT_CWD to the actual CLI cwd by @arcanis in #4817
- fix: Fixes MountFS export by @arcanis in #4821
- Fixes the version used for set version classic by @arcanis in #4827
- feat(essentials): Add
--no-private
flag to list command by @RDIL in #4830 - docs: mention zero-installs repo size by @joepio in #4839
- Add
export
fields to manifests to prevent deep imports by @Larry1123 in #4834 - chore(playground): fix cors issue by @paul-soporan in #4854
- test(integration): tweak timeout by @paul-soporan in #4861
- chore: update
actions/stale
to v5 by @paul-soporan in #4858 - chore: remove @yarnpkg/core CODEOWNERS by @paul-soporan in #4860
- refactor(MessageName): deprecate
CROSS_DRIVE_VIRTUAL_LOCAL
by @paul-soporan in #4859 - refactor(plugin-link)!: rename resolvers and fetchers by @paul-soporan in #4865
- chore(bench): remove pnpm metadata cache in full-cold by @paul-soporan in #4866
- feat(shell): support whitespace-only commands by @paul-soporan in #4864
- refactor!: move
ZipFS
andZipOpenFS
into@yarnpkg/libzip
by @arcanis in #4853 - Removes dependency cycle by @arcanis in #4871
- fix: update pnp file to fix chore testing error by @jj811208 in #4878
- docs(gatsby): Remove outdated information of
plugin-tutorial.mdx
by @jj811208 in #4887 - ci: fix the typescript e2e test by @jj811208 in #4888
- refactor!: cleanup lutimes by @paul-soporan in #4899
- fix(compat): update patch for
typescript@4.8.4
andtypescript@4.9.1-beta
by @merceyz in #4903 - refactor(core): remove
tolerateMissingPackages
by @paul-soporan in #4897 - fix(pnp): handle private import mappings by @merceyz in #4862
- fix(pnp): report loaded modules in watch mode by @merceyz in #4934
- fix: update some dependency to reduce peer dependency warning by @jj811208 in #4935
- fix(essentials): set
yarnPath
in project.yarnrc.yml
regardless if it's set in a parent directory by @merceyz in #4928 - perf: avoid unnecessary
structUtils.convertToIdent
by @paul-soporan in #4936 - refactor(core): use const for descriptor in
LegacyMigrationResolver
by @trivikr in #4292 - fix(fslib): support utf8 buffers by @paul-soporan in #4943
- fix(suggestUtils): use
workspace.anchoredLocator
by @paul-soporan in #4937 - refactor(core)!: replace
workspace.dependencies
withworskpace.anchoredPackage
by @paul-soporan in #4898 - fix: handle unintentional floating promises by @merceyz in #4947
- docs: update the install section of all plugin's readme by @jj811208 in #4948
- feat(nm): export the hoist function by @zkochan in #4951
- fix(nm): declare
@yarnpkg/pnp
as a dependency by @zkochan in #4958 - fix(shell): fix alternative value not working as expected by @jj811208 in #4959
- ci: use latest stable version of actions by @jj811208 in #4954
- docs: add
yarn-plugin-scripts
to Contrib plugins by @jgttech in #4949 - feat: when initializing the
Configuration
, auto fetch the missing plugins by @jj811208 in #4912 - test(shell): ensure that fields that aren't checked are empty by @paul-soporan in #4900
- docs(plugnplay.md): added reference to google cloud by @francjpd in #4962
- test(shell): fix failing tests by @arcanis in #4969
- fix(plugin-nm): Avoid duplicate copies inside aliased dependencies. by @larixer in #4571
- chore: update Jest and run tests on Node.js v19 by @merceyz in #4972
- perf(nm): Speedup
hardlinks-global
link step by 1.5-1.7x by @larixer in #4532 - ci: migrate from
::set-output
to$GITHUB_OUTPUT
environment file by @merceyz in #4983 - ci: remove outdated workflow by @jj811208 in #4960
- feat(plugin-nm): support configuring link mode by @jeff-wishnie in #4981
- feat(core): implement
checksumBehavior: reset
by @goloveychuk in #4716 - fix(essentials): fix a typo in the
--mode
flag documentation by @JLHwung in #4996 - perf(patch): compute hash from the effects of the patch by @merceyz in #4945
- docs: add Node.js versions for
corepack prepare yarn@stable
by @mrienstra in #4850 - ci: add
vite
e2e tests by @merceyz in #5002 - perf(pack): remove duplicated assignment of
browser
inpublishConfig
by @raon0211 in #5004 - docs: correct example value for
.yarnrc.yml
cpu
field by @jeff-wishnie in #4999 - feat: support configuring link mode across plugins by @jeff-wishnie in #4990
- fix(core): add
WarpTerminal
andvscode
to list of terminals that support emoji by @amitdahan in #5003 - build(compat): avoid rebuilding patches when changing the range by @merceyz in #5001
- Adds a docusaurus workspace by @arcanis in #4851
- Adds notice support to the login command by @arcanis in #4308
- fix(compat): update patch for
typescript@4.9.2-rc
by @merceyz in #5020 - Implements JavaScript constraints by @arcanis in #5026
- deps(git): update
git-url-parse
by @dkhaye in #4635 - Adds support for Windows when opening urls by @arcanis in #5031
- fix(plugin-nm): Fixes binaries finding when the same version is duplicated in a root and non-root workspace by @larixer in #5038
- Fixes
resolutions
w/ reference by @arcanis in #5043 - feat(exec)!: Adds support for enableInlineBuilds to the exec: fetcher by @arcanis in #5040
- Fixes Corepack incorrectly calling v1 when preparing a git repo without lockfile by @arcanis in #5049
- Reimplements the Git merge conflict resolution by @arcanis in #5046
- ci: update to Node.js v18 by @merceyz in #5051
- feat!: make all settings mergeable by @jj811208 in #4982
- Improves init by @arcanis in #5053
- test: fix constraints test to handle paths containing spaces by @merceyz in #5073
- build(libzip): use Docker by @merceyz in #5056
- deps: update to
esbuild-wasm@0.15.15
by @merceyz in #5078 - perf(libzip): enable more compiler optimizations by @merceyz in #5077
- fix(core): fixed
SettingsType.ANY
field not parsing correctly by @jj811208 in #5091 - Makes
parseIdent
less tolerant by @arcanis in #5088 - Fixes rebase and cherry-pick conflict resolution by @arcanis in #5102
- fix(git): normalize repo url without legacy
url.parse
by @merceyz in #5100 - fix(plugin-nm): Changes the default nmMode back to classic by @larixer in #5099
- Upgrades pem to solve openssl 3 errors by @arcanis in #5130
- fix(compat): update patch for
typescript@4.9.4
by @merceyz in #5127 - ci: disable stale bot by @merceyz in #5122
- feat(fslib): add
FileHandle.readLines
by @merceyz in #5121 - chore(extensions): update list by @merceyz in #5131
- docs(gatsby): wrong link & line breaks in Lexicon by @devheedoo in #5105
- fix(pnp): report missing files in watch mode by @merceyz in #5132
- fix(workspace-tools): remove message prefix from
workspaces foreach
by @qrohlf in #5152 - chore: fix creation of
@yarnpkg/cli-dist
and artifact updating by @merceyz in #5148 - fix(builder): restore resolution of
.mjs
files by @merceyz in #5174 - fix(core): wait for package dependencies to build by @merceyz in #5162
- fix(ZipFS): support empty archives resulting from an unlink after write in
getBufferAndClose
by @paul-soporan in #5179 - fix(pnp): watch mode on Node.js v18.13.0 by @merceyz in #5182
- chore: use
os.availableParallelism
when available by @merceyz in #5183 - perf: remove obsolete forced unplug entries by @paul-soporan in #5181
- Implements automated constraints checks by @arcanis in #5204
- Detects when file:./foo.tgz files have changed by @arcanis in #5203
- build(core): fix zip worker build by @merceyz in #5197
- fix(core): don't mark package as built if any of its scripts fails by @merceyz in #5176
- perf(zip)!: don't access the filesystem from wasm by @paul-soporan in #5178
- fix(core): handle self-referencing build dependencies by @merceyz in #5177
- docs (migration):
yarn list
-->yarn info --recursive
by @mrienstra in #4931 - feat(plugin-init): generate .gitattributes file by @cometkim in #5205
- Fixes importing the PnP API from ES modules by @arcanis in #5206
- docs: fix plugin-compat database link by @sudosubin in #5217
- feat(sdks): add
@astrojs/language-server
to vscode sdks by @ezracelli in #5223 - fix(compat): update patch for
typescript@5.0.0-beta
by @merceyz in #5210 - feat(pnp): support the
--conditions
flag by @merceyz in #5228 - feat: Tolerate string literals w/
ppath.join
/ppath.resolve
by @arcanis in #5250 - build(libui): build using typescript by @merceyz in #5266
- docs: Add contributed plugin by @rgischk in #5261
- Keep docs up-to-date with changes around
plugin-compat
by @smorimoto in #5257 - Docs: add
yarn-plugin-npm-audit-fix
to contrib plugins list by @sargunv in #5252 - chore: replace
@babel/register
withesbuild-wasm
by @merceyz in #5180 - fix(pack): Adds support for "imports" in publishConfig by @arcanis in #5274
- test: reference functions directly by @merceyz in #5277
- doc: Fix typo by @rgischk in #5278
- test: use
stream.pipeline
by @merceyz in #5283 - Update pnp docs for webstorm by @RDIL in #5286
- test: replace custom
walk
function withfs.readdir
by @merceyz in #5279 - Exposes the error function through the workspace by @arcanis in #5289
- fix(compat): update patch for
typescript@5.0.1-rc
by @merceyz in #5296 - fix(npm-cli): count all instances of ignored advisories by @B4ckslash in #5194
- fix(core): ignore YARN_REGISTRY when resolving configuration by @nfantone in #5338
- fix: Fixes grammatical errors in version.ts by @kamronbatman in #5317
- Improves JS constraints by @arcanis in #5341
- fix(pnp): use exports implementation from Node.js by @merceyz in #5331
- feat(workspace-tools): add path support to --include, --exclude, and --from flags in foreach by @me4502 in #5308
- Makes the workspace: protocol tolerate aliasing workspaces by @arcanis in #5357
- Fixes
@yarnpkg/types
by @arcanis in #5348 - fix(compat): typescript - improve PnP support by @merceyz in #5351
- perf(core): setup workspaces in parallel by @merceyz in #5367
- test: fix editor SDK test by @merceyz in #5363
- fix(pnp): disable patching
binding.fstat
when possible by @merceyz in #5402 - fix(types): avoid using
import type * as
by @merceyz in #5400 - fix(compat): update patch for
typescript@5.1.0-beta
by @merceyz in #5391 - chore: update benchmark dependencies by @merceyz in #5390
- docs: Fix typos and errors in yarnrc.json file by @chialuka in #5404
- docs: additional coc vim sdk configuration step by @unrealsolver in #5387
- fix(fslib): export
CustomDir
by @bruce-one in #5371 - perf(core): use a reverse lookup in
forgetTransientResolutions
by @merceyz in #5372 - perf(core): persist workspaces in parallel by @merceyz in #5368
- fix(pnp): esm - use correct error code when module not found by @clemyan in #5355
- Prints the constraints errors on CI by @arcanis in #5444
- Re-reports errors after the current group ends by @arcanis in #5443
- Autocorrects git:// into https:// for GitHub by @arcanis in #5440
- Update plugins.md with yarn-plugin-env-vars by @scinos in #5433
- feat(builder): streamline generated template by @mataha in #5426
- fix(plugin-interactive-tools): donβt list folder aliases as outdated dependencies by @lensbart in #5442
- feat: add --always-auth flag to npm login by @bgotink in #5406
- feat(plugin-essentials): upgrade all packages with wildcard by @Gelio in #5381
- add readme to publishBody by @hindicator in #5374
- docs: add
yarn-plugin-env
to contrib plugins by @MDReal32 in #5306 - chore: add
git-hooks
to plugins list by @Fyko in #5343 - Update plugins.md - add yarn-plugin-fetch by @devthejo in #5384
- fix(core): correct
.yarnrc.yml
validation error by @heyheyhello in #5213 - docs: explain where the
.yarnrc.yml
should be placed inmigration.md
by @atheistengineer in #5142 - docs: add theme colour by @sanjaiyan-dev in #5141
- Fixes typecheck by @arcanis in #5447
- fix(pnp): esm - handle
parentURL
without afile:
protocol by @lizthegrey in #5362 - fix(compat): update patch for
typescript@5.1.1-rc
by @merceyz in #5448 - Adds legacy plugin removal behavior by @arcanis in #5446
- test: fix range for parent URL test by @merceyz in #5463
- Release workflow for stable releases by @arcanis in #5476
- Followups on the release branch workflow by @arcanis in #5478
- ci(release): push release to
master
and allow retrying releases by @merceyz in #5482 - ci(release): create GitHub release by @merceyz in #5481
- docs: fix questions and answers typo by @gabrielyotoo in #5500
- Updates the audit implementation to the bulk endpoint by @arcanis in #5501
- chore: convert gatsby portal dependencies into workspaces by @paul-soporan in #5499
- feat(sdks): add
relay-compiler
to vscode sdks by @XiNiHa in #5492 - perf(pnp): use default
Module._load
by @merceyz in #5483 - Fixes merge conflict resolution always querying the network by @arcanis in #5504
- Adds support for running native binaries without JS intermediaries by @arcanis in #5508
- perf(libzip): update to
zlib-ng@2.1.2
by @merceyz in #5510 - Modernizes installs' output by @arcanis in #5509
- perf: use
buffer.isUtf8
inNodePathFS
by @paul-soporan in #5516 - Implements the readdir recursive flag by @arcanis in #5514
- Bumps Node requirements from 14 to 18 by @arcanis in #5445
- perf(core): optimize changed package detection by @paul-soporan in #5515
- feat: cache npm metadata by @paul-soporan in #5491
- chore: delete global folder in benchmarks by @merceyz in #5523
- ci: cache metadata by @merceyz in #5524
- fix(sdks): support Prettier v3 by @merceyz in #5411
- Sets the default compression to 0 by @arcanis in #5526
- chore: fix tsconfig excludes by @merceyz in #5525
- Implements .env file support by @arcanis in #5531
- Implements MOTD mechanism by @arcanis in #5530
- Fixes registry used to check for deprecation settings by @arcanis in #5534
- Implements a benchmarking script by @arcanis in #5536
- Fixes readdir w/ recursive: true by @arcanis in #5543
- Fixes settings interpolation with dotenv variables by @arcanis in #5544
- fix(compat): update patch for
typescript@5.2.0-beta
by @merceyz in #5537 - Tweaks the .env implementation by @arcanis in #5548
- ci(release): set
GH_TOKEN
when creating GitHub release by @merceyz in #5550 - chore: compute Node.js build target from
engines.node
by @merceyz in #5554 - Migrates the constraints on the Yarn repository from Prolog to JS by @arcanis in #5553
- Implements aggregate peer deps by @arcanis in #5552
- Fixes hardcoded Yarn version by @arcanis in #5556
- Exposes packages to constraints by @arcanis in #5555
- chore: remove unused
Report#buffered
by @paul-soporan in #5559 - refactor: remove duplicate
enableMotd
check by @paul-soporan in #5558 - chore!: update ECMAScript version target by @merceyz in #5557
- refactor: rename
motd
totips
by @paul-soporan in #5561 - fix: use
httpUtils.get
instead offetch
by @paul-soporan in #5560 - docs: fix typo by @LiuL0703 in #5568
- ci: use latest Node.js v20 version by @merceyz in #5573
- Cache tolerance for old archives by @arcanis in #5564
- fix(plugin-npm): normalize registry by @merceyz in #5582
- test(core): avoid mocking
got
by @merceyz in #5585 - chore(libzip)!: remove unused code by @merceyz in #5586
- fix: pass mode to
yarn up --recursive
by @paul-soporan in #5517 - fix npm tag resolver when dedupe by @goloveychuk in #5497
- Refactors the CLI spawn by @arcanis in #5600
- refactor!: remove
ignoreCwd
by @paul-soporan in #5602 - feat(builder): make bundle executable by @paul-soporan in #5609
- test: use
stream.promises.pipeline
by @paul-soporan in #5611 - test: increase timeout by @paul-soporan in #5612
- refactor: remove
MercurialDriver
by @paul-soporan in #5605 - perf: use
fast-glob
instead ofglobby
by @paul-soporan in #5606 - chore: enable
prefer-object-has-own
and update eslint by @paul-soporan in #5614 - bench(script): support clipboard copy on linux by @paul-soporan in #5610
- perf(plugin-pnp): remove redundant node check by @paul-soporan in #5615
- test: remove unnecessary node version checks by @merceyz in #5617
- refactor(pnp)!: remove unnecessary node bug workaround by @merceyz in #5618
- refactor: use
timers/promises
by @paul-soporan in #5620 - Improves string escaping during serialization by @arcanis in #5621
- Extracts the repository plugin hooks into their own file by @arcanis in #5622
- Refactors context passing by @arcanis in #5623
- Updates Clipanion to 4.0.0-rc.1 by @arcanis in #5624
- Website: work in progress by @arcanis in #5587
- refactor!: remove
lockfileFilename
by @paul-soporan in #5604 - Moves back the changelog to the root by @arcanis in #5625
- refactor(core)!: remove
workspace.locator
by @paul-soporan in #5619 - fix(plugin-pnp): unset
NODE_OPTIONS
when preparing the environment after switching linkers by @paul-soporan in #5616 - chore: remove outdated comment by @paul-soporan in #5593
- perf: remove unnecessary
realpath
on--cwd
by @paul-soporan in #5603 - perf(cli): avoid resolving
ppath.cwd()
by @paul-soporan in #5626 - Refactors
yarn workspaces foreach
by @arcanis in #5644 - fix: support fragment in tar regex by @drodil in #5631
- Improvements on the Docusaurus website by @arcanis in #5643
- Fixes the sponsor link on the new website by @arcanis in #5645
- Adds a warning on the website about the document being intended for Yarn 4 by @arcanis in #5655
- Social preview on the website by @arcanis in #5665
- fix(compat): update patch for
typescript@5.2.1-rc
by @merceyz in #5648 - Website fixes by @arcanis in #5668
- fix(pnp): fix infinite recursion when .pnp.cjs is a symlink and pnp inlining is disabled by @shYkiSto in #5673
- fix(cli): propagate proper exit status code when running yarnPath binary by @shYkiSto in #4798
- fix(pnp): esm - return undefined source for commonjs by @merceyz in #5677
- simplifyRanges now handles wildcards by @ulrik-s in #5679
- Couple of website improvements by @arcanis in #5691
- Small fixes for the website by @arcanis in #5697
- fix(pnpapi): dedupe pnpapi instances where .pnp.cjs is a symlink by @shYkiSto in #5674
- Improves the website by @arcanis in #5705
- Fixes custom errors in constraints by @arcanis in #5704
- Fixes a bug in
yarn unplug --all
by @arcanis in #5711 - Improves the message when a package isn't found due to an incomplete
supportedArchitectures
setting by @arcanis in #5712 - "Yarn may [+not] solve all your problems" and "will always be to[+at]" by @nbrader in #5727
- Renames yarn.config.js -> yarn.config.cjs by @arcanis in #5733
- Fixes types for @types/node 18.17 by @arcanis in #5731
- Fixes couple of release blockers by @arcanis in #5730
- Implements enableOfflineMode by @arcanis in #5710
- Fixes global cache by @arcanis in #5739
- Perf work by @arcanis in #5740
- refactor!: simplify
Configuration.findProjectCwd
by @paul-soporan in #5627 - fix(core): Ignore empty bin value in Manifest#load by @rally25rs in #5743
- Removes Gatsby from the repository by @arcanis in #5742
- Use ubuntu-20.04 to run the integration tests by @arcanis in #5755
- Add arm64 to example supported cpu values by @MasterOdin in #5756
- Improves the output of "yarn config" by @arcanis in #5713
- Disables emoji in our Windows tests until Node is fixed by @arcanis in #5763
- Reworks the worker pool to be more configurable by @arcanis in #5764
- fix(compat): update patch for
typescript@5.3.0-beta
by @merceyz in #5759 - Update alpine version for sherlock workflow by @clemyan in #5718
- docs: fix
:::warning
aside by @tsxoxo in #5778 - docs: change wording in changelog by @FabianWarnecke in #5777
- ci: e2e - use Node.js 18 for Preact CLI tests by @wojtekmaj in #5780
- ci: e2e - fix installing @types/testing-library__jest-dom v6 instead of v5 in CRA tests by @wojtekmaj in #5782
- docs: fix broken "Current status" badges by @wojtekmaj in #5783
- Fixes the iarna test by @arcanis in #5794
- Documentation fixes by @pascalwill in #5776
- docs: fix old info in contributing guide by @tsxoxo in #5779
- ci(e2e): remove preact-cli test by @merceyz in #5790
- Fix sherlock workflow again by @clemyan in #5788
- docs: Fix package "types available" check by @clemyan in #5789
- docs: fix typo by @guidanoli in #5770
- Infer which files should SDKs include using manifest data by @clemyan in #5703
- docs: fix typo in migration guide by @Flamenco in #5807
- docs: replace
@babel/register
withesbuild
by @clemyan in #5808 - ci(e2e): disable storybook telemetry by @shilman in #5267
- fix(core): Remove type dependency on lodash by @clemyan in #5815
- perf!: lazy load
packageExtensions
by @paul-soporan in #5608
New Contributors
- @devrelm made their first contribution in #4193
- @arontsang made their first contribution in #4180
- @francisu made their first contribution in #4082
- @jameskerr made their first contribution in #4230
- @julienfouilhe made their first contribution in #4264
- @elado made their first contribution in #4275
- @Leksat made their first contribution in #4243
- @trevor-scheer made their first contribution in #4293
- @GauBen made their first contribution in #4324
- @marionebl made their first contribution in #4221
- @Justkant made their first contribution in #4312
- @hughdavenport made their first contribution in #4358
- @juan-fernandez made their first contribution in #4376
- @cwstra made their first contribution in #4381
- @stevenxu-db made their first contribution in #4402
- @osBins made their first contribution in #4422
- @dahlbyk made their first contribution in #4409
- @colincasey made their first contribution in #4403
- @zkochan made their first contribution in #4436
- @edvardchen made their first contribution in #4458
- @andreyfel made their first contribution in #4465
- @indooorsman made their first contribution in #4222
- @tommy351 made their first contribution in #4233
- @xeger made their first contribution in #4453
- @smoores-dev made their first contribution in #4492
- @rinsuki made their first contribution in #4495
- @marvinroger made their first contribution in #4538
- @milesrichardson made their first contribution in #4552
- @redabacha made their first contribution in #4557
- @jenseng made their first contribution in #4569
- @dhruvkrishnavaid made their first contribution in #4576
- @alisd23 made their first contribution in #4597
- @mchill made their first contribution in #4241
- @uhop made their first contribution in #4546
- @coderaiser made their first contribution in #3880
- @treboryx made their first contribution in #3567
- @eoingroat made their first contribution in #4619
- @flying-sheep made their first contribution in #4723
- @dritter made their first contribution in #4726
- @ctrlaltdylan made their first contribution in #4765
- @jshanson7 made their first contribution in #4815
- @jj811208 made their first contribution in #4800
- @amitdahan made their first contribution in #4812
- @jpulec made their first contribution in #4792
- @joepio made their first contribution in #4839
- @jgttech made their first contribution in #4949
- @francjpd made their first contribution in #4962
- @jeff-wishnie made their first contribution in #4981
- @goloveychuk made their first contribution in #4716
- @dkhaye made their first contribution in #4635
- @devheedoo made their first contribution in #5105
- @qrohlf made their first contribution in #5152
- @sudosubin made their first contribution in #5217
- @ezracelli made their first contribution in #5223
- @rgischk made their first contribution in #5261
- @smorimoto made their first contribution in #5257
- @B4ckslash made their first contribution in #5194
- @nfantone made their first contribution in #5338
- @kamronbatman made their first contribution in #5317
- @me4502 made their first contribution in #5308
- @chialuka made their first contribution in #5404
- @unrealsolver made their first contribution in #5387
- @scinos made their first contribution in #5433
- @mataha made their first contribution in #5426
- @lensbart made their first contribution in #5442
- @Gelio made their first contribution in #5381
- @hindicator made their first contribution in #5374
- @MDReal32 made their first contribution in #5306
- @Fyko made their first contribution in #5343
- @devthejo made their first contribution in #5384
- @heyheyhello made their first contribution in #5213
- @atheistengineer made their first contribution in #5142
- @sanjaiyan-dev made their first contribution in #5141
- @lizthegrey made their first contribution in #5362
- @gabrielyotoo made their first contribution in #5500
- @XiNiHa made their first contribution in #5492
- @LiuL0703 made their first contribution in #5568
- @drodil made their first contribution in #5631
- @shYkiSto made their first contribution in #5673
- @ulrik-s made their first contribution in #5679
- @nbrader made their first contribution in #5727
- @rally25rs made their first contribution in #5743
- @MasterOdin made their first contribution in #5756
- @tsxoxo made their first contribution in #5778
- @FabianWarnecke made their first contribution in #5777
- @pascalwill made their first contribution in #5776
- @guidanoli made their first contribution in #5770
- @Flamenco made their first contribution in #5807
- @shilman made their first contribution in #5267
Full Changelog: https://github.com/yarnpkg/berry/compare/@yarnpkg/cli/3.6.4...@yarnpkg/cli/4.0.0