Skip to content

feat: implement automated releases with semantic-release#29

Merged
dubscode merged 1 commit intomainfrom
feat/setup-semantic-release
Mar 11, 2026
Merged

feat: implement automated releases with semantic-release#29
dubscode merged 1 commit intomainfrom
feat/setup-semantic-release

Conversation

@dubscode
Copy link
Contributor

@dubscode dubscode commented Mar 11, 2026

Summary

  • What changed?
    Transitioned the release process from manual tag-matching to an automated workflow using semantic-release.
  • Why was this needed?
    To ensure consistent versioning, automated changelog generation, and reliable distribution across npm, GitHub, and Homebrew without manual intervention.

Changes

  • Added semantic-release and its standard plugin suite (commit-analyzer, release-notes-generator, npm, github, exec) to the root project.
  • Created release.config.cjs to manage the release lifecycle, specifically targeting the packages/cli directory for npm publishing.
  • Overhauled .github/workflows/release.yml to trigger on the main branch, incorporating automated versioning and dependency checks.
  • Implemented a polling/retry mechanism in the CI workflow to ensure the npm tarball is available before updating the Homebrew formula.
  • Added a dry_run input to the manual workflow trigger for testing release logic without side effects.

Behavior Impact

  • User-visible changes: Releases will now occur automatically based on Conventional Commits on the main branch.
  • Error message/output changes: CI provides detailed logs from semantic-release regarding version bumps and changelog generation.
  • Stack state or git safety considerations: The workflow now manages git tags and GitHub Releases automatically. It includes a guard to ensure it only runs on the main branch.

Testing

  • pnpm test (Integrated into release workflow)
  • pnpm typecheck (Integrated into release workflow)
  • pnpm checks (Integrated into release workflow)
  • Added/updated tests for changed behavior

Coding Agent Checklist (if used)

  • Agent was given AGENTS.md and relevant .agents/* docs
  • No git worktrees were used
  • Changes are scoped and source-first (src/)

Docs

  • README/QUICKSTART updated (if needed)
  • .agents docs updated (if needed)

Risks / Follow-Ups

  • Risk level: Medium. Incorrect commit messages (e.g., accidental "feat!" or "fix") could trigger unintended version bumps or releases.
  • Follow-up tasks: Ensure NPM_TOKEN and HOMEBREW_TAP_TOKEN are correctly configured in GitHub Secrets. Verify Conventional Commit adherence across the team.

🥞 DubStack

Copilot AI review requested due to automatic review settings March 11, 2026 04:26
@vercel
Copy link

vercel bot commented Mar 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dubstack Ready Ready Preview, Comment Mar 11, 2026 4:27am

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR transitions releases from a manual tag-driven flow to a semantic-release-based automation setup, including npm publishing from packages/cli and a follow-up Homebrew formula update after the npm tarball is available.

Changes:

  • Add semantic-release (+ standard plugins) and a root release.config.cjs targeting packages/cli for npm publishing.
  • Replace the existing tag-triggered GitHub Actions release workflow with a workflow_dispatch-driven semantic-release run plus Homebrew update logic (with retry/polling).
  • Update lockfile for the new release toolchain dependencies.

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
release.config.cjs Defines semantic-release branches/tags and plugin pipeline (npm publish from packages/cli).
.github/workflows/release.yml Implements the new release workflow steps (semantic-release + Homebrew update + retry).
package.json Adds semantic-release and plugin devDependencies.
pnpm-lock.yaml Locks the new release dependency graph.
.beads/dolt-monitor.pid.lock Adds a (currently empty) lockfile under .beads/.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dubscode dubscode merged commit 84da4ce into main Mar 11, 2026
11 checks passed
@dubscode dubscode deleted the feat/setup-semantic-release branch March 11, 2026 04:33
@github-actions
Copy link

🎉 This PR is included in version 1.8.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants