Skip to content

ci(release): link agentex-client and agentex-sdk versions in release-please#451

Merged
max-parke-scale merged 1 commit into
nextfrom
cc/link-release-versions
Jun 29, 2026
Merged

ci(release): link agentex-client and agentex-sdk versions in release-please#451
max-parke-scale merged 1 commit into
nextfrom
cc/link-release-versions

Conversation

@max-parke-scale

@max-parke-scale max-parke-scale commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Root-cause fix for the SDK/client version divergence behind the failed agentex-client-v0.16.1 release (#426).

agentex-sdk ships src/agentex/lib/** (force-included from outside adk/ by adk/hatch_build.py), but release-please attributes changes by directory: anything under adk/**agentex-sdk, everything else (including src/agentex/lib/**) → agentex-client (path .). So a lib/** change — which is exactly what the SDK ships and the client excludes — only ever bumps the client. The SDK bumps only when something physically under adk/ happens to ride along in the same release window.

This has drifted since release #411 (client 0.14.0 / sdk 0.13.2). #426 was the first lib-only window with no adk/** change → agentex-client cut 0.16.1, agentex-sdk stayed 0.15.0, and the rebuilt agentex_sdk-0.15.0 wheel (now carrying the streaming fix) collided with the immutable PyPI artifact.

Fix

Add the linked-versions plugin grouping agentex-client + agentex-sdk. release-please then keeps both components on one version and bumps them together (it takes the max version across the group), so any change that bumps the client also bumps the SDK. This matches the design the two packages already declare — co-released in lockstep, agentex-sdk pins agentex-client floor-only.

How this composes with the other PRs

Notes

  • The config change is inert until the next feat/fix release (this ci-typed commit doesn't trigger a bump on its own).
  • On the next release, linked-versions snaps agentex-sdk up to the client's line (0.15.x → 0.16.x); it skips an unreleased range, which is harmless.

🧑‍💻🤖 — posted via Claude Code

Greptile Summary

Adds the linked-versions release-please plugin to keep agentex-client and agentex-sdk on the same version, fixing the root cause of the silent SDK drift first exposed by the failed agentex-client-v0.16.1 release. Any change that bumps one component now automatically bumps the other to the same version.

  • Adds a plugins block to release-please-config.json with a single linked-versions entry grouping agentex-client and agentex-sdk; component names match the existing packages entries exactly.
  • On the next feat/fix release the SDK will be snapped from 0.15.0 up to the client's current 0.16.x line, skipping the unreleased gap — acknowledged in the PR description as harmless.

Confidence Score: 5/5

Safe to merge — a minimal, targeted config change with no runtime code involved.

The change is a single plugin block in a JSON config file. The linked-versions syntax is correct, both component names match the existing packages entries, and the version-snap behavior on the next release is intentional and documented. There are no code changes and no risk of regressions.

No files require special attention.

Important Files Changed

Filename Overview
release-please-config.json Adds linked-versions plugin grouping agentex-client and agentex-sdk; component names exactly match the packages entries, syntax is correct, and the plugin will snap the SDK from 0.15.0 to the client's 0.16.x line on the next release as intended.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Conventional commit lands on next] --> B{Which paths changed?}
    B -->|adk/** touched| C[agentex-sdk gets a bump]
    B -->|src/agentex/lib/** or root touched| D[agentex-client gets a bump]
    B -->|both touched| E[Both components get independent bumps]
    C --> F[linked-versions plugin]
    D --> F
    E --> F
    F --> G{Take max version across group}
    G --> H[Both agentex-client and agentex-sdk set to the same version]
    H --> I[Release PR opened with both components at max version]
    I --> J[Tags: agentex-client-vX.Y.Z and agentex-sdk-vX.Y.Z]
    J --> K[publish-pypi.yml builds and uploads both wheels to PyPI]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Conventional commit lands on next] --> B{Which paths changed?}
    B -->|adk/** touched| C[agentex-sdk gets a bump]
    B -->|src/agentex/lib/** or root touched| D[agentex-client gets a bump]
    B -->|both touched| E[Both components get independent bumps]
    C --> F[linked-versions plugin]
    D --> F
    E --> F
    F --> G{Take max version across group}
    G --> H[Both agentex-client and agentex-sdk set to the same version]
    H --> I[Release PR opened with both components at max version]
    I --> J[Tags: agentex-client-vX.Y.Z and agentex-sdk-vX.Y.Z]
    J --> K[publish-pypi.yml builds and uploads both wheels to PyPI]
Loading

Reviews (1): Last reviewed commit: "ci(release): link agentex-client and age..." | Re-trigger Greptile

The agentex-sdk wheel ships src/agentex/lib/**, but release-please
attributes those changes to agentex-client (path `.`), not agentex-sdk
(path adk/), so lib-only release windows never bump the SDK. Its rebuilt
wheel then collides with the immutable PyPI artifact at the unchanged
version (e.g. #426 / agentex-client-v0.16.1, where agentex-sdk stayed
0.15.0).

Add the linked-versions plugin so both components share one version and
bump together — matching the existing lockstep / floor-only-pin design.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@max-parke-scale max-parke-scale merged commit dac8cf7 into next Jun 29, 2026
48 checks passed
@max-parke-scale max-parke-scale deleted the cc/link-release-versions branch June 29, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant