-
The ZipFS
and ZipOpenFS
classes have been moved from @yarnpkg/fslib
to @yarnpkg/libzip
. They no longer need or accept the libzip
parameter.
- Reading the zip archives is now done on the Node.js side for performance; as a result, the
open
, ZIP_CREATE
, and ZIP_TRUNCATE
bindings are no longer needed for ZipFS
and have also been removed.
-
The dependencies
field sent returned by Resolver#resolve
must now be the result of a Configuration#normalizeDependencyMap
call. This change is prompted by a refactoring of how default protocols (ie npm:
) are injected into descriptors. The previous implementation caused various descriptors to never be normalized, which made it difficult to know what were the descriptors each function should expect.
-
Similarly, the descriptors returned by Resolve#getResolutionDependencies
are now expected to be the result of Configuration#normalizeDependency
calls.
-
Note that this only applies to the dependencies
field; the peerDependencies
field is unchanged, as it must only contains semver ranges without any protocol (with an exception for workspace:
, but that's not relevant here).
-
The Resolve#getResolutionDependencies
function must now return an object of arbitrary string keys and descriptor values (instead of a map with DescriptorHash
keys). Those descriptors will be resolved and assigned to the same keys as the initial object. This change allows resolvers to wrap resolution dependencies from other resolvers, which wasn't possible before since it'd have caused the key to change.
-
The generateLoader
function in @yarnpkg/pnp
no longer generates the $$SETUP_STATE
function, it now needs to be present in the loader
passed to the function.
-
The getCustomDataKey
function in Installer
from @yarnpkg/core
has been moved to Linker
.
-
renderForm
's options
argument is now required to enforce that custom streams are always specified.
-
npmConfigUtils.getAuditRegistry
no longer takes a Manifest
as its first argument.
-
The FetchOptions.skipIntegrityCheck
option has been removed. Use FetchOptions.cacheOptions.skipIntegrityCheck
instead.
-
MapConfigurationValue
has been removed. Use miscUtils.ToMapValue
instead.
-
Manifest.isManifestFieldCompatible
and Manifest.prototype.isCompatibleWith{OS,CPU}
have been removed. Use Manifest.prototype.getConditions
and structUtils.isPackageCompatible
instead.
-
versionUtils.{fetchBase,fetchRoot,fetchChangedFiles}
have been moved from @yarnpkg/plugin-version
to @yarnpkg/plugin-git
. Use gitUtils.{fetchBase,fetchRoot,fetchChangedFiles}
instead.
-
For consistency reasons:
Link{Resolver,Fetcher}
have been renamed to Portal{Resolver,Fetcher}
RawLink{Resolver,Fetcher}
have been renamed to Link{Resolver,Fetcher}
-
FakeFS
classes are now required to implement lutimes{Sync,Promise}
.
-
workspace.dependencies
has been removed. Use workspace.anchoredPackage.dependencies
instead.
-
The Installer
class must now return BuildRequest
structures instead of BuildDirective[]
. This lets you mark that the build must be skipped, and the reason why.
-
startCacheReport
has been removed, and is now part of the output generated by fetchEverything
.
-
forgettableNames
& forgettableBufferSize
have been removed (the only messages using them have been removed, making the forgettable logs implementation obsolete).
-
workspace.locator
has been removed. You can instead use:
workspace.anchoredLocator
to get the locator that's used throughout the dependency tree.workspace.manifest.version
to get the workspace version.
-
configuration.{packageExtensions,refreshPackageExtensions}
have been removed. Use configuration.getPackageExtensions
instead.
-
configuration.normalizePackage
now requires a packageExtensions
option.
-
ProjectLookup
has been removed. Both Configuration.find
and Configuration.findProjectCwd
now always do a lockfile lookup.