Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .fernignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,19 @@
# Specify files that shouldn't be modified by Fern
.github/workflows/ci.yml

# Legacy CI workflow replaced by release-please.yml — keep listed so Fern
# does not regenerate the file after deletion.
.github/workflows/ci.yml

# Release-please owns versioning, releases, and PyPI publish.
.github/workflows/release-please.yml
release-please-config.json
.release-please-manifest.json
CHANGELOG.md

# release-please bumps the X-Fern-SDK-Version literal in this file via an
# inline `x-release-please-version` marker comment. Fern regen would strip the
# marker, so the file is owned outside of Fern.
src/speechify/core/client_wrapper.py

# ignore context7 config file
context7.json
57 changes: 42 additions & 15 deletions .github/workflows/ci.yml → .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -1,58 +1,85 @@
name: ci
name: release-please

on:
push:
branches: [master]
pull_request:
branches: [master]

permissions:
contents: read

on: [push]
jobs:
compile:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.8"
- name: Bootstrap poetry
run: |
curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1
- name: Install dependencies
run: poetry install
- name: Compile
run: poetry run mypy .

test:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.8"
- name: Bootstrap poetry
run: |
curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1
- name: Install dependencies
run: poetry install

- name: Test
run: poetry run pytest -rP .

publish:
release-please:
needs: [compile, test]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- name: Run release-please
id: release
uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
config-file: release-please-config.json
manifest-file: .release-please-manifest.json

publish:
needs: release-please
if: needs.release-please.outputs.release_created == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.8"
- name: Bootstrap poetry
run: |
curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1
- name: Install dependencies
run: poetry install
- name: Publish to pypi
- name: Publish to PyPI
run: |
poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}
poetry publish --build
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "1.2.4"
}
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Changelog

## [1.2.4](https://github.com/SpeechifyInc/speechify-api-sdk-python/compare/1.2.3...1.2.4) (2026-06-17)


### Bug Fixes

* **packaging:** make the SDK installable from source [DRG-31] ([ebcf99d](https://github.com/SpeechifyInc/speechify-api-sdk-python/commit/ebcf99db9e60bab42756bcbb837ace03575b9dcf))
* **packaging:** make the SDK installable from source [DRG-31] ([011172d](https://github.com/SpeechifyInc/speechify-api-sdk-python/commit/011172daa6a16e26834550e44562c5f14e054504))
* update API URL in context7.json ([62e6ca8](https://github.com/SpeechifyInc/speechify-api-sdk-python/commit/62e6ca8bd459493a04702706ea55d747832aab87))
4 changes: 4 additions & 0 deletions context7.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"url": "https://context7.com/speechifyinc/speechify-api-sdk-python",
"public_key": "pk_APO3PeuTVigMZ5P69udhE"
}
7 changes: 2 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[project]
name = "speechify-api"

[tool.poetry]
name = "speechify-api"
version = "1.2.3"
version = "1.2.4"
description = "Official Speechify API SDK"
readme = "README.md"
authors = [
Expand Down Expand Up @@ -39,7 +36,7 @@ packages = [
{ include = "speechify", from = "src"}
]

[project.urls]
[tool.poetry.urls]
Documentation = 'https://docs.speechify.ai/api-reference'
Homepage = 'https://docs.speechify.ai'
Repository = 'https://github.com/speechifyinc/speechify-api-sdk-python'
Expand Down
17 changes: 17 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"release-type": "python",
"include-v-in-tag": false,
"include-component-in-tag": false,
"packages": {
".": {
"package-name": "speechify-api",
"extra-files": [
{
"type": "generic",
"path": "src/speechify/core/client_wrapper.py"
}
]
}
}
}
2 changes: 1 addition & 1 deletion src/speechify/core/client_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
"X-Fern-Language": "Python",
"X-Fern-SDK-Name": "speechify-api",
"X-Fern-SDK-Version": "1.2.3",
"X-Fern-SDK-Version": "1.2.4", # x-release-please-version
}
token = self._get_token()
if token is not None:
Expand Down