Skip to content

Add semantic-release workflow and config - #2

Open
keyman500 wants to merge 1 commit into
mainfrom
feature/MH-deploy-package
Open

Add semantic-release workflow and config#2
keyman500 wants to merge 1 commit into
mainfrom
feature/MH-deploy-package

Conversation

@keyman500

@keyman500 keyman500 commented Feb 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a dedicated release workflow that runs tests, builds, and invokes semantic-release on merges to main
  • keep the existing publish workflow triggered only by tags, and remove redundant npm auth from it
  • add .releaserc.json plus the semantic-release dev dependencies and update the README install command to the scoped package

Testing

  • Not run (not requested)

Summary by CodeRabbit

  • Documentation

    • Updated package installation command to use the scoped package name @keyman500/voice-ai-sdk.
  • Chores

    • Implemented automated release workflow with semantic versioning for standardized version management.
    • Updated publishing pipeline to trigger on version tags instead of main branch pushes.
    • Added manual workflow trigger capability for publishing.

@coderabbitai

coderabbitai Bot commented Feb 10, 2026

Copy link
Copy Markdown

Walkthrough

The changes implement an automated release pipeline using semantic-release. The publish workflow now triggers on version tags instead of main branch pushes, while a new release workflow analyzes commits on main, generates version numbers and release notes, updates package metadata, and publishes to both GitHub and npm. Package dependencies for semantic-release and its plugins were added.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/publish.yml, .github/workflows/release.yml
Modified publish trigger from main branch to version tags with manual dispatch option and removed inline NODE_AUTH_TOKEN. Added new release workflow that runs on main pushes, executing typecheck, test, build, and semantic-release steps.
Release Configuration
.releaserc.json
Added semantic-release configuration specifying main as release branch, configuring plugins for commit analysis, release notes generation, git commits with package metadata updates, and GitHub publishing.
Package Metadata
package.json
Added devDependencies for semantic-release and associated plugins: commit-analyzer, release-notes-generator, github, npm, and git.
Documentation
README.md
Updated npm installation command from npm install voice-ai-sdk to npm i @keyman500/voice-ai-sdk``.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Hop along the version trail,
Tags and commits tell the tale,
Semantic release takes the lead,
Auto-versioning at speed,
From main to npm, we're set free! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add semantic-release workflow and config' directly and accurately describes the main changes: adding a release workflow and semantic-release configuration files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/MH-deploy-package

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

7-15: ⚠️ Potential issue | 🟡 Minor

Update code samples to use the scoped package name.

Install instructions are scoped, but the examples still import from voice-ai-sdk, which will fail unless an unscoped alias exists. Align all imports with the scoped name.

📝 Suggested documentation update
-import { createVapi, createRetell } from 'voice-ai-sdk';
+import { createVapi, createRetell } from '@keyman500/voice-ai-sdk';

-import { createVapi } from 'voice-ai-sdk';
+import { createVapi } from '@keyman500/voice-ai-sdk';

-import { createRetell } from 'voice-ai-sdk';
+import { createRetell } from '@keyman500/voice-ai-sdk';

-import { ProviderError, NotFoundError, AuthenticationError } from 'voice-ai-sdk';
+import { ProviderError, NotFoundError, AuthenticationError } from '@keyman500/voice-ai-sdk';

-import { defineProvider, createVoiceRegistry, createVapi } from 'voice-ai-sdk';
+import { defineProvider, createVoiceRegistry, createVapi } from '@keyman500/voice-ai-sdk';
🤖 Fix all issues with AI agents
In `@package.json`:
- Around line 49-56: The package.json specifies semantic-release and several
plugins (`@semantic-release/commit-analyzer`,
`@semantic-release/release-notes-generator`, `@semantic-release/github`,
`@semantic-release/npm`) at versions that require Node ≥20.8.1, which may conflict
with the project's declared/minimum Node version; update the project Node engine
constraint (or downgrade those package versions) to ensure compatibility: either
bump the "engines.node" field and any CI images to ">=20.8.1" (or a matching
semver range) or pin the listed dependencies to versions that support Node 18,
and ensure CI/release workflows and docs reflect the chosen minimum.
🧹 Nitpick comments (1)
.github/workflows/release.yml (1)

1-24: Add a concurrency guard to prevent overlapping releases.

Rapid successive pushes to main can start multiple release jobs, which can race on tags and versioning.

🔁 Suggested concurrency config
 on:
   push:
     branches: [main]

+concurrency:
+  group: release-${{ github.ref }}
+  cancel-in-progress: false
+
 jobs:
   release:

Comment thread package.json
Comment on lines 49 to +56
"@types/jest": "^30.0.0",
"jest": "^30.2.0",
"semantic-release": "^23.0.0",
"@semantic-release/commit-analyzer": "^12.0.0",
"@semantic-release/release-notes-generator": "^13.0.0",
"@semantic-release/github": "^10.0.0",
"@semantic-release/npm": "^12.0.0",
"@semantic-release/git": "^10.0.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

semantic-release v23 Node.js version requirements

💡 Result:

I couldn’t reliably extract the exact engines.node range for semantic-release@v23.x from primary sources in this session (GitHub file views weren’t returning the file contents, and npm package pages were blocked). What I can confirm from upstream docs/policy:

  • semantic-release’s current documented Node requirement is Node.js ≥ 22.14.0 (this applies to the current major line, not specifically v23). [1]
  • semantic-release’s support policy is to support Node LTS lines, and they remove EOL Node versions only in a new major. [2]
  • semantic-release v23.1.1 was released May 10, 2024. [3]

Given that policy and the release date, semantic-release@23.x should target the Node LTS versions current at that time (primarily Node 18 and Node 20), but I can’t cite the precise semver range (e.g. >=18.x || >=20.x) without access to the v23 package.json.

How to verify the exact requirement (authoritative): check engines.node in semantic-release@23.x’s package.json on the registry (e.g., via UNPKG for semantic-release@23.1.1), or by inspecting the tag in the repo. [2]

Sources: [1] [2] [3]


🌐 Web query:

@semantic-release/commit-analyzer v12 @semantic-release/release-notes-generator v13 Node.js requirements

💡 Result:

  • @semantic-release/commit-analyzer v12.x: requires Node.js >= 20.8.1 (package.json engines.node). [1]
  • @semantic-release/release-notes-generator v13.x: requires Node.js >= 20.8.1 (package.json engines.node). [2]

Sources: [1] (github.com) [2] (github.com)

Citations:


🌐 Web query:

@semantic-release/github v10 @semantic-release/npmv12@semantic-release/git v10 Node.js version compatibility

💡 Result:

Node.js version compatibility (per each package’s package.json#engines.node):

  • @semantic-release/github v10: Node >= 20.8.1 (v10.0.2 shown) [1]
  • @semantic-release/npm v12: Node >= 20.8.1 (v12.0.1 shown) [2]
  • @semantic-release/git v10: Node >= 14.17 (v10.0.1 shown) [3]

Combined minimum to use them together: Node >= 20.8.1 (because github v10 and npm v12 require it) [1][2]

References: [1] (app.unpkg.com) [2] (app.unpkg.com) [3] (app.unpkg.com)

Citations:


Update Node.js requirement: these semantic-release versions require Node ≥20.8.1, not Node ≥18.

The specified plugin versions (@semantic-release/commit-analyzer@12, @semantic-release/release-notes-generator@13, @semantic-release/github@10, @semantic-release/npm@12) all require Node ≥20.8.1. Confirm this aligns with the project's minimum supported Node version to avoid CI/release failures.

🤖 Prompt for AI Agents
In `@package.json` around lines 49 - 56, The package.json specifies
semantic-release and several plugins (`@semantic-release/commit-analyzer`,
`@semantic-release/release-notes-generator`, `@semantic-release/github`,
`@semantic-release/npm`) at versions that require Node ≥20.8.1, which may conflict
with the project's declared/minimum Node version; update the project Node engine
constraint (or downgrade those package versions) to ensure compatibility: either
bump the "engines.node" field and any CI images to ">=20.8.1" (or a matching
semver range) or pin the listed dependencies to versions that support Node 18,
and ensure CI/release workflows and docs reflect the chosen minimum.

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.

1 participant