Skip to content

Commit 06390bf

Browse files
fix(packaging): bump agentex-client floor and smoke-test wheel install
Harden the 0.13.0 split (agentex-sdk + agentex-client share the agentex.* namespace) against the partial-install break: - Bump the agentex-client floor to >=0.13.0 (first release where it ships separately) so an old client can't satisfy the dep. Kept floor-only: a ceiling would exclude the co-versioned slim (release-please can't bump it). - Sync uv.lock to the 0.13.0 workspace versions (it lagged pyproject at 0.12.0) so frozen installs resolve a client that satisfies the new floor. - Add scripts/check-wheel-install (wired into the build CI job): builds both wheels, installs them together into a fresh venv, and imports agentex.lib.adk plus the agentex.types/resources client surface — catching a wheel that ships an incomplete agentex.* namespace (the "files didn't land" failure). Drops the earlier import-time guard: it ran in agentex/lib, so it was bypassed whenever the client surface was actually missing — `import agentex` fails in the client's own __init__ (it eagerly imports types/resources) before agentex.lib runs. The CI smoke catches that case at the layer that can: the build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 23858df commit 06390bf

4 files changed

Lines changed: 32 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ jobs:
6161
# force-include can't build via the sdist-then-wheel default.
6262
run: uv build --all-packages --wheel
6363

64+
- name: Smoke-test wheel install
65+
# Both wheels must install together into one working agentex.* namespace.
66+
run: ./scripts/check-wheel-install
67+
6468
- name: Get GitHub OIDC Token
6569
if: |-
6670
github.repository == 'stainless-sdks/agentex-sdk-python' &&

adk/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ readme = "README.md"
1515
dependencies = [
1616
# Co-released in lockstep; floor-only by design — a ceiling would
1717
# eventually exclude the co-versioned slim (release-please can't bump it).
18-
"agentex-client>=0.12.0",
18+
"agentex-client>=0.13.0",
1919
# CLI surface (agentex.lib.cli.*, agentex.lib.sdk.config.*)
2020
"typer>=0.16,<0.17",
2121
"questionary>=2.0.1,<3",

scripts/check-wheel-install

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env bash
2+
# Smoke: agentex-client + agentex-sdk must install together into one working
3+
# agentex.* namespace. Builds + installs in a clean temp dir to avoid stale dist/.
4+
5+
set -euo pipefail
6+
7+
cd "$(dirname "$0")/.."
8+
9+
work="$(mktemp -d)"
10+
echo "==> building both wheels into $work/dist"
11+
uv build --all-packages --wheel --out-dir "$work/dist"
12+
13+
venv="$work/venv"
14+
uv venv "$venv" >/dev/null
15+
echo "==> installing both wheels into a fresh venv"
16+
uv pip install --python "$venv" "$work"/dist/agentex_client-*.whl "$work"/dist/agentex_sdk-*.whl
17+
18+
echo "==> importing the merged namespace from the installed wheels"
19+
"$venv/bin/python" - <<'PY'
20+
import agentex.lib.adk # ADK overlay — ships in agentex-sdk
21+
from agentex.types import Event # client surface — ships in agentex-client
22+
from agentex.resources import states # client surface that "didn't land" in the incident
23+
24+
print("agentex namespace OK:", Event.__name__, states.__name__)
25+
PY

uv.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)