Add semantic-release workflow and config - #2
Conversation
WalkthroughThe 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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
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 | 🟡 MinorUpdate 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
maincan 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:
| "@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", |
There was a problem hiding this comment.
🧩 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-releasev23.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.jsonengines.node). [1] - @semantic-release/release-notes-generator v13.x: requires Node.js
>= 20.8.1(package.jsonengines.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/githubv10: Node >= 20.8.1 (v10.0.2 shown) [1]@semantic-release/npmv12: Node >= 20.8.1 (v12.0.1 shown) [2]@semantic-release/gitv10: 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:
- 1: https://app.unpkg.com/%40semantic-release/github%4010.0.2/files/package.json
- 2: https://app.unpkg.com/%40semantic-release/npm%4012.0.1/files/package.json
- 3: https://app.unpkg.com/%40semantic-release/git%4010.0.1/files/package.json
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.
Summary
releaseworkflow that runs tests, builds, and invokessemantic-releaseon merges tomainpublishworkflow triggered only by tags, and remove redundant npm auth from it.releaserc.jsonplus the semantic-release dev dependencies and update the README install command to the scoped packageTesting
Summary by CodeRabbit
Documentation
Chores