Skip to content

ci(packaging): publish only the tagged pypi package#450

Merged
max-parke-scale merged 1 commit into
nextfrom
jr/publish-only-tagged-package
Jun 29, 2026
Merged

ci(packaging): publish only the tagged pypi package#450
max-parke-scale merged 1 commit into
nextfrom
jr/publish-only-tagged-package

Conversation

@jromualdez-scale

@jromualdez-scale jromualdez-scale commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Publishes only the package implied by the component release tag (agentex-client-v* or agentex-sdk-v*).
  • Adds a manual workflow input for intentional all, agentex-client, or agentex-sdk publishes.
  • Prevents a client release from trying to republish an existing SDK wheel with the same version.

Test plan

  • bash -n bin/publish-pypi
  • Checked IDE diagnostics for the edited workflow/script files.

Notes

This prevents the PyPI immutability failure mode. It does not, by itself, solve release-please source attribution for src/agentex/lib/**; that still needs a structural source move under adk/ or custom release attribution.

This intentionally uses a non-releasing PR title (ci) so the tooling-only change does not create a new client release. For future releases where both components bump, the component tags will publish in separate runs; the previous script attempted slim-before-heavy atomicity in one run, but that is what exposed sibling-wheel republish collisions.

Greptile Summary

This PR narrows PyPI publishing to the requested package. The main changes are:

  • Adds a manual workflow choice for all, agentex-client, or agentex-sdk publishes.
  • Passes the selected package into the publish script through PYPI_PACKAGE.
  • Infers the publish target from component release tags when no manual input is set.
  • Publishes only the selected wheel, with all preserving client-before-SDK order.

Confidence Score: 5/5

The change is narrowly scoped to publishing target selection and does not alter runtime package code.

The edited workflow and script align with the intended tag/manual-input behavior, and no blocking issues were identified in the changed files.

T-Rex T-Rex Logs

What T-Rex did

  • The base workflow was analyzed and found to have a workflow_dispatch trigger but no package input and no PYPI_PACKAGE environment variable, and all test scenarios invoked uv publish for both dist/agentex_client-...whl and dist/agentex_sdk-...whl.
  • The head workflow was updated to define workflow_dispatch.inputs.package with choices all, agentex-client, and agentex-sdk, and it passes PYPI_PACKAGE: ${{ inputs.package }} to the publish step.
  • Execution results showed that publishing with the three scenarios produced the expected wheel outputs: agentex-client-v1.2.3 published only the client wheel, agentex-sdk-v1.2.3 published only the SDK wheel, and manual PYPI_PACKAGE selections published the corresponding wheels; invalid or missing tags exited with an error.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (2): Last reviewed commit: "fix(packaging): publish only the tagged ..." | Re-trigger Greptile

Infer the package to upload from component release tags so a client release does not attempt to republish an immutable SDK wheel, and keep explicit package selection for manual dispatches.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jromualdez-scale jromualdez-scale marked this pull request as draft June 29, 2026 16:59
Comment thread bin/publish-pypi
@jromualdez-scale jromualdez-scale changed the title fix(packaging): publish only the tagged pypi package ci(packaging): publish only the tagged pypi package Jun 29, 2026
@jromualdez-scale jromualdez-scale marked this pull request as ready for review June 29, 2026 18:16
@max-parke-scale max-parke-scale merged commit 1436259 into next Jun 29, 2026
52 checks passed
@max-parke-scale max-parke-scale deleted the jr/publish-only-tagged-package 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.

2 participants