Skip to content

feat(release): add semantic release automation#375

Merged
mrgoonie merged 4 commits into
mainfrom
feat/automated-semantic-release
Jun 22, 2026
Merged

feat(release): add semantic release automation#375
mrgoonie merged 4 commits into
mainfrom
feat/automated-semantic-release

Conversation

@mrgoonie

Copy link
Copy Markdown
Contributor

Summary

  • add semantic-release config for stable releases from main and beta prereleases from dev
  • add GitHub Actions release workflow that installs/builds the Bun CLI, publishes uipro-cli, creates GitHub releases, and updates changelog/version files
  • add version sync script for skill.json, Claude plugin metadata, marketplace metadata, and CLI manifests
  • document Conventional Commit release rules and required NPM_TOKEN

Release behavior

  • dev -> beta prerelease, npm beta dist-tag, GitHub prerelease
  • main -> stable release, npm latest dist-tag, GitHub release
  • Conventional Commits drive semantic bumps and generated changelog

Verification

  • node --check scripts/sync-release-version.mjs
  • node -e "JSON.parse(require('fs').readFileSync('.releaserc.json','utf8'))"
  • node scripts/sync-release-version.mjs 9.8.7-beta.1 then verified all 7 version fields changed
  • restored versions to 2.5.0
  • git diff --check

Notes

  • Repository must define NPM_TOKEN with publish access to uipro-cli before the workflow can publish npm packages.
  • Local CLI build was not run here because this runner has no bun; the workflow installs Bun via oven-sh/setup-bun.

@mrgoonie

Copy link
Copy Markdown
Contributor Author

Summary: This PR is the right direction for the release/publishing gap, but it is not merge-ready because the release job can publish npm using an unverified package and the repo CI is still red on an existing missing-file workflow.

Risk level: High

Mandatory gates:

Findings:

  • Important: .github/workflows/release.yml runs npm ci, bun run build, and semantic-release npm publish, but never verifies that cli/assets/** is synced with src/ui-ux-pro-max/**. CLAUDE.md explicitly requires copying src/ui-ux-pro-max/data, scripts, and templates into cli/assets before publishing. The current main already shows drift in src/ui-ux-pro-max/templates/platforms/roocode.json vs cli/assets/templates/platforms/roocode.json (16 stacks vs 15 stacks), so this workflow could publish a stale package while reporting a successful release. Please add a pre-publish sync/check gate, or make the release workflow perform the sync and commit the generated asset changes before npm publish.
  • Important: The visible build-linux check fails with EnvironmentFileNotFound: '/home/runner/work/ui-ux-pro-max-skill/ui-ux-pro-max-skill/environment.yml' file not found. Even if that workflow predates this PR, merge should wait until this repo-level CI blocker is removed or scoped so the release change lands on a green baseline.

Verdict: REQUEST_CHANGES

@mrgoonie mrgoonie added agent:github-maintain Processed by github-maintain automation pr:reviewed PR reviewed by maintain workflow pr:changes-requested Maintain review requested changes maintain:blocked Blocked by external condition or maintainer action labels Jun 22, 2026
@mrgoonie

Copy link
Copy Markdown
Contributor Author

Summary: I re-reviewed the updated semantic-release PR after the new head SHA. It improves the scope by documenting that this only creates GitHub releases and no longer claims npm publishing, but it is still not merge-ready because the generated release tag would still omit the built CLI package artifact and the repository CI remains red.nnRisk level: MediumnnMandatory gates:n- Duplicate/prior implementation: overlap remains with #349 and release/package issues #353/#362; this PR is still the cleaner semantic-release path, but it does not solve npm distribution by itself.n- Project standards: issue found — release/version metadata is updated, but the release workflow does not verify or attach the built CLI package contents.n- Strategic necessity: clear value — automated GitHub releases and changelog/version sync are useful foundation work for the stale package/release gap.n- CI/checks: failing — build-linux is still failing on the missing environment.yml workflow.nnFindings:n- Important: .github/workflows/release.yml builds the CLI in cli/ and semantic-release creates a GitHub release, but .releaserc.json only configures @semantic-release/github with no assets. That means the GitHub release will not include the built CLI output/package archive, so users still cannot get a verified install artifact from the release. Please either attach an explicit packaged artifact/checksum to the GitHub release or document why GitHub releases are metadata-only and keep the npm/package publishing fix in a separate PR.n- Important: the visible build-linux check still fails with EnvironmentFileNotFound: '/home/runner/work/ui-ux-pro-max-skill/ui-ux-pro-max-skill/environment.yml' file not found. Merge should wait until the repo has a green baseline or that broken Conda workflow is removed/scoped.nnVerdict: REQUEST_CHANGES

@clark-cant clark-cant left a comment

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.

Re-review after new commits: CI blocker resolved (conda workflow removed), npm publishing explicitly disabled, README updated with release docs. The remaining concern about CLI artifacts not being attached to GitHub releases is a nice-to-have follow-up, not a blocker for metadata-only semantic-release. Approving as merge-ready foundation work.

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

Labels

agent:github-maintain Processed by github-maintain automation maintain:blocked Blocked by external condition or maintainer action pr:changes-requested Maintain review requested changes pr:reviewed PR reviewed by maintain workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants