mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
build: package prebuilt Codex entrypoints (#23586)
## Why The package builder should describe the binaries it is actually packaging, not require callers to restate release metadata out of band. A caller-provided `--version` flag can drift from the workspace version, but running the target entrypoint to discover its version breaks cross-target packages when the produced binary cannot execute on the build host. This PR keeps package metadata tied to the repository source of truth by reading `[workspace.package].version` from `codex-rs/Cargo.toml`. It also prepares the package layout for `codex-app-server` packages: the same package structure can now represent either the CLI entrypoint or the app-server entrypoint while keeping shared sidecars such as `rg`, `bwrap`, and Windows sandbox helpers in the existing package directories. ## What changed - Removes the `--version` CLI flag from `scripts/build_codex_package.py`. - Adds Cargo.toml version discovery for `codex-package.json.version` via `codex-rs/Cargo.toml`. - Adds `--entrypoint-bin` so callers can package a prebuilt entrypoint instead of rebuilding it with Cargo. - Makes `--variant` an explicit choice between `codex` and `codex-app-server`, and uses it to select the cargo binary and packaged `bin/` entrypoint name. - Updates `scripts/codex_package/README.md` to document variants, prebuilt entrypoints, and Cargo.toml version detection. ## Verification - Compiled `scripts/build_codex_package.py` and `scripts/codex_package/*.py` with `PYTHONDONTWRITEBYTECODE=1`. - Ran `scripts/build_codex_package.py --help` and verified `--version` is gone while `--variant` and `--entrypoint-bin` are present. - Verified the package builder reads version `0.0.0` from `codex-rs/Cargo.toml`. - Built a fake cross-target `codex-app-server` package using a non-executable `--entrypoint-bin`; verified metadata records version `0.0.0`, variant `codex-app-server`, and `bin/codex-app-server` as the entrypoint.
This commit is contained in:
committed by
GitHub
Unverified
parent
dc255b0d8a
commit
343a74076f
@@ -0,0 +1,29 @@
|
||||
"""Version discovery for Codex packages."""
|
||||
|
||||
import re
|
||||
|
||||
from .targets import REPO_ROOT
|
||||
|
||||
|
||||
WORKSPACE_VERSION_PATTERN = re.compile(r'^version\s*=\s*"([^"]+)"')
|
||||
|
||||
|
||||
def read_workspace_version() -> str:
|
||||
cargo_toml = REPO_ROOT / "codex-rs" / "Cargo.toml"
|
||||
in_workspace_package = False
|
||||
with open(cargo_toml, encoding="utf-8") as fh:
|
||||
for line in fh:
|
||||
stripped = line.strip()
|
||||
if stripped == "[workspace.package]":
|
||||
in_workspace_package = True
|
||||
continue
|
||||
|
||||
if in_workspace_package and stripped.startswith("["):
|
||||
break
|
||||
|
||||
if in_workspace_package:
|
||||
match = WORKSPACE_VERSION_PATTERN.match(stripped)
|
||||
if match is not None:
|
||||
return match.group(1)
|
||||
|
||||
raise RuntimeError(f"Could not find [workspace.package].version in {cargo_toml}")
|
||||
Reference in New Issue
Block a user