Skip to content

chore(release): auto npm release workflow for all packages - #30

Merged
mayeedwin merged 3 commits into
mainfrom
chore/release-workflow
Jul 30, 2026
Merged

chore(release): auto npm release workflow for all packages#30
mayeedwin merged 3 commits into
mainfrom
chore/release-workflow

Conversation

@mayeedwin

@mayeedwin mayeedwin commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds .github/workflows/release.yml — a tag-triggered (v*) release workflow that builds, tests, and publishes @conversed/core, @conversed/angular, and @conversed/react in one shot. Also supports workflow_dispatch with a dry_run input for smoke tests.
  • Dist-tag is derived from the version: v*-rc.*rc, otherwise → latest.
  • Auth uses npm Trusted Publishing (OIDC) — no NPM_TOKEN secret is needed. Each @conversed/* package is already configured on npmjs.com to trust this repo's release.yml.
  • Publishes carry npm provenance.
  • Adds scripts/bump-version.sh — bumps root + all three package.json files and the pinned @conversed/core cross-deps in one command, so nothing drifts.
  • A guard step fails fast if the tag doesn't match every package.json version (or if a cross-dep is stale).
  • Creates a GitHub Release on real tag pushes (prereleases marked as such).
  • scripts/release.sh stays as the manual emergency path if CI is down.
  • Updates CONTRIBUTING.md with the new release flow.

Release flow after this lands

./scripts/bump-version.sh 0.0.1-rc.14
pnpm install --lockfile-only
git commit -am "chore(release): prep 0.0.1-rc.14"
# merge to main, then:
git tag v0.0.1-rc.14
git push origin v0.0.1-rc.14

CI does the rest.

Test plan

  • Actions → Release → Run workflow on this branch with dry_run: true. Confirm all three packages run npm publish --dry-run successfully — this proves the OIDC trust setup end-to-end without publishing anything.
  • Review the workflow summary output (mode / dist-tag / dry-run).
  • Merge, then cut v0.0.1-rc.14 as the first live release from CI.

mayeedwin and others added 2 commits July 30, 2026 14:27
Adds .github/workflows/release.yml that builds, tests, and publishes
@conversed/core, @conversed/angular, and @conversed/react on push of
a v* tag (or workflow_dispatch with dry_run for smoke tests).

- Dist-tag derived from the version: prerelease -> rc, otherwise -> latest.
- Npm provenance enabled per publish (id-token: write).
- Version-guard step fails fast on mismatched package.json versions or
  stale @conversed/core cross-deps in react/angular.
- Creates a GitHub Release on real tag pushes; marks prereleases.

Also adds scripts/bump-version.sh to bump all four package.json files
plus pinned cross-deps in one shot, and documents the release flow in
CONTRIBUTING.md. scripts/release.sh stays as the manual emergency path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Drop NODE_AUTH_TOKEN/NPM_TOKEN from publish steps; auth now flows
  through GitHub Actions OIDC via id-token: write.
- Drop registry-url from setup-node (token-auth artifact).
- Upgrade npm on the runner to >= 11.5.1 before publishing (Node 20
  ships an older npm that predates Trusted Publishing support).
- Update CONTRIBUTING.md release note.

Each @conversed/* package is configured on npmjs.com to trust this
repo's release.yml workflow, so no repo secret is required.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@mayeedwin mayeedwin self-assigned this Jul 30, 2026
…IBUTING

New docs/releasing.md covers: the tag-triggered model, why merges do not
publish, Trusted Publishing auth, the full step-by-step (bump → PR →
tag), the dry-run smoke test, the manual emergency path, and the
version scheme.

CONTRIBUTING now just points at the guide instead of duplicating it.
README docs index gains a "Releasing" entry.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@mayeedwin
mayeedwin merged commit 91d54b5 into main Jul 30, 2026
1 check passed
@mayeedwin
mayeedwin deleted the chore/release-workflow branch July 30, 2026 11:45
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