mirror of
https://github.com/openai/codex.git
synced 2026-04-26 15:45:02 +00:00
we can't use runfiles directory on Windows due to path lengths, so swap to manifest strategy. Parsing the manifest is a bit complex and the format is changing in Bazel upstream, so pull in the official Rust library (via a small hack to make it importable...) and cleanup all the associated logic to work cleanly in both bazel and cargo without extra confusion
21 lines
1.0 KiB
Markdown
21 lines
1.0 KiB
Markdown
# codex-utils-cargo-bin runfiles strategy
|
|
|
|
We disable the directory-based runfiles strategy and rely on the manifest
|
|
strategy across all platforms. This avoids Windows path length issues and keeps
|
|
behavior consistent in local and remote builds on all platforms. Bazel sets
|
|
`RUNFILES_MANIFEST_FILE`, and the `codex-utils-cargo-bin` helpers use the
|
|
`runfiles` crate to resolve runfiles via that manifest.
|
|
|
|
Function behavior:
|
|
- `cargo_bin`: reads `CARGO_BIN_EXE_*` environment variables (set by Cargo or
|
|
Bazel) and resolves them via the runfiles manifest when `RUNFILES_MANIFEST_FILE`
|
|
is present. When not under runfiles, it only accepts absolute paths from
|
|
`CARGO_BIN_EXE_*` and returns an error otherwise.
|
|
- `find_resource!`: used by tests to locate fixtures. It chooses the Bazel
|
|
runfiles resolution path when `RUNFILES_MANIFEST_FILE` is set, otherwise it
|
|
falls back to a `CARGO_MANIFEST_DIR`-relative path for Cargo runs.
|
|
|
|
Background:
|
|
- https://bazel.build/docs/runfiles
|
|
- https://bazel.build/docs/runfiles#runfiles-manifest
|