Skip to content

chore: replace lerna with multi-semantic-release and yarn workspaces#1155

Merged
ffflorian merged 9 commits intomainfrom
claude/replace-lerna-setup-ONnAm
Mar 28, 2026
Merged

chore: replace lerna with multi-semantic-release and yarn workspaces#1155
ffflorian merged 9 commits intomainfrom
claude/replace-lerna-setup-ONnAm

Conversation

@ffflorian
Copy link
Copy Markdown
Owner

@ffflorian ffflorian commented Mar 28, 2026

Summary

  • Remove lerna entirely
  • Replace lerna run with yarn workspaces foreach (built into Yarn Berry) for build/test/clean orchestration
  • Replace lerna publish with @qiwi/multi-semantic-release + semantic-release + @ffflorian/semantic-release-config for publishing — only packages whose files changed in a given merge are released; private packages are skipped automatically
  • Add root .releaserc.json extending @ffflorian/semantic-release-config
  • Update CI: fetch-depth: 0 for full git history, GITHUB_TOKEN for semantic-release; OIDC used for npm auth
  • Add AGENTS.md rule: always use pinned versions in package.json

Test plan

  • CI passes (build, lint, test)
  • After merge to main, verify only changed packages are published
  • Verify private packages are never published

- Remove lerna; use `yarn workspaces foreach` for build/test orchestration
- Add @qiwi/multi-semantic-release for selective per-package publishing:
  only packages whose files changed are released on each merge
- Add semantic-release + @ffflorian/semantic-release-config; root .releaserc.json extends it
- Update CI: add fetch-depth: 0, GITHUB_TOKEN, remove manual chore skip
  (semantic-release handles release skipping via conventional commits)
- Remove NPM_TOKEN, OIDC is used for npm auth
- Add AGENTS.md rule: always use pinned versions in package.json
@ffflorian ffflorian force-pushed the claude/replace-lerna-setup-ONnAm branch from 9b6e3e3 to 545125c Compare March 28, 2026 16:20
claude added 4 commits March 28, 2026 16:26
Yarn 4 requires --all (-A) when running foreach without a worktree
or recursive scope. Also update AGENTS.md to require running
build and tests after every change.
…te recursion

Root has 'test' and 'clean' scripts that call foreach again, causing
an infinite loop when --all (-A) includes the root workspace.
Replace @qiwi/multi-semantic-release with zx-bulk-release for
monorepo-aware per-package publishing. Update CI to use GH_TOKEN
and npm_config_yes=true as required by zx-bulk-release.
@ffflorian ffflorian changed the title build: replace lerna with multi-semantic-release and yarn workspaces build: replace lerna with zx-bulk-release and yarn workspaces Mar 28, 2026
claude added 2 commits March 28, 2026 17:25
zx-bulk-release has its own versioning engine with no dependency on
semantic-release. Remove semantic-release, @semantic-release/changelog,
@semantic-release/git, @ffflorian/semantic-release-config, and .releaserc.json.
Replace zx-bulk-release with @qiwi/multi-semantic-release + semantic-release
+ @ffflorian/semantic-release-config. Restore .releaserc.json and
GITHUB_TOKEN in CI.
@ffflorian ffflorian changed the title build: replace lerna with zx-bulk-release and yarn workspaces build: replace lerna with multi-semantic-release and yarn workspaces Mar 28, 2026
claude and others added 2 commits March 28, 2026 18:21
…dep versions

Replace @qiwi/multi-semantic-release with multi-semantic-release (dhoulb).
Change my-timezone's ntpclient dependency to * — multi-semantic-release
replaces it with the correct version at publish time.
Add --ignore-private-packages flag to release script.
@ffflorian ffflorian changed the title build: replace lerna with multi-semantic-release and yarn workspaces chore: replace lerna with multi-semantic-release and yarn workspaces Mar 28, 2026
@ffflorian ffflorian merged commit 7dc3199 into main Mar 28, 2026
4 checks passed
@ffflorian ffflorian deleted the claude/replace-lerna-setup-ONnAm branch March 28, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants