chore: take over publishing with release-please#15
Merged
Conversation
Replaces the legacy tag-driven ci.yml publish flow with release-please as the single owner of versioning, changelogs, and PyPI publishes. What changes: - Add release-please-config.json (release-type python, package speechify-api, extra-files tracks src/speechify/core/client_wrapper.py via the x-release-please-version marker comment) - Add .release-please-manifest.json pinned to 1.2.3 — the current GitHub Release marked Latest, matching the PyPI latest and the pyproject.toml version on master - Add .github/workflows/release-please.yml: compile (poetry + mypy) and test (poetry + pytest) on every push to master and every PR; then release-please on master; then poetry publish --build to PyPI gated on release_created - Remove .github/workflows/ci.yml — the new workflow covers compile, test, and publish - Add the inline x-release-please-version marker next to the existing X-Fern-SDK-Version literal in client_wrapper.py (literal stays at 1.2.3) - Expand .fernignore to keep Fern regen from wiping the release-please artifacts, the new workflow, the deleted ci.yml, and client_wrapper.py No version literal changes anywhere. pyproject.toml stays at 1.2.3, the X-Fern-SDK-Version literal stays at 1.2.3 — release-please will propose the correct next bump on the next conventional commit.
Drop src/speechify/core/client_wrapper.py from .fernignore. Fern's regen replay re-applies release-please's commits (the x-release-please-version marker + the version bump) on top of the regenerated file, so we don't need to freeze it out of regen entirely.
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 PyPI publishes — matching the pattern being introduced onspeechify-api-sdk-typescriptin parallel.Why
ci.ymlranpoetry publish --buildonrefs/tags/*, which meant publishes were driven by hand-cut git tags. That leaves no changelog, no conventional-commit-driven semver, and no PR-based release approval gate. 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: python, packagespeechify-api.extra-filestrackssrc/speechify/core/client_wrapper.pyvia thex-release-please-versionmarker so theX-Fern-SDK-Versionliteral bumps in lockstep withpyproject.toml. Tag formatinclude-v-in-tag: false/include-component-in-tag: falsematches the existing git tag style..release-please-manifest.jsonpinned to1.2.3— the current GitHub Release marked "Latest", matching PyPI's latest andpyproject.tomlon master.Workflow swap
.github/workflows/ci.yml..github/workflows/release-please.yml:compile(poetry run mypy .) andtest(poetry run pytest -rP .) on every push tomasterand every PR;release-pleaseruns on push tomaster;publish(poetry publish --buildwithPYPI_TOKEN) gated onneeds.release-please.outputs.release_created == 'true'.Marker added
# x-release-please-versioncomment next to the existingX-Fern-SDK-Versionliteral insrc/speechify/core/client_wrapper.py. Literal value stays at1.2.3.Fern ignore expansion
.fernignorenow lists the release-please artifacts (config, manifest, workflow,CHANGELOG.md) and the deletedci.ymlso Fern regen doesn't recreate them.client_wrapper.pyis NOT in.fernignore— Fern's regen replay re-applies release-please's commits (the marker + the version bump) on top of the regenerated file, so the marker and the bumpedX-Fern-SDK-Versionliteral survive regen without needing the file frozen out of Fern entirely.What does NOT change
No version literal changes anywhere.
pyproject.tomlstays at1.2.3, theX-Fern-SDK-Versionliteral stays at1.2.3— release-please will propose the correct next bump on the next conventional commit.