Skip to content

chore: take over publishing with release-please#4

Closed
luke-speechify wants to merge 1 commit into
masterfrom
chore/release-please-takeover
Closed

chore: take over publishing with release-please#4
luke-speechify wants to merge 1 commit into
masterfrom
chore/release-please-takeover

Conversation

@luke-speechify

Copy link
Copy Markdown
Collaborator

What

Replace the legacy tag-driven ci.yml publish flow with release-please as the single owner of versioning, changelogs, and npm publishes — matching the pattern already in place on speechify-api-sdk-python.

Why

ci.yml ran npm publish on refs/tags/*, which meant publishes were driven by hand-cut git tags (or by whichever upstream tooling created them). That leaves no changelog, no automated semver decisions from conventional commits, and no checked-in record of what was released and when. Moving to release-please gives us:

  • A PR-based release flow (open / merge a chore(master): release <next> PR to ship)
  • Conventional-commit-driven semver bumps
  • Auto-generated CHANGELOG.md
  • One single workflow that gates publish on release_created == 'true' rather than tag shape

What changes

New release-please artifacts

Workflow swap

  • Delete .github/workflows/ci.yml.
  • Add .github/workflows/release-please.yml: compile and test run on every push and PR; release-please runs on push to master; publish (npm publish --provenance --access public) runs when needs.release-please.outputs.release_created == 'true'. Provenance still flows through the existing GitHub OIDC trusted publisher on npm (no NPM_TOKEN needed).

In-repo version realignment to the published 1.0.1

  • package.json 1.0.21.0.1
  • src/version.ts SDK_VERSION = "1.0.2""1.0.1" and add the x-release-please-version marker so release-please can bump it
  • 93 X-Fern-SDK-Version literals across src/api/resources/**/Client.ts 1.0.21.0.1

Fern ignore expansion

  • .fernignore now lists the release-please artifacts, the deleted ci.yml, and src/version.ts so Fern regen does not wipe the marker — mirrors the Python SDK pattern.

Verification

$ yarn build
… Done in 1.85s.

$ yarn test
Test Suites: 41 passed, 41 total
Tests:       255 passed, 255 total

Known follow-up (not in this PR's scope)

The 93 X-Fern-SDK-Version literals in the generated src/api/resources/**/Client.ts files are emitted by Fern's TS generator with the version Fern thinks it is publishing. The next Fern regen will overwrite them again. Either the Fern generator template needs to read version from package.json / the release-please manifest, or the generated clients need to import SDK_VERSION from src/version.ts instead of inlining the literal. That lives outside this repo.

Replaces the legacy tag-driven ci.yml publish flow with release-please as
the single owner of versioning, changelogs, and npm publishes — matching
the pattern already in place on speechify-api-sdk-python.

What changes:
- Add release-please-config.json (release-type node, package @speechify/api,
  extra-files tracks src/version.ts via the x-release-please-version marker)
- Add .release-please-manifest.json pinned to 1.0.1 (the current npm latest)
- Add .github/workflows/release-please.yml: compile + test on every push/PR,
  then release-please on master, then npm publish --provenance --access public
  via the existing GitHub OIDC trusted publisher (no NPM_TOKEN needed)
- Remove .github/workflows/ci.yml; the new workflow covers compile, test,
  and publish
- Realign in-repo version literals to the actually-published 1.0.1:
  - package.json 1.0.2 -> 1.0.1
  - src/version.ts SDK_VERSION 1.0.2 -> 1.0.1 (and add the
    x-release-please-version marker so release-please can bump it)
  - 93 X-Fern-SDK-Version literals across src/api/resources/**/Client.ts
    1.0.2 -> 1.0.1
- Expand .fernignore to protect release-please artifacts and src/version.ts
  from Fern regen (mirrors the Python SDK pattern)

Verified: yarn build passes; yarn test passes 255/255.
@luke-speechify luke-speechify deleted the chore/release-please-takeover branch June 19, 2026 12:36
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