mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
e23e7cbe46
## Why Once #30114 publishes zsh independently, regular Rust releases should reuse that protected, versioned artifact set instead of rebuilding identical zsh binaries for every Codex version. Keeping the zsh release tag explicit in the workflow also makes future artifact upgrades deliberate and easy to review. This PR assumes the first standalone artifact release will be published as `codex-zsh-v0.1.0` before this change lands. ## What changed - Added `CODEX_ZSH_RELEASE_TAG` near the top of `.github/workflows/rust-release.yml`, initially pinned to `codex-zsh-v0.1.0`. - Download the standalone release’s generated `codex-zsh` DotSlash manifest before assembling Linux and macOS Codex packages. - Added a `--zsh-manifest` package-builder override so release packaging fetches the matching target archive and verifies the size and SHA-256 digest recorded in that manifest. - Removed the reusable zsh build job from regular Rust releases. - Stopped copying zsh archives into each Rust release and stopped regenerating a zsh DotSlash manifest there. Windows packaging remains unchanged because the patched zsh resource is only shipped for supported Unix targets. ## Testing - Added package-helper coverage that supplies a standalone manifest override and verifies the extracted zsh bytes. - Ran the `scripts/codex_package` unit test suite. - Validated `.github/scripts/build-codex-package-archive.sh` with `bash -n`.
26 lines
653 B
Python
26 lines
653 B
Python
"""Fetch the patched zsh fork used by shell_zsh_fork."""
|
|
|
|
from pathlib import Path
|
|
|
|
from .dotslash import fetch_dotslash_executable
|
|
from .targets import REPO_ROOT
|
|
from .targets import TargetSpec
|
|
|
|
|
|
ZSH_MANIFEST = REPO_ROOT / "scripts" / "codex_package" / "codex-zsh"
|
|
ZSH_RESOURCE_PATH = Path("zsh") / "bin" / "zsh"
|
|
|
|
|
|
def resolve_zsh_bin(
|
|
spec: TargetSpec,
|
|
manifest_path: Path | None = None,
|
|
) -> Path | None:
|
|
return fetch_dotslash_executable(
|
|
spec,
|
|
manifest_path=manifest_path or ZSH_MANIFEST,
|
|
artifact_label="codex-zsh",
|
|
cache_key=f"{spec.target}-zsh",
|
|
dest_name="zsh",
|
|
missing_ok=True,
|
|
)
|