microsoft / microsoft/beachball

Weird behavior with `lerna link convert`

Open
#542 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs repro
Dominant language
TypeScript
Stars
815
Forks
93
Avg merge
2d 13h
Merged PRs (30d)
12

Description

We tried using the lerna link convert command, which apparently puts links in the root (workspace) package.json:

{
  "name": "root",
  "private": true,
  "devDependencies": {
    ...
  },
  "workspaces": [
    "src/*"
  ],
  "dependencies": {
    "@scope/pkg-a": "file:src/pkg-a",
    "@scope/pkg-b": "file:src/pkg-b"
  }
}

When beachball publish runs, it adds a changelog entry for the root package:

{
  "name": "root",
  "entries": [
    {
      "date": "Fri, 25 Jun 2021 14:04:42 GMT",
      "tag": "root_vundefined",
      "comments": {
        "none": [
          {
            "comment": "Bump root to vundefined",
            "author": "...",
            "commit": "...",
            "package": "root"
          }
        ]
      }
    }
  ]
}

Just FYI if others may encounter the same issue. We removed the root deps on the monorepo packages (the file: links). I don't know much about lerna link convert, but ideally beachball would detect this configuration and ignore the root package?

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 by tracing how beachball publish discovers packages and creates changelog entries when the workspace root has file: links to monorepo packages. Reproduce the configuration from the issue, then verify that publishing no longer creates a root entry with an undefined version while normal package changelogs still work.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
release, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.