chore: take over publishing with release-please#4
Closed
luke-speechify wants to merge 1 commit into
Closed
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Replace the legacy tag-driven
ci.ymlpublish flow with release-please as the single owner of versioning, changelogs, and npm publishes — matching the pattern already in place onspeechify-api-sdk-python.Why
ci.ymlrannpm publishonrefs/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:chore(master): release <next>PR to ship)CHANGELOG.mdrelease_created == 'true'rather than tag shapeWhat changes
New release-please artifacts
release-please-config.json—release-type: node, package@speechify/api,extra-filestrackssrc/version.tsvia thex-release-please-versionmarker. Tag format matches the Python repo (include-v-in-tag: false,include-component-in-tag: false)..release-please-manifest.jsonpinned to1.0.1— the current npm latest.Workflow swap
.github/workflows/ci.yml..github/workflows/release-please.yml:compileandtestrun on every push and PR;release-pleaseruns onpushtomaster;publish(npm publish --provenance --access public) runs whenneeds.release-please.outputs.release_created == 'true'. Provenance still flows through the existing GitHub OIDC trusted publisher on npm (noNPM_TOKENneeded).In-repo version realignment to the published
1.0.1package.json1.0.2→1.0.1src/version.tsSDK_VERSION = "1.0.2"→"1.0.1"and add thex-release-please-versionmarker so release-please can bump itX-Fern-SDK-Versionliterals acrosssrc/api/resources/**/Client.ts1.0.2→1.0.1Fern ignore expansion
.fernignorenow lists the release-please artifacts, the deletedci.yml, andsrc/version.tsso Fern regen does not wipe the marker — mirrors the Python SDK pattern.Verification
Known follow-up (not in this PR's scope)
The 93
X-Fern-SDK-Versionliterals in the generatedsrc/api/resources/**/Client.tsfiles 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 frompackage.json/ the release-please manifest, or the generated clients need to importSDK_VERSIONfromsrc/version.tsinstead of inlining the literal. That lives outside this repo.