mirror of
https://github.com/openai/codex.git
synced 2026-05-20 11:12:43 +00:00
## Why Codex CLI packaging is currently split across npm staging, standalone installers, and release bundle creation, which makes it hard to define and validate a single valid package directory. This adds the first standalone package builder so later release paths can converge on the same canonical layout. ## What changed - Added `scripts/build_codex_package.py` as the stable executable wrapper around `scripts/codex_package`. - Added modules for CLI parsing, target metadata, grouped cargo builds, package layout validation, and archive writing. - The builder creates a package directory with `codex-package.json`, `bin/`, `codex-resources/`, and `codex-path`, and can serialize it as `.tar.gz`, `.tar.zst`, or `.zip`. - Source-built artifacts are built by one grouped `cargo build`: `codex` for all targets, `bwrap` for Linux, and the Windows sandbox helpers for Windows. `rg` remains an input because it is vendored from upstream rather than built from this repo. - Added `scripts/codex_package/README.md` to document the package layout, source-built artifacts, and cargo profile behavior. ## Verification - Ran wrapper/module syntax compilation. - Ran `scripts/build_codex_package.py --help` from `/private/tmp`. - Ran fake-cargo package/archive builds for macOS, Linux, and Windows target layouts, including an assertion that generated tar archives contain no duplicate member names. --- [//]: # (BEGIN SAPLING FOOTER) Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/openai/codex/pull/23513). * #23526 * __->__ #23513
17 lines
518 B
Python
Executable File
17 lines
518 B
Python
Executable File
#!/usr/bin/env python3
|
|
"""Build a canonical Codex package directory and optional archive."""
|
|
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
|
|
# Some developer environments set PYTHONSAFEPATH=1, which prevents Python from
|
|
# adding the script directory to sys.path. Add it explicitly so the local helper
|
|
# package remains importable when this executable is launched from any cwd.
|
|
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
|
|
from codex_package.cli import main
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|