lerna / lerna/lerna

How to manage tags when using the independent strategy.

Open
#2,426 2 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
36.1k
Forks
2.3k
Avg merge
1d 4h
Merged PRs (30d)
50

Description

I'm looking into monorepos and Lerna as an option for some upcoming work and running into a bit of a snag when it comes to using the independent option for managing packages and deployments with --conventional-commits. I've looked at a few open source examples that are using Lerna with the independent option (i.e. materia-ui) and noticed that their tagging, releases, and changelogs are all being grouped under a top level (vX.x.x) tag structure rather than per package (package-name@X.x.x). Is this something that Lerna supports and in the documentation somewhere?

Additionally is CI/CD options for managing deployments still not a recommended or supported option with Lerna? I'm looking for something similar to semantic-release functionality and support but not finding much guidance in your documentation around this.

lerna.json

{
  "version": "independent",
  "npmClient": "yarn",
  "packages": ["packages/*"],
  "useWorkspaces": true,
  "command": {
    "publish": {
      "allowBranch": [
        "master",
        "next",
        "alpha",
        "beta",
        "[0-9].x",
        "[0-9][0-9].x",
        "[0-9][0-9][0-9].x",
        "[0-9][0-9][0-9][0-9].x"
      ],
      "message": "chore: publish package",
      "ignoreChanges": ["*.md", "*.mdx", "*.json", "docs", "package.json"],
      "conventionalCommits": true
    },
    "init": {
      "exact": true
    }
  }
}

Context

Looking to be able automate our monorepo package deployments via Github Actions rather than manually to minimize error. Also looking to support patching a previous major release so we can support multiple majors for our team.

Your Environment

Executable Version
lerna --version 3.20.2
npm --version 6.13.4
yarn --version 1.21.1
node --version 10.15.3
OS Version
macOS Sierra 10.15.2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked lerna.json configuration and compare the referenced Material UI tags, releases, and changelog. Review the documentation for independent versioning, conventional commits, and publish workflows, then document whether per-package tags and GitHub Actions deployments are supported, including what a completed guidance update should cover.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, node.js, typescript
Domain
ci-cd, documentation, release
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.