diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 8c6f3ad8a..b5ff5ca9b 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -4,6 +4,16 @@ name: Publish PyPI on: workflow_dispatch: + inputs: + package: + description: Package to publish + required: true + default: all + type: choice + options: + - all + - agentex-client + - agentex-sdk release: types: [published] @@ -33,3 +43,5 @@ jobs: # Back-compat fallback — used by bin/publish-pypi when the # dedicated tokens above are unset. PYPI_TOKEN: ${{ secrets.AGENTEX_PYPI_TOKEN || secrets.PYPI_TOKEN }} + # Manual dispatches can override tag-derived package selection. + PYPI_PACKAGE: ${{ inputs.package }} diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6f568f3fa..6c60255b6 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - ".": "0.16.1", - "adk": "0.15.0" + ".": "0.16.2", + "adk": "0.16.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index e29e16fa2..65f05a55e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,14 @@ * **tracing:** emit OTel metrics for async span queue depth, batch drain, and SGP export success/failure (HTTP status labels). Disable SDK-side recording with ``AGENTEX_TRACING_METRICS=0``. +## 0.16.2 (2026-06-29) + +Full Changelog: [agentex-client-v0.16.1...agentex-client-v0.16.2](https://github.com/scaleapi/scale-agentex-python/compare/agentex-client-v0.16.1...agentex-client-v0.16.2) + +### Bug Fixes + +* **adk:** release streaming buffer repair in sdk ([#449](https://github.com/scaleapi/scale-agentex-python/issues/449)) ([20795cb](https://github.com/scaleapi/scale-agentex-python/commit/20795cb158244767207b6d3758929014bc015bb6)) + ## 0.16.1 (2026-06-26) Full Changelog: [agentex-client-v0.16.0...agentex-client-v0.16.1](https://github.com/scaleapi/scale-agentex-python/compare/agentex-client-v0.16.0...agentex-client-v0.16.1) diff --git a/adk/CHANGELOG.md b/adk/CHANGELOG.md index e308ad36e..4e2cb18bd 100644 --- a/adk/CHANGELOG.md +++ b/adk/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.16.2 (2026-06-29) + +Full Changelog: [agentex-sdk-v0.15.0...agentex-sdk-v0.16.2](https://github.com/scaleapi/scale-agentex-python/compare/agentex-sdk-v0.15.0...agentex-sdk-v0.16.2) + +### Bug Fixes + +* **adk:** release streaming buffer repair in sdk ([#449](https://github.com/scaleapi/scale-agentex-python/issues/449)) ([20795cb](https://github.com/scaleapi/scale-agentex-python/commit/20795cb158244767207b6d3758929014bc015bb6)) + ## 0.15.0 (2026-06-24) Full Changelog: [agentex-sdk-v0.14.0...agentex-sdk-v0.15.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-sdk-v0.14.0...agentex-sdk-v0.15.0) diff --git a/adk/README.md b/adk/README.md index 73a961dd1..206ba993b 100644 --- a/adk/README.md +++ b/adk/README.md @@ -30,3 +30,5 @@ The two packages contribute disjoint files to the `agentex.*` namespace — `age ## Repo layout This package is hand-authored and lives at `adk/` inside [scaleapi/scale-agentex-python](https://github.com/scaleapi/scale-agentex-python). Stainless codegen never touches `adk/**` — it's outside the generated surface. The sibling `agentex-client` package lives at the repo root and IS Stainless-generated. + +The wheel source is assembled from `src/agentex/lib/**` by `adk/hatch_build.py`. diff --git a/adk/pyproject.toml b/adk/pyproject.toml index c1f5b7443..711b70fd0 100644 --- a/adk/pyproject.toml +++ b/adk/pyproject.toml @@ -4,7 +4,7 @@ # (agentex/{__init__.py, _*.py, types/, resources/}) ships from the slim # sibling package `agentex-client` which is pinned as a runtime dep. name = "agentex-sdk" -version = "0.15.0" +version = "0.16.2" description = "Agent Development Kit (ADK) overlay for the Agentex API — FastACP server, Temporal workflows, LLM provider integrations, observability" license = "Apache-2.0" authors = [ diff --git a/bin/publish-pypi b/bin/publish-pypi index 68d7df303..7107d194e 100644 --- a/bin/publish-pypi +++ b/bin/publish-pypi @@ -1,7 +1,8 @@ #!/usr/bin/env bash -# Publish slim (root) before heavy (adk/): heavy pins slim, so a slim-first -# failure aborts before shipping a heavy that needs an unreleased client. +# Publish only the package requested by the component tag. Manual dispatches can +# set PYPI_PACKAGE=all to publish both packages; in that case publish slim +# before heavy because the heavy package depends on the slim package. set -eux @@ -9,6 +10,45 @@ rm -rf dist # --wheel: the heavy's cross-dir force-include can't build via sdist. uv build --all-packages --wheel -# --check-url makes the per-component-tag double-trigger idempotent. -uv publish --check-url https://pypi.org/simple/ --token="${AGENTEX_CLIENT_PYPI_TOKEN:-$PYPI_TOKEN}" dist/agentex_client-*.whl -uv publish --check-url https://pypi.org/simple/ --token="${AGENTEX_PYPI_TOKEN:-$PYPI_TOKEN}" dist/agentex_sdk-*.whl +publish_client() { + uv publish --check-url https://pypi.org/simple/ --token="${AGENTEX_CLIENT_PYPI_TOKEN:-${PYPI_TOKEN:-}}" dist/agentex_client-*.whl +} + +publish_sdk() { + uv publish --check-url https://pypi.org/simple/ --token="${AGENTEX_PYPI_TOKEN:-${PYPI_TOKEN:-}}" dist/agentex_sdk-*.whl +} + +package="${PYPI_PACKAGE:-}" + +if [ -z "$package" ]; then + tag_name="${GITHUB_REF_NAME:-}" + if [ -z "$tag_name" ] && [[ "${GITHUB_REF:-}" == refs/tags/* ]]; then + tag_name="${GITHUB_REF#refs/tags/}" + fi + + case "$tag_name" in + agentex-client-v*) package="agentex-client" ;; + agentex-sdk-v*) package="agentex-sdk" ;; + *) + echo "Unable to infer package from tag '$tag_name'. Set PYPI_PACKAGE to one of: all, agentex-client, agentex-sdk." >&2 + exit 1 + ;; + esac +fi + +case "$package" in + all) + publish_client + publish_sdk + ;; + agentex-client) + publish_client + ;; + agentex-sdk) + publish_sdk + ;; + *) + echo "Unknown PYPI_PACKAGE '$package'. Expected one of: all, agentex-client, agentex-sdk." >&2 + exit 1 + ;; +esac diff --git a/pyproject.toml b/pyproject.toml index 1d166d68c..cc49ea5dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ # overlay (formerly `src/agentex/lib/*`) now lives in `adk/` and ships # as the sibling `agentex-sdk` package — see `adk/pyproject.toml`. name = "agentex-client" -version = "0.16.1" +version = "0.16.2" description = "The official Python REST client for the Agentex API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/release-please-config.json b/release-please-config.json index f2014002a..7bae5f5a3 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -10,6 +10,16 @@ "component": "agentex-sdk" } }, + "plugins": [ + { + "type": "linked-versions", + "groupName": "agentex", + "components": [ + "agentex-client", + "agentex-sdk" + ] + } + ], "$schema": "https://raw.githubusercontent.com/stainless-api/release-please/main/schemas/config.json", "include-v-in-tag": true, "include-component-in-tag": true, diff --git a/src/agentex/_version.py b/src/agentex/_version.py index b53c93078..14d9f7e1e 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.16.1" # x-release-please-version +__version__ = "0.16.2" # x-release-please-version