5 Commits

  • fix(nix): use correct version from Cargo.toml in flake build (#11770)
    ## Summary
    
    - When building via `nix build`, the binary reports `codex-cli 0.0.0`
    because the workspace `Cargo.toml` uses `0.0.0` as a placeholder on
    `main`. This causes the update checker to always prompt users to upgrade
    even when running the latest code.
    - Reads the version from `codex-rs/Cargo.toml` at flake evaluation time
    using `builtins.fromTOML` and patches it into the workspace `Cargo.toml`
    before cargo builds via `postPatch`.
    - On release commits (e.g. tag `rust-v0.101.0`), the real version is
    used as-is. On `main` branch builds, falls back to
    `0.0.0-dev+<shortRev>` (or `0.0.0-dev+dirty`), which the update
    checker's `parse_version` ignores — suppressing the spurious upgrade
    prompt.
    
    | Scenario | Cargo.toml version | Nix `version` | Binary reports |
    Upgrade nag? |
    |---|---|---|---|---|
    | Release commit (e.g. `rust-v0.101.0`) | `0.101.0` | `0.101.0` |
    `codex-cli 0.101.0` | Only if newer exists |
    | Main branch (committed) | `0.0.0` | `0.0.0-dev+b934ffc` | `codex-cli
    0.0.0-dev+b934ffc` | No |
    | Main branch (uncommitted) | `0.0.0` | `0.0.0-dev+dirty` | `codex-cli
    0.0.0-dev+dirty` | No |
    
    ## Test plan
    
    - [ ] `nix build` from `main` branch and verify `codex --version`
    reports `0.0.0-dev+<shortRev>` instead of `0.0.0`
    - [ ] Verify the update checker does not show a spurious upgrade prompt
    for dev builds
    - [ ] Confirm that on a release commit where `Cargo.toml` has a real
    version, the binary reports that version correctly
  • fix(nix): update flake for newer Rust toolchain requirements (#10302)
    ## Summary
    
    - Add rust-overlay input to provide newer Rust versions (rama crates
    require rustc 1.91.0+)
    - Add devShells output with complete development environment
    - Add missing git dependency hashes to codex-rs/default.nix
    
    ## Changes
    
    **flake.nix:**
    - Added `rust-overlay` input to get newer Rust toolchains
    - Updated `packages` output to use `rust-bin.stable.latest.minimal` for
    builds
    - Added `devShells` output with:
      - Rust with `rust-src` and `rust-analyzer` extensions for IDE support
    - Required build dependencies: `pkg-config`, `openssl`, `cmake`,
    `libclang`
      - Environment variables: `PKG_CONFIG_PATH`, `LIBCLANG_PATH`
    
    **codex-rs/default.nix:**
    - Added missing `outputHashes` for git dependencies:
      - `nucleo-0.5.0`, `nucleo-matcher-0.3.1`
      - `runfiles-0.1.0`
      - `tokio-tungstenite-0.28.0`, `tungstenite-0.28.0`
    
    ## Test Plan
    
    - [x] `nix develop` enters shell successfully
    - [x] `nix develop -c rustc --version` shows 1.93.0
    - [x] `nix develop -c cargo build` completes successfully
  • Fix nix build (#4048)
    I dropped the build of the old cli from the flake, where the default.nix
    already seemed to removed in a previous iterations. Then I updated
    flake.nix and codex-rs expression to be able to build again (see
    individual commits for details).
    
    Tested by running the following builds:
    
    
    ```
    $ nix build .#packages.x86_64-linux.codex-rs
    $ nix build .#packages.aarch64-darwin.codex-cli
    ```
    
    ---------
    
    Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
  • restructure flake for codex-rs (#888)
    Right now since the repo is having two different implementations of
    codex, flake was updated to work with both typescript implementation and
    rust implementation
  • feat: add Nix flake for reproducible development environments (#225)
    This PR introduces a Nix flake configuration to enable reproducible
    development environments:
    
    - Adds flake.nix defining a devShell with necessary dependencies.
    - Updates README.md with usage instructions for `nix develop`.
    - Ensures CI compatibility with Nix for consistent builds.