Skip to content

Latest commit

 

History

History
1608 lines (1009 loc) · 80.5 KB

CHANGELOG.md

File metadata and controls

1608 lines (1009 loc) · 80.5 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

3.0.0-beta.17 (2018-04-13)

Bug Fixes

  • bootstrap: Pass npm-conf to feature predicate instead of directly reading process.env (b4af3c9)
  • bootstrap: Pluralize log text (#1232) (5c74760)
  • package: Resolve correct relative spec (ec2b8f5)

Features

  • add: Use directory globs to filter targeted packages (39fa7b6)
  • link: Add 'convert' subcommand to aid migration to local file: specifiers (f59bf3c)

BREAKING CHANGES

  • add: lerna add now only supports adding one dependency at a time. It is much more valuable to filter by directory globs, anyway.

3.0.0-beta.16 (2018-04-10)

Bug Fixes

  • import: Rebase patch copies, too (f6bae80)

3.0.0-beta.15 (2018-04-09)

Bug Fixes

  • project: Pin --exact require-from-string v2.0.1 to avoid integrity error with v2.0.2 (32a38ad)
  • publish: Allow tag check to fail with strong warning (#1355) (f5268cd)

Features

  • bootstrap: Use npm ci with --ci option (#1360) (d7e33c6)
  • conventional-commits: Support local file presets (a1bff40)

3.0.0-beta.14 (2018-04-03)

Bug Fixes

  • create: Actually publish the module data helper (4775cc4)
  • logging: Log failures from package scripts once, not twice (436cfe1)
  • publish: Ensure optionalDependencies are updated during publish to registry (559b731)

3.0.0-beta.13 (2018-03-31)

Bug Fixes

  • child-process: Do not merge lines of streaming stderr (59dc2d4), closes #994
  • Use ValidationError instead of Error (bea6bc3)
  • run: Exit early when no packages contain the targeted lifecycle (c8a5526)

Features

  • Enable progress bars only when necessary (b766c83)

3.0.0-beta.12 (2018-03-30)

Bug Fixes

  • create: Silently ignore missing builtin npmrc (1523520), closes #1353
  • npm-conf: Replace env vars even in config keys (3c9a5de)

Features

  • package: Add serialize() method (fdec3ac)
  • package: Add Map-like get/set methods, remove raw json getter (707d1f0)
  • project: Merge package and packageJson into manifest (9a47ff7)
  • Add --no-prefix for streaming output (#1352) (36c1fad)

BREAKING CHANGES

  • package: The Package class no longer provides direct access to the JSON object used to construct the instance. Map-like get()/set(val) methods are available to modify the internal representation.

3.0.0-beta.11 (2018-03-29)

Bug Fixes

  • exec: Clarify --no-bail option (6e4c6fd)
  • publish: Write temporary annotations once, not repeatedly (6abae76)

Features

  • bootstrap: Inherit stdio during root-only install (fd8c391)
  • bootstrap: Short-circuit when local file: specifiers are detected in the root (d8a8f03)
  • child-process: Allow exec() opts.stdio override (fd84013)
  • npm-install: Allow opts.stdio override (4ba5e74)
  • Execute atomic publish lifecycle during lerna publish (#1348) (45efa24)
  • Support optionalDependencies (b73e19d), closes #121
  • npm-run-script: Accept opts.reject (7c5a791)
  • run: Add --no-bail option (893fcc8), closes #1351

3.0.0-beta.10 (2018-03-27)

Bug Fixes

  • add: Use bootstrap factory, not handler (dbfc891)

Features

  • commands: Delay require of command instantiation (a1284f3)
  • project: Inherit configuration with yargs-like "extends" (0b28ef5), closes #1281

BREAKING CHANGES

  • commands: The default export of command packages is now a factory, not the subclass (which is now a named export).

3.0.0-beta.9 (2018-03-24)

Bug Fixes

  • filter-options: Move include/exclude validation into filter-packages (503251d)
  • git-utils: Remove unused methods, stop mocking tests (3e00d7a)
  • publish: Split --skip-* properly, leave working tree clean (5b4b2c9)

Features

  • command: Remove legacy config handling (d305a38)
  • command: Rename this.repository -> this.project (43e98a0)
  • project: Normalize config.commands -> config.command (24e55e3)
  • project: Use cosmiconfig to locate and read lerna.json (b8c2789)

BREAKING CHANGES

  • publish: Previously, gitHead annotations were leftover if --skip-npm was passed, despite no actual requirement for that property when no publishing is going on.

Now, all publish-related operations are truly skipped with --skip-npm, and all git commit/push-related operations are skipped with --skip-git. Passing --skip-npm will now also always push to remote, which represents a breaking change from 2.x behavior.

Thanks @KingScooty for raising the issue!

  • command: lerna.json bootstrapConfig and publishConfig namespaces are no longer honored. These config blocks should be moved to command.bootstrap and command.publish, respectively.

3.0.0-beta.8 (2018-03-22)

Bug Fixes

  • add: Support tag and version specifiers (5df0fc8), closes #1306
  • create: Skip repository property when git remote is missing (98c8be6)

Features

  • init: Improve ex-nihilo output (7b80e07)
  • npm-conf: Add get/setCredentialsByURI() methods (ad20d8a)
  • utils: Add "vendored" npm-conf (9c24a25)
  • utils: Add @lerna/map-to-registry (ce72828)

3.0.0-beta.7 (2018-03-20)

Bug Fixes

  • cli: Retrieve correct version (bb2c5e8)

3.0.0-beta.6 (2018-03-19)

Note: Version bump only for package lerna

3.0.0-beta.5 (2018-03-19)

Bug Fixes

  • bootstrap: Move --hoist/--nohoist coerce into class (8877aa0), closes #1337

3.0.0-beta.4 (2018-03-19)

Bug Fixes

  • clean-stack: Try to avoid causing errors during error cleanup (89f9d3b)
  • Respect durable hoist configuration (2081640), closes #1325
  • Use correct instance property override (9249221)

Features

3.0.0-beta.3 (2018-03-15)

Bug Fixes

  • utils: Use safe relative path when calling git diff (#1323) (619c477)
  • ci option should not be visible in help output (580b2d5)
  • fs-extra dependency is a caret range, not exact (81556d0)

Features

  • Check for upstream changes before attempting to publish (#1317) (cef0a69)
  • cli: Set config.ci from env var (5452293)
  • global-options: Add hidden ci option (86a4d65)
  • Upstream changes warn in CI, throw locally (4de055d), closes #1177 #1317
  • publish: Add logging when --skip-git or --skip-npm are passed (#1319) (8eef9ff)

3.0.0-beta.2 (2018-03-10)

Bug Fixes

  • Move @lerna/has-dependency-installed into commands/bootstrap/lib (c09ccbd)

Features

  • Rename @lerna/fs-utils => @lerna/rimraf-dir (30451ed)
  • Replace @lerna/fs-utils dependency with fs-extra (9c35a86)
  • Replace @lerna/match-package-name with multimatch (423f82c)
  • filter-packages: Simplify method signature (47e1c86)

BREAKING CHANGES

  • filter-packages: The parameters to filterPackages() have changed:
    • Two lists (include, exclude) have replaced the destructured config object

3.0.0-beta.1 (2018-03-09)

Bug Fixes

  • conventional-commits: output version bump message closer to version heading (64916d6)
  • filter-options: require a git repo when using --since (d21b66e), closes #822
  • init: lerna init does not, in fact, require git (d1d69c7)
  • publish: Checkout manifest changes serially (ce4a4b1)
  • publish: default root manifest name when missing (a504d7e), closes #1305
  • publish: guard against undefined tag (d8ce253), closes #1311
  • publish: Respect pkg.publishConfig.tag (04b256a), closes #1311
  • publish: work around yarn "link:" intransigency (ddfb517)

Features

  • collect-packages: simplify signature (39170cf)
  • diff: filter diff output with --ignore-changes (c27c2e0)
  • filter-options: Exclude private packages with --no-private (6674d18)

BREAKING CHANGES

  • collect-packages: Formerly a config object, it is now two parameters, only the first of which (rootPath) is required. The second parameter is a list of package location globs, defaulting to lerna's default of ["packages/*"].

v3.0.0-beta.0 (2018-03-07)

This is the first lerna release published by lerna itself. 🎉

💥 Breaking Change

  • #1307 Convert lerna/lerna into a lerna-based monorepo. (@evocateur)

  • Rename lerna publish flag --ignore to --ignore-changes (8c92956)

    This resolves previous ambiguity as to what exactly was intended by the "ignore" config for lerna publish, which was not intended to be identical to the filtering option --ignore.

    The old option will still work when found in lerna.json config, but it is recommended to migrate to the new option name to ensure future compatibility.

🚀 Enhancement

Committers: 1

v3.0.0-alpha.3 (2018-03-03)

🐛 Bug Fix

💅 Polish

Committers: 1

v3.0.0-alpha.2 (2018-03-02)

🐛 Bug Fix

  • Sort packages correctly (2ead3107)
  • Don't resolve relative links in private packages (04760f38)

💅 Polish

  • Disable progress in commands that only output lists (e91c9f2c)

v3.0.0-alpha.1 (2018-02-28)

💥 Breaking Change

🏠 Internal

Committers: 1

v3.0.0-alpha.0 (2018-02-14)

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

📝 Documentation

  • #1248 Document another potential cause of git initialization failure. (@fritz-c)
  • #1250 Add guide for debugging Jest tests with VS Code. (@millermatt)

🏠 Internal

Committers: 9

v2.7.2 (2018-01-16)

🚀 Enhancement

🐛 Bug Fix

Committers: 2

v2.7.1 (2018-01-16)

🐛 Bug Fix

  • #1194 Treat 'lerna run test' like any other command. (@tkrotoff)
  • #1199 Fix import command so it works if Lerna root is a subdir of git root. (@RoystonS)
  • #1204 Avoid interactive prompt during yarn publish. (@evocateur)

Committers: 3

v2.7.0 (2018-01-12)

🚀 Enhancement

🐛 Bug Fix

  • #1187 Completely ignore peerDependencies during publish. (@evocateur)
  • #1193 Throw error when lerna.json or package.json have invalid syntax. (@evocateur)

📝 Documentation

🏠 Internal

Committers: 7

v2.6.0 (2018-01-08)

Happy 2018! 🎉

🚀 Enhancement

🐛 Bug Fix

  • #1134 Normalize path used for git add in respect to OS/environment. (@zenflow)
  • #1129 Throw error in bootstrap when Yarn workspaces is misconfigured. (@evocateur)
  • #1101 Set chmod for linked binaries. (@marionebl)
  • #1112 Use all packages locations when resetting canary changes. (@jwickens)
  • #1115 Keep non-patch subject parts when importing repository. (@koenpunt)

📝 Documentation

Committers: 10

v2.5.1 (2017-11-01)

A quick bugfix for an overlooked case in lerna add.

🐛 Bug Fix

Committers: 1

v2.5.0 (2017-11-01)

A new command (lerna add), new flags for bootstrap and link commands, and a much-improved experience when publishing "final" releases after a series of prereleases!

🚀 Enhancement

  • #1069 Implement lerna add <pkg>[@version] [--dev]. (@marionebl)
  • #1077 Republish prereleased packages during subsequent non-prerelease publish. (@spudly)
  • #1078 Generate root changelog in fixed mode. (@ZauberNerd)
  • #1081 Warn during bootstrap when two or more packages have the same package.json name. (@amfio)
  • #1082 Add --force-local to link command. (@jiverson)
  • #1087 Add --reject-cycles to bootstrap, logging packages when found. (@mitchhentges)

🐛 Bug Fix

📝 Documentation

🏠 Internal

  • #1080 Add test for skipping empty patches during import --flatten. (@gyoshev)
  • #1092 Make integration tests less flaky on Windows. (@evocateur)

Committers: 11

v2.4.0 (2017-10-05)

I inadvertently made lerna bootstrap --hoist really slow in v2.3.0, so that's fixed. Big thanks to all the contributors!

🚀 Enhancement

🐛 Bug Fix

  • #1044 Throw publish validation errors before version selection. (@evocateur)
  • #1047 Remove git requirement from link command. (@jiverson)
  • #1051 When hoisting, only install with --global-style in leaf nodes, not root. (@evocateur)
  • #1054 Set process.exitCode instead of calling process.exit(code). (@evocateur)

💅 Polish

📝 Documentation

Committers: 4

v2.3.1 (2017-10-03)

This is what happens when you forget to pull from upstream before publishing.

💅 Polish

Committers: 1

v2.3.0 (2017-10-03)

New options for lerna import and lerna publish, set --loglevel from lerna.json, and more!

🚀 Enhancement

  • #1019 Add --flatten option to use when merge conflicts cannot be imported. (@dmaksimovic)
  • #1026 Add --allow-branch option to restrict publish to designated branches. (@FaHeymann)
  • #1029 Call version lifecycle scripts during publish. (@cwmoo740)
  • #1030 Add runScriptSync for use in version lifecycle methods. (@cwmoo740)

🐛 Bug Fix

📝 Documentation

🏠 Internal

  • #1038 Rename npmPublishAsPrerelease to npmPublish to avoid confusion. (@Hypnosphi)

Committers: 7

v2.2.0 (2017-09-15)

A new command, tweaks to logging and init scaffolding, and documentation!

🚀 Enhancement

📝 Documentation

  • #985 Update installation instructions to match lerna init behavior. (@sapegin)
  • #1011 Add shield example to README.md. (@mfix22)

Committers: 5

v2.1.2 (2017-08-29)

More bugfixes, plus support for the prepare lifecycle script found in npm 4+.

🚀 Enhancement

  • #979 Run "prepare" lifecycle script during bootstrap. (@Andarist)

🐛 Bug Fix

  • #992 Fix --conventional-commits recommending already released version. (@jezzay)
  • #993 Fix silly level log output for --conventional-commits. (@jezzay)
  • #996 Only diff package locations, not the entire repository. (@evocateur)

🏠 Internal

Committers: 3

v2.1.1 (2017-08-28)

A quick bugfix release to restore a broken lerna publish --canary, as reported in #989. Many thanks to all who pitched in to identify the issue!

🐛 Bug Fix

  • #990 Use yargs parser in unit tests for greater fidelity. (@evocateur)

Committers: 1

v2.1.0 (2017-08-24)

🚀 Enhancement

  • #922 Support --conventional-commits in fixed versioning mode. (@jezzay)
  • #960 Improve support for semver prerelease identifiers when publishing. (@shawnbot)

🐛 Bug Fix

📝 Documentation

  • #921 Fixed spelling mistake in a comment for Command.js. (@dlmr)
  • #978 Add root package.json and CI setup sections to FAQ. (@Andarist)
  • #981 Add troubleshooting info for GitHub lightweight tags. (@jezzay)

🏠 Internal

Committers: 11

v2.0.0 (2017-07-06)

🎉 It's happening! 🎉

💥 Breaking Change

  • #904 Improved --canary functionality. (@Craga89) --canary now bumps the generated version to the next semver minor, and accepts a value (e.g. --canary=beta) to override the default "alpha" tag.

🚀 Enhancement

  • #899 Support Yarn workspaces to replace bootstrap command. (@bestander)
  • #834 Pass extra arguments to npmClient during bootstrap. (@xaka)
  • #873 Add root path dir environment variable to lerna run. (@yisraelx)
  • #822 Add --since flag to all commands that accept --scope. (@treshugart)
  • #806 Allow custom yarn mutex from lerna.json config. (@ChristopheVandePoel)
  • #868 lerna run: Don't error if no scoped packages are matched. (@ricky)
  • #835 Flag for exec to bail upon child execution error. (@rsolomon)

🐛 Bug Fix

📝 Documentation

🏠 Internal

Committers: 15

v2.0.0-rc.5 (2017-05-22)

This is the last release candidate.

We need to fix #789 before we can release v2.0.0. All contributions are appreciated!

💥 Breaking Change

  • #807 Change exit codes for updated and publish. (@koddsson)

    It is now possible to run lerna publish in CI unconditionally, only publishing when changes are actually detected, and never failing when it decides to not publish anything.

    Previously:

    • lerna publish when there are no updates to publish would throw an error
    • lerna updated when there are no updates would exit 0, making it ineffective as a chained filter (e.g., lerna updated && lerna publish)

    Now:

    • lerna publish when there are no updates is a no-op, exiting successfully with a helpful log message
    • lerna updated when there are no updates will exit non-zero (but not throw an error), enabling it to be an effective filter

🚀 Enhancement

  • #726 Add --only-updated option to exec and run subcommands. (@jameslnewell)

    When executing a script or command, only run the script or command on packages that have been updated since the last release. A package is considered "updated" using the same rules as lerna updated.

    lerna exec --only-updated -- ls -la
    lerna run --only-updated test
    • #795 Add --parallel flag to lerna exec. (@evocateur)

      With this flag, lerna exec will run the command in all filtered packages in parallel, completely ignoring concurrency and topological sorting.

      # transpile modules in all packages as changes occur
      lerna exec -- babel src -d lib -w
      
      # transpile watched modules only in package-foo
      lerna exec --scope package-foo -- babel src -d lib -w

      It is advised to constrain the scope of the command when running with this flag, as spawning dozens of subprocesses may be harmful to your shell's equanimity (or maximum file descriptor limit, for example). YMMV

  • #796 Add --parallel flag to lerna run. (@evocateur)

    This allows simpler invocation of watch scripts, with the caveat that concurrency and topological sorting are completely ignored. This is generally the intention when calling lerna run watch and other similar script targets, hence the additional flag.

    # the following commands are equivalent
    lerna run watch --concurrency=1000 --stream
    lerna run watch --parallel

    Package filtering (--scope and --ignore) is still available when this new flag is being used, and it is advised to narrow the scope of parallel execution when you have more than a dozen packages or so (YMMV).

  • #803 Skip git repo check by default in Commands which do not rely on git. (@noherczeg)

  • #824 Add json output to ls and updated commands. (@ricky)

    When run with --json, lerna updated and lerna ls will return an array of objects in the following format:

    [
      {
        "name": "package",
        "version": "1.0.0",
        "private": false
      }
    ]
  • #829 Prefix piped streams with rotating colors. (@evocateur)

🐛 Bug Fix

🏠 Internal

Committers: 6

v2.0.0-rc.4 (2017-04-27)

Now with less bugs! The --hoist flag works again, among other rc.3 bugfixes, and our logging is much more detailed now.

💥 Breaking Change

🚀 Enhancement

🐛 Bug Fix

💅 Polish

📝 Documentation

🏠 Internal

Committers: 3

v2.0.0-rc.3 (2017-04-18)

Barring show-stopping bugs, our goal is to cut v2.0.0 later this week. Big props to all of our brave users riding the bleeding edge of release candidates and reporting issues!

🐛 Bug Fix

lerna bootstrap --npmClient=yarn should no longer require --concurrency=1 to avoid yarn cache race conditions.

If you've ever encountered the error Error: spawn rimraf ENOENT, this should fix that. Turns out yarn doesn't match a behavior of npm when installing, and does not symlink transitive dependency binaries.

🏠 Internal

Committers: 2

v2.0.0-rc.2 (2017-04-13)

Inching ever closer to 🏁 v2.0.0!

Highlights: lerna exec learned some new tricks (thanks to execa), and multi-line commit messages on Windows should now work.

$ lerna exec echo \$LERNA_PACKAGE_NAME
# note the escaped $, so it evaluates in the subshell, not the current shell

Ever get tired of repeating yourself in all of the package deps with devDependencies on babel-cli or rimraf? Now, all you need to do is have them installed in the root, and the following replaces all that duplicate code:

$ lerna exec rimraf lib
$ lerna exec babel -- src -d lib

The -- is still useful for hiding args from lerna, but it isn't always necessary now. In the example above, I had to hide the -d from lerna's arg parser, but positional arguments are just fine. When in doubt, always append the command you want to run (e.g., babel src -d lib) after the --, after all other arguments to lerna exec.

🚀 Enhancement

lerna --help is a bit cleaner now

Usage: lerna <command> [options]

Commands:
  bootstrap                Link local packages together and install remaining package dependencies
  clean                    Remove the node_modules directory from all packages.
  diff <pkg>               Diff all packages or a single package since the last release.
  exec <command> [args..]  Run an arbitrary command in each package.
  import <pathToRepo>      Import the package in <pathToRepo> into packages/<directory-name> with commit history.
  init                     Create a new Lerna repo or upgrade an existing repo to the current version of Lerna.
  ls                       List all public packages
  publish                  Publish packages in the current project.
  run <script> [args..]    Run an npm script in each package that contains that script.
  updated                  Check which packages have changed since the last publish.

Global Options:
  --loglevel                       What level of logs to report.  [string] [default: "info"]
  --concurrency                    How many threads to use if lerna parallelises the tasks.  [number] [default: 4]
  --scope                          Restricts the scope to package names matching the given glob.
                                   (Only for 'run', 'exec', 'clean', 'ls', and 'bootstrap' commands)  [string]
  --ignore                         Ignore packages with names matching the given glob.
                                   (Only for 'run', 'exec', 'clean', 'ls', and 'bootstrap' commands)  [string]
  --include-filtered-dependencies  Include all transitive dependencies when running a command, regardless of --scope or --ignore.
  --registry                       Use the specified registry for all npm client operations.  [string]
  --sort                           Sort packages topologically (all dependencies before dependents)  [boolean] [default: true]
  -h, --help                       Show help  [boolean]
  -v, --version                    Show version number  [boolean]

When a command fails, all logs are written to lerna-debug.log in the current working directory.

For more information, find our manual at https://github.com/lerna/lerna

Targeted command help: lerna bootstrap --help

lerna bootstrap

Global Options:
  --loglevel                       What level of logs to report.  [string] [default: "info"]
  --concurrency                    How many threads to use if lerna parallelises the tasks.  [number] [default: 4]
  --scope                          Restricts the scope to package names matching the given glob.
                                   (Only for 'run', 'exec', 'clean', 'ls', and 'bootstrap' commands)  [string]
  --ignore                         Ignore packages with names matching the given glob.
                                   (Only for 'run', 'exec', 'clean', 'ls', and 'bootstrap' commands)  [string]
  --include-filtered-dependencies  Include all transitive dependencies when running a command, regardless of --scope or --ignore.
  --registry                       Use the specified registry for all npm client operations.  [string]
  --sort                           Sort packages topologically (all dependencies before dependents)  [boolean] [default: true]
  -h, --help                       Show help  [boolean]
  -v, --version                    Show version number  [boolean]

Options:
  --hoist       Install external dependencies matching [glob] to the repo root  [string] [default: '**']
  --nohoist     Don't hoist external dependencies matching [glob] to the repo root  [string]
  --npm-client  Executable used to install dependencies (npm, yarn, pnpm, ...)  [string]

We've got plenty of room to grow our documentation, PRs welcome!

🐛 Bug Fix

📝 Documentation

  • #748 Reference conventionalcommits.org website in README. (@bcoe)
  • #751 Update README.md and docs to better explain hoisting. (@kylecordes)

If you've ever had a question about hoisting, read @kylecordes's brilliant docs here!

🏠 Internal

Committers: 5

v2.0.0-rc.1 (2017-04-07)

A silent (but deadly) bug slipped into the last release. Many thanks to (@timdp) for discovering it.

🐛 Bug Fix

v2.0.0-rc.0 (2017-04-06)

🎉 It's the first release candidate of v2.0.0! 🎉

Highlights: Jest, CI automation improvements, and tons of internal refactoring!

We've been in "beta" for quite some time, and it's time for our versioning to better communicate changes and guarantee API stability.

Our goal is to focus on a few important bugfixes before pushing the big red button and cutting a v2.0.0 for realsies. Check out the milestone to see if you can help!

💥 Breaking Change

Our apologies if you were using this, but did you know it's been broken since before the first 2.x beta? We have better opportunities in the offing for helping folks reuse parts of our inner logic (a --json flag for lerna ls, perhaps?), and encourage those who have complex needs to join or start discussions in the issues.

🚀 Enhancement

  • #666 Create annotated git tags instead of lightweight tags. (@AlexLandau)
  • #665 Automate CHANGELOG updates and version bumps during publish with --conventional-commits flag. (@bcoe)
  • #607 Increment version by semver keyword with --cd-version flag. (@cif)
  • #641 Add prompts for prerelease versions. (@rtsao)
  • #647 Allow concurrency to be configured via lerna.json. (@gigabo)
  • #635 Switch to Jest. (@evocateur)
  • #714 Refactor unit tests into Jest idioms, adding integration tests. (@evocateur)

🐛 Bug Fix

💅 Polish

  • #655 Actually warn when a matching dependency version is not satisfied. (@evocateur)
  • #674 Appveyor status should reflect master, not latest. (@evocateur)

📝 Documentation

  • #736 Update FAQ.md with publish retry details. (@cdaringe)
  • #693 Add GitHub issue and pull request templates. (@evocateur)
  • #634 Add documentation about "watch" commands next to --no-sort. (@trotzig)

🏠 Internal

Committers: 17

v2.0.0-beta.38 (2017-02-28)

📦 🐈 Initial Yarn support and more!

🚀 Enhancement

  • #605 Add support for pluggable npm clients. (@gigabo)

We'll make yarn the default once we feel that it's more stable.

$ lerna bootstrap --npm-client=yarn
{
  "npmClient": "yarn"
}

Very important fix for Babel that we used in the last release. This prevents a timing issue when publishing where a module will try to download a package that isn't published yet because it is published before it's own dependency is published itself. We used to get many issues from users on non-public npm about "babel-types" not being found.

  • #475 Lerna checks for changes since most recent tag in the current branch (@)

We now check for changes since the most recent tag in the current branch, instead of the most recent tag in entire repository. This allows publishing older versions of a project in maintenance branches, as well as nightly releases from a feature branch.

Additionally, we now ensure that the user is in a non-detached branch because lerna can't publish without a valid git branch.

  • #608 Add a --stream option to the run command. (@gigabo)

Useful to get output for child processes immediately if using lerna run with a watch command

$ lerna run watch --stream

This will not create a temporary dist-tag called lerna-temp when publishing. Useful if your third party proxy doesn't support dist-tags.

$ lerna publish --skip-temp-tag

Defaults to running npm run test and npm run env

  • #598 Durable includeFilteredDependencies config via lerna.json. (@gigabo)
{
  "commands": {
    "bootstrap": {
      "includeFilteredDependencies": true
    }
  }
}
{
  "commands": {
    "run": {
      "sort": false
    }
  }
}
$ lerna publish --registry https://my-private-registry

🐛 Bug Fix

  • #601 Fix --ignore flag when globs are expanded to an array. (@rtsao)
  • #597 Support command config in either "commands" or "command". (@gigabo)
  • #586 Avoid exception after successful lerna diff. (@evocateur)

🏠 Internal

Committers: 11

v2.0.0-beta.37 (2017-02-08)

--include-filtered-dependencies now works with ls,exec,run as well!

  • Fixes an issue with --hoist (from previous release)

🚀 Enhancement

  • #581 Improve support for --include-filtered-dependencies. (@roblg)
  • #576 Install with no arguments. (@gigabo)
  • #569 Short-circuit out of install with no packages. (@gigabo)

🐛 Bug Fix

  • #574 Use correct logger method in Package method.. (@evocateur)
  • #568 Check if directories exist before removing during hoist. (@gigabo)

🏠 Internal

Committers: 5

v2.0.0-beta.36 (2017-02-02)

🐛 Bug Fix

v2.0.0-beta.35 (2017-02-01)

3 new flags:

--no-sort (only for run, exec and bootstrap)

By default, all tasks execute on packages in topologically sorted order as to respect the dependency relationships of the packages in question. Cycles are broken on a best-effort basis in a way not guaranteed to be consistent across Lerna invocations.

Topological sorting can cause concurrency bottlenecks if there are a small number of packages with many dependents or if some packages take a disproportionately long time to execute. The --no-sort option disables sorting, instead executing tasks in an arbitrary order with maximum concurrency.

--hoist (only for bootstrap)

Install external dependencies matching glob at the repo root so they're available to all packages. Any binaries from these dependencies will be linked into dependent package node_modules/.bin/ directories so they're available for npm scripts. If the option is present but no glob is given the default is ** (hoist everything). This option only affects the bootstrap command.

$ lerna bootstrap --hoist

Note: If packages depend on different versions of an external dependency, the most commonly used version will be hoisted, and a warning will be emitted.

This option may also be set in lerna.json with "hoist": true or "hoist": <glob>.

--nohoist (only for bootstrap)

Do not install external dependencies matching glob at the repo root. This can be used to opt out of hoisting for certain dependencies.

$ lerna bootstrap --hoist --nohoist=babel-*

This option may also be set in lerna.json with "nohoist": <glob>.

🚀 Enhancement

  • #507 Automatic hoisting of common dependencies. (@gigabo)
  • #547 Spawn child process for rimraf (speeds up lerna clean). (@roblg)
  • #543 [clean] Support --include-filtered-dependencies flag. (@roblg)
  • #412 Make bootstrap, exec and run commands execute packages in dependency order by default. (@seansfkelley)
  • #373 [Feature] Log stdout when commands fail. Closes #343.. (@seansfkelley)

🐛 Bug Fix

  • #542 Fixes issue: prepublish not running in dependencies with --scope --include-filtered-dependencies. (@roblg)

When running lerna bootstrap --scope foo --include-filtered-dependencies run prepublish task with the same flags.

📝 Documentation

🏠 Internal

Committers: 9

v2.0.0-beta.34 (2017-01-26)

🐛 Bug Fix

Committers: 1

v2.0.0-beta.33 (2017-01-25)

  • Drop Node 0.10/0.12/5
  • Custom publish commit message
  • Publish to a different remote
  • Publish exact versions instead of ^

Breaking change

Enhancement

Override default message with --message or -m

lerna publish -m "chore: Publish"
  • #508 [Feature] Allow git remote to be changed for publish. (@tdanecker)

Use a different git remote other than origin

lerna publish --git-remote upstream
  • #390 [Feature] Adds --include-filtered-dependencies flag for bootstrap command. (@lukebatchelor)

my-component and all of its dependencies will be bootstrapped

lerna bootstrap --scope my-component --include-filtered-dependencies
  • #426 Add support for hidden '--exact' flag. (@L8D)

Use exact versions ("2.1.3") instead of with ^ ("^2.1.3")

lerna publish --exact

Bug fix

  • #458 use message passed as argument to the static method input() in PromptUtilities. (@btiwaree)
  • #483 467: lerna bootstrap succeeds with 0 packages. (@doug-wade)
  • #454 Use close event to wait for spawned processes to finish. (@xaka)

Documentation

Committers: 9

v2.0.0-beta.32 (2017-01-04)

Bug fix

  • #435 Use symlinks with relative paths instead of absolute on non-windows environments (Closes #423).. (@JaapRood)
  • #440 Change testing NODE_ENV to "lerna-test" (Closes #406). (@ryb73)
  • #444 Use correct logger method for warnings. (@evocateur)

Committers: 3

v2.0.0-beta.31 (2016-12-14)

Enhancement

  • #365 Add support for configurable package locations. (@gigabo)

Lerna now supports packages outside of the packages/ directory!

Configured via an array of globs in lerna.json:

{
  "lerna": "2.0.0-beta.31",
  "version": "1.1.3",
  "packages": ["packages/*"]
}

No more confusion about what will actually get published!

example

Adds a --loglevel [silent|error|warn|success|info|verbose|silly] option.

Any logs of a higher level than the setting are shown. The default is "info".

Bug fix

Committers: 15