Skip to content

ci: replace auto and lerna with release-please#2689

Open
jackw wants to merge 14 commits into
mainfrom
jackw/release-please
Open

ci: replace auto and lerna with release-please#2689
jackw wants to merge 14 commits into
mainfrom
jackw/release-please

Conversation

@jackw
Copy link
Copy Markdown
Collaborator

@jackw jackw commented May 29, 2026

What this PR does / why we need it:

Bye bye auto. 🤖 Bye bye lerna. 🐉 Bye bye labels. 🏷️ 👋 👋 👋

PR 3 of the Auto → release-please migration epic. Replaces Auto with googleapis/release-please-action@v4 driving a PR-driven release lifecycle. release-please opens a long-running release PR; merging it triggers per-package tags, GitHub Releases, and staged npm publishing via OIDC.

Changes in scope:

  • Adds release-please-config.json declaring the 10 published packages, with the node-workspace plugin for cross-package dep updates, tag-separator: "@" to preserve the existing @grafana/<pkg>@<version> tag format, and bump-minor-pre-major: true to mimic Auto's 0.x behaviour
  • Adds .release-please-manifest.json seeded from current npm-registry versions
  • Adds .github/workflows/release-please.yml — runs release-please-action; on releases (gated by gh env requiring review from frontend-platform or catalog team member), builds, runs npm stage publish, posts a Slack notification with links to GH releases + npm pages
  • Adds .github/workflows/check-release-config.yml — fails PRs that touch packages/** without a matching entry in release-please-config.json
  • Removes the release job from .github/workflows/ci.yml
  • Drops auto, @auto-it/*, and lerna devDeps; hoists nx as a direct devDep (was transitive via Lerna)
  • Deletes .autorc, lerna.json, root CHANGELOG.md
  • Rewrites CONTRIBUTING.md "Create A Release" section for the new flow + Conventional Commit PR-title convention
  • Bumps AGENTS.md tech-stack line Nx >=21Nx >=22 to match the installed major

Which issue(s) this PR fixes:

related: #2685

Special notes for your reviewer:

@jackw jackw self-assigned this May 29, 2026
@jackw jackw requested review from a team as code owners May 29, 2026 15:32
@jackw jackw added the chore Other changes that don't modify src or test files label May 29, 2026
@jackw jackw requested a review from mckn May 29, 2026 15:32
@jackw jackw added the ci label May 29, 2026
@jackw jackw requested review from oshirohugo and wbrowne May 29, 2026 15:32
@jackw jackw requested review from eledobleefe and hugohaggmark May 29, 2026 15:32
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

Hello! 👋 This repository uses Auto for releasing packages using PR labels.

✨ This PR can be merged. It will not be considered when calculating future versions of the npm packages and will not appear in the changelogs.

@jackw jackw added the no-changelog Don't include in changelog and version calculations label May 29, 2026
@jackw jackw moved this from 📬 Triage to 🔬 In review in Grafana Catalog Team May 29, 2026
tolzhabayev
tolzhabayev previously approved these changes May 29, 2026
Comment thread .github/workflows/release-please.yml Outdated
persist-credentials: false

- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
if: ${{ steps.release.outputs.releases_created }}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dealer's choice, but I think this would be less prone to mistakes if everything gated behind steps.release.outputs.releases_created was in a separate job:

  • workflow has two jobs: release-please and release
  • release-please:
    • runs just the googleapis/release-please-action action
    • it has an output of releases_created
  • release:
    • depends on the release-please job with needs: release-please
    • and it only runs if it created a release - if: jobs.release-please.outputs.releases_created
  • that way all the individual steps don't need the if: ... on them which could be error prone

thoughts?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I did this so we can gate release/stage behind a gh env. Two birds with one stone! 👍

Copy link
Copy Markdown
Contributor

@joshhunt joshhunt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice. lgtm!

Comment thread .github/workflows/release-please.yml Fixed
Comment thread release-please-config.json Outdated
"release-type": "node",
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": false,
"include-component-in-tag": false,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

include-component-in-tag: false would work? I think it might strip the component name out and lead to generic v7.x tags

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe rather "include-v-in-tag": false

Comment thread package.json Outdated
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this can probably be removed

Comment thread .github/workflows/release-please.yml Outdated

publish:
needs: release
if: ${{ needs.release.outputs.releases_created }}
Copy link
Copy Markdown
Collaborator

@tolzhabayev tolzhabayev May 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if: ${{ needs.release.outputs.releases_created }}
if: ${{ needs.release.outputs.releases_created == 'true' }}

branches: [main]

jobs:
release:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should probably also get a concurrency group

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Other changes that don't modify src or test files ci no-changelog Don't include in changelog and version calculations

Projects

Status: 🔬 In review

Development

Successfully merging this pull request may close these issues.

4 participants