mirror of
https://github.com/openai/codex.git
synced 2026-09-17 12:23:33 +00:00
The recent packaging migration in #11339 switched platform artifacts to be published as `@openai/codex` with platform-specific versions and wired the meta package via npm alias optional dependencies (for example `@openai/codex-win32-x64 -> npm:@openai/codex@0.101.0-win32-x64`). This caused runtime failures on Windows where `codex` reports: `Missing optional dependency @openai/codex-win32-x64`. ### What changed - Updated `codex-cli/scripts/build_npm_package.py` to publish platform artifacts under their concrete package names: - `@openai/codex-win32-x64` - `@openai/codex-win32-arm64` - `@openai/codex-linux-x64` - `@openai/codex-linux-arm64` - `@openai/codex-darwin-x64` - `@openai/codex-darwin-arm64` - Updated meta package `optionalDependencies` to use plain version references (e.g. `0.101.0-win32-x64`) instead of npm alias syntax to `@openai/codex`. - Updated `codex-cli/scripts/README.md` to reflect that platform-native artifacts are separate optional dependency packages. ### Why `bin/codex.js` resolves platform packages by name (`@openai/codex-win32-x64`, etc). Publishing platform tarballs under `@openai/codex` introduces alias indirection that can fail to materialize these package names at install time, especially on Windows. Publishing under the concrete names restores direct name alignment and reliable resolution.
npm releases
Use the staging helper in the repo root to generate npm tarballs for a release. For
example, to stage the CLI, responses proxy, and SDK packages for version 0.6.0:
./scripts/stage_npm_packages.py \
--release-version 0.6.0 \
--package codex \
--package codex-responses-api-proxy \
--package codex-sdk
This downloads the native artifacts once, hydrates vendor/ for each package, and writes
tarballs to dist/npm/.
When --package codex is provided, the staging helper builds the lightweight
@openai/codex meta package plus all platform-native packages (for example
@openai/codex-win32-x64) that are consumed as optional dependencies.
If you need to invoke build_npm_package.py directly, run
codex-cli/scripts/install_native_deps.py first and pass --vendor-src pointing to the
directory that contains the populated vendor/ tree.