@lerna/legacy-package-management
Advanced tools
Changelog
7.0.0 (2023-06-08)
After updating we strongly recommend running
lerna repair
in your project. This will migrate yourlerna.json
to the latest and greatest and remove any outdated options.
As this is a major release there are a few breaking changes to be aware of, which may or may not affect your lerna repos, depending on how you are using the tool.
When a node version because end of life (EOL) it means that it does not receive any updates or maintenance whatsoever, even if critical security vulnerabilities have been uncovered.
We strongly encourage all folks here to keep up with the maintenance LTS version of Node at an absolute minimum:
https://github.com/nodejs/release#release-schedule
NOTE: Due to an oversight, we initially forgot to formally remove this from the engines field. This was corrected in patch 7.3.1
We no longer include the bootstrap
, add
, and link
commands by default. We strongly recommend using your package manager (npm
, yarn
, pnpm
) for package management related concerns such as installing and linking dependencies.
There will not be any active work done on these commands and you should look to migrate as soon as possible.
For full context how why we made this change and how you can migrate your projects, please read our detailed guide here: https://lerna.js.org/docs/legacy-package-management
useWorkspaces
has been removedWe now use your package manager's workspaces configuration by default in order to resolve packages for lerna to operate on. If you wish to customize the packages that lerna will operate on, you can still use a packages
property in your lerna.json
just as you did before, but there is no longer any need for a useWorkspaces
flag. If the packages
property is present, lerna will use that, otherwise it will try and read your workspaces configuration.
Running lerna repair
will automatically remove useWorkspaces
from your lerna.json
for you.
NOTE: If you are using pnpm
as your package manager, it is important to set "npmClient": "pnpm"
in your lerna.json
so that lerna knows to look for a pnpm-workspaces.yaml
file and not just check your root package.json
.
It was a confusing behavior that lerna init
could be run on an existing lerna repo and would attempt to coerce its setup to something closer to a fresh repo, so we have removed this behavior and lerna will hard error if it detects the directory is already initialized.
You can run lerna repair
at any time to update your configuration to the latest and greatest.
The following options (on the left of the => in each case) have been deprecated for many years (since before we took over stewardship of the project) and have finally been removed. If you are using them in your lerna.json
all you need to do is run lerna repair
and it will automatically migrate you to their modern equivalent. If you are passing them in on the command line, you will need to update your usage as follows:
--includeFilteredDependencies
=> --includeDependencies
--includeFilteredDependents
=> --includeDependents
--githubRelease
=> --createRelease=github
--skipGit
=> --push=false --gitTagVersion=false
--repoVersion
=> [positional bump]
--cdVersion
=> [positional bump]
--npmTag
=> --distTag
--ignore
=> --ignoreChanges
Changelog
7.0.0-alpha.8 (2023-06-07)