Skip to content

Publish Python SDK with Codex-pinned versioning#18996

Merged
sdcoffey merged 1 commit intomainfrom
dev/steve/python-sdk-pypi-version-pin
Apr 27, 2026
Merged

Publish Python SDK with Codex-pinned versioning#18996
sdcoffey merged 1 commit intomainfrom
dev/steve/python-sdk-pypi-version-pin

Conversation

@sdcoffey
Copy link
Copy Markdown
Contributor

@sdcoffey sdcoffey commented Apr 22, 2026

note: a large chunk of this diff comes from regenerating Python types after app-server schema changes on main.

This is PR 3 of 3 for the Python SDK PyPI publishing split. PR #18862 refreshed the generated SDK surface, and PR #18865 made the runtime package publishable as openai-codex-cli-bin; this final PR makes the SDK package publishable as openai-codex-app-server-sdk and pins both packages to the same Codex runtime version.

The key idea is that the published SDK version is the Codex runtime version. That one version now drives the SDK package version, the exact runtime dependency, the client version reported by the SDK, and the bootstrap runtime pin. This keeps release-time versioning in one lane instead of scattering checked-in literals through the package.

What changed

  • Rename the SDK distribution from codex-app-server-sdk to openai-codex-app-server-sdk for conflict-free PyPI publishing.
  • Use stage-sdk --codex-version ... with one Codex version for both the SDK package version and exact openai-codex-cli-bin dependency.
  • Preserve hidden legacy --runtime-version / --sdk-version args only to reject mismatched versions during staging.
  • Map PEP 440 package versions back to Codex release tags for runtime setup downloads, e.g. 0.116.0a1 -> rust-v0.116.0-alpha.1.
  • Derive codex_app_server.__version__, the default AppServerConfig.client_version, and _runtime_setup.pinned_runtime_version() from the SDK package/project version instead of hardcoding duplicate version strings.
  • Carry the current generated SDK refresh from main so generate-types stays clean after recent app-server schema changes.
  • Update sdk/python/uv.lock for the renamed editable package.

Validation

  • uv run --extra dev pytest in sdk/python -> 59 passed, 37 skipped.
  • Targeted uv run ruff check for the touched SDK files.
  • git diff --check.
  • Staged runtime with --codex-version rust-v0.116.0-alpha.1 --platform-tag macosx_11_0_arm64.
  • Staged SDK with --codex-version rust-v0.116.0-alpha.1.
  • Built runtime wheel, SDK wheel, and SDK sdist.
  • twine check /tmp/codex-python-pr3-build/dist/* -> passed.
  • Clean venv smoke installed openai-codex-app-server-sdk==0.116.0a1 from local dist and pulled openai-codex-cli-bin==0.116.0a1.
  • Smoke imports passed for Codex and bundled_codex_path().

@sdcoffey sdcoffey force-pushed the dev/steve/python-sdk-pypi-version-pin branch from 11759fa to 7f0c774 Compare April 22, 2026 15:52
from .retry import retry_on_overload

__version__ = "0.2.0"
__version__ = "0.116.0a1"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this ok to hardcode?

client_name: str = "codex_python_sdk"
client_title: str = "Codex Python SDK"
client_version: str = "0.2.0"
client_version: str = "0.116.0a1"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same w/ this, ok to hardcode version?

@sdcoffey sdcoffey force-pushed the dev/steve/python-sdk-pypi-version-pin branch from 7f0c774 to 7502c71 Compare April 27, 2026 18:25
@sdcoffey sdcoffey force-pushed the dev/steve/python-sdk-pypi-version-pin branch from 7502c71 to e3cbf22 Compare April 27, 2026 20:02
@sdcoffey
Copy link
Copy Markdown
Contributor Author

@sayan-oai good catch–updated to pull the version from pyproject.toml, which is generated at build-time

@sdcoffey sdcoffey merged commit 0f40261 into main Apr 27, 2026
25 checks passed
@sdcoffey sdcoffey deleted the dev/steve/python-sdk-pypi-version-pin branch April 27, 2026 21:28
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants