mirror of
https://github.com/openai/codex.git
synced 2026-05-20 19:23:21 +00:00
build: default Codex package target and output (#23541)
## Why The package builder should be easy to run during local iteration. Requiring callers to provide both a target triple and an output directory every time makes the common host-package case more awkward than necessary. This PR keeps explicit overrides available, but makes the default invocation useful: build for the current host platform and place the package in a fresh temporary directory. Because a temp output path is otherwise easy to lose, the builder continues to print the final package directory path when it completes. ## What changed - Makes `--target` optional and maps the host OS/architecture to supported Codex package target triples. - Uses GNU Linux target triples for Linux host defaults, while keeping the musl targets available for release jobs that pass `--target` explicitly. - Makes `--package-dir` optional and creates a new `codex-package-*` temp directory when omitted. - Documents the new defaults in `scripts/codex_package/README.md`. ## Verification - Compiled `scripts/build_codex_package.py` and `scripts/codex_package/*.py` with `PYTHONDONTWRITEBYTECODE=1`. - Ran `scripts/build_codex_package.py --help` from outside the repo. - Verified Linux host detection maps `x86_64` and `aarch64` to GNU target triples. - Ran a fake-Cargo package build while omitting both `--target` and `--package-dir`; verified the generated metadata target, expected package files, and printed temp package path. - Ran a fake-Cargo package build for `x86_64-unknown-linux-gnu` and verified `codex`, `bwrap`, and `rg` are assembled into the package.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""Command-line interface for building Codex package directories."""
|
||||
|
||||
import argparse
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
from .archive import write_archive
|
||||
@@ -11,6 +12,7 @@ from .layout import validate_package_dir
|
||||
from .ripgrep import resolve_rg_bin
|
||||
from .targets import TARGET_SPECS
|
||||
from .targets import PackageInputs
|
||||
from .targets import default_target
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
@@ -20,9 +22,12 @@ def parse_args() -> argparse.Namespace:
|
||||
)
|
||||
parser.add_argument(
|
||||
"--target",
|
||||
required=True,
|
||||
default=argparse.SUPPRESS,
|
||||
choices=sorted(TARGET_SPECS),
|
||||
help="Rust target triple for the package.",
|
||||
help=(
|
||||
"Rust target triple for the package. Defaults to the release target "
|
||||
"for this host platform."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--version",
|
||||
@@ -37,8 +42,11 @@ def parse_args() -> argparse.Namespace:
|
||||
parser.add_argument(
|
||||
"--package-dir",
|
||||
type=Path,
|
||||
required=True,
|
||||
help="Output directory to create as the package root.",
|
||||
default=argparse.SUPPRESS,
|
||||
help=(
|
||||
"Output directory to create as the package root. Defaults to a new "
|
||||
"temporary directory."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--archive-output",
|
||||
@@ -79,8 +87,13 @@ def parse_args() -> argparse.Namespace:
|
||||
|
||||
def main() -> int:
|
||||
args = parse_args()
|
||||
spec = TARGET_SPECS[args.target]
|
||||
package_dir = args.package_dir.resolve()
|
||||
spec = TARGET_SPECS[getattr(args, "target", None) or default_target()]
|
||||
package_dir_arg = getattr(args, "package_dir", None)
|
||||
package_dir = (
|
||||
package_dir_arg.resolve()
|
||||
if package_dir_arg is not None
|
||||
else Path(tempfile.mkdtemp(prefix="codex-package-")).resolve()
|
||||
)
|
||||
|
||||
source_outputs = build_source_binaries(
|
||||
spec,
|
||||
|
||||
Reference in New Issue
Block a user