diff --git a/sdk/python/README.md b/sdk/python/README.md index 97068afe31..76b9999b38 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -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 diff --git a/sdk/python/docs/faq.md b/sdk/python/docs/faq.md index b2c9cf3b1f..fd27d2231c 100644 --- a/sdk/python/docs/faq.md +++ b/sdk/python/docs/faq.md @@ -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 \ diff --git a/sdk/python/scripts/update_sdk_artifacts.py b/sdk/python/scripts/update_sdk_artifacts.py index 932624c158..5434f635e0 100755 --- a/sdk/python/scripts/update_sdk_artifacts.py +++ b/sdk/python/scripts/update_sdk_artifacts.py @@ -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(), diff --git a/sdk/python/tests/test_artifact_workflow_and_binaries.py b/sdk/python/tests/test_artifact_workflow_and_binaries.py index 0a768cebee..108702beb3 100644 --- a/sdk/python/tests/test_artifact_workflow_and_binaries.py +++ b/sdk/python/tests/test_artifact_workflow_and_binaries.py @@ -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: