Align Python SDK staging with pinned runtime

This commit is contained in:
Shaqayeq
2026-03-23 16:42:00 -07:00
parent 756556ddcb
commit 1cab02f327
4 changed files with 13 additions and 9 deletions

View File

@@ -66,7 +66,7 @@ notebook bootstrap the pinned runtime package automatically.
```bash
cd sdk/python
python scripts/update_sdk_artifacts.py generate-types
python scripts/update_sdk_artifacts.py generate-types-for-pinned-runtime
python scripts/update_sdk_artifacts.py \
stage-sdk \
/tmp/codex-python-release/codex-app-server-sdk \
@@ -80,7 +80,7 @@ python scripts/update_sdk_artifacts.py \
This supports the CI release flow:
- run `generate-types` before packaging
- run `generate-types-for-pinned-runtime` before packaging
- stage `codex-app-server-sdk` once with an exact `codex-cli-bin==...` dependency
- stage `codex-cli-bin` on each supported platform runner with the same pinned runtime version
- build and publish `codex-cli-bin` as platform wheels only; do not publish an sdist

View File

@@ -65,7 +65,7 @@ platform wheels only; do not publish an sdist:
```bash
cd sdk/python
python scripts/update_sdk_artifacts.py generate-types
python scripts/update_sdk_artifacts.py generate-types-for-pinned-runtime
python scripts/update_sdk_artifacts.py \
stage-sdk \
/tmp/codex-python-release/codex-app-server-sdk \

View File

@@ -97,8 +97,12 @@ def pinned_runtime_version() -> str:
return module.pinned_runtime_version() # type: ignore[no-any-return]
def runtime_git_ref(version: str) -> str:
return f"rust-v{version}"
def pinned_runtime_git_ref() -> str:
return f"rust-v{pinned_runtime_version()}"
return runtime_git_ref(pinned_runtime_version())
def ensure_git_ref_available(git_ref: str) -> None:
@@ -1090,7 +1094,7 @@ def run_command(args: argparse.Namespace, ops: CliOps) -> None:
elif args.command == "generate-types-for-pinned-runtime":
ops.generate_types_for_pinned_runtime(args.git_ref)
elif args.command == "stage-sdk":
ops.generate_types()
ops.generate_types_for_pinned_runtime(runtime_git_ref(args.runtime_version))
ops.stage_python_sdk_package(
args.staging_dir,
args.sdk_version or ops.current_sdk_version(),

View File

@@ -333,10 +333,10 @@ def test_stage_sdk_runs_type_generation_before_staging(tmp_path: Path) -> None:
)
def fake_generate_types() -> None:
calls.append("generate_types")
raise AssertionError("stage-sdk should use pinned-runtime generation")
def fake_generate_types_for_pinned_runtime(_git_ref: str | None = None) -> None:
calls.append("generate_types_for_pinned_runtime")
def fake_generate_types_for_pinned_runtime(git_ref: str | None = None) -> None:
calls.append(f"generate_types_for_pinned_runtime:{git_ref}")
def fake_stage_sdk_package(
_staging_dir: Path, _sdk_version: str, _runtime_version: str
@@ -362,7 +362,7 @@ def test_stage_sdk_runs_type_generation_before_staging(tmp_path: Path) -> None:
script.run_command(args, ops)
assert calls == ["generate_types", "stage_sdk"]
assert calls == ["generate_types_for_pinned_runtime:rust-v1.2.3", "stage_sdk"]
def test_stage_runtime_stages_binary_without_type_generation(tmp_path: Path) -> None: