diff --git a/.fernignore b/.fernignore index fcd26fa..9c949d7 100644 --- a/.fernignore +++ b/.fernignore @@ -1,2 +1,19 @@ # Specify files that shouldn't be modified by Fern -.github/workflows/ci.yml \ No newline at end of file + +# 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 diff --git a/.github/workflows/ci.yml b/.github/workflows/release-please.yml similarity index 50% rename from .github/workflows/ci.yml rename to .github/workflows/release-please.yml index 7d41c65..19d852a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/release-please.yml @@ -1,16 +1,24 @@ -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 @@ -18,41 +26,60 @@ jobs: 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 diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..8d35a90 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "1.2.4" +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ff8b0b7 --- /dev/null +++ b/CHANGELOG.md @@ -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)) diff --git a/context7.json b/context7.json new file mode 100644 index 0000000..57f4636 --- /dev/null +++ b/context7.json @@ -0,0 +1,4 @@ +{ + "url": "https://context7.com/speechifyinc/speechify-api-sdk-python", + "public_key": "pk_APO3PeuTVigMZ5P69udhE" +} diff --git a/pyproject.toml b/pyproject.toml index ef5b406..99ff485 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 = [ @@ -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' diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..3d10873 --- /dev/null +++ b/release-please-config.json @@ -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" + } + ] + } + } +} diff --git a/src/speechify/core/client_wrapper.py b/src/speechify/core/client_wrapper.py index 71accb2..6b0503b 100644 --- a/src/speechify/core/client_wrapper.py +++ b/src/speechify/core/client_wrapper.py @@ -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: