ci: stop running rust CI with --all-features (#16473)

## Why

Now that workspace crate features have been removed and
`.github/scripts/verify_cargo_workspace_manifests.py` hard-bans new
ones, Rust CI should stop building and testing with `--all-features`.

Keeping `--all-features` in CI no longer buys us meaningful coverage for
`codex-rs`, but it still makes the workflow look like we rely on Cargo
feature permutations that we are explicitly trying to eliminate. It also
leaves stale examples in the repo that suggest `--all-features` is a
normal or recommended way to run the workspace.

## What changed

- removed `--all-features` from the Rust CI `cargo chef cook`, `cargo
clippy`, and `cargo nextest` invocations in
`.github/workflows/rust-ci-full.yml`
- updated the `just test` guidance in `justfile` to reflect that
workspace crate features are banned and there should be no need to add
`--all-features`
- updated the multiline command example and snapshot in
`codex-rs/tui/src/history_cell.rs` to stop rendering `cargo test
--all-features --quiet`
- tightened the verifier docstring in
`.github/scripts/verify_cargo_workspace_manifests.py` so it no longer
talks about temporary remaining exceptions

## How tested

- `python3 .github/scripts/verify_cargo_workspace_manifests.py`
- `cargo test -p codex-tui`
This commit is contained in:
Michael Bolin
2026-04-01 14:06:20 -07:00
committed by GitHub
Unverified
parent e6f5451a2c
commit 148dbb25f0
5 changed files with 10 additions and 11 deletions
@@ -6,8 +6,7 @@ Checks:
- Crates inherit `[workspace.package]` metadata.
- Crates opt into `[lints] workspace = true`.
- Crate names follow the codex-rs directory naming conventions.
- Workspace manifests do not introduce new workspace crate feature toggles
while the remaining exceptions are being removed.
- Workspace manifests do not introduce workspace crate feature toggles.
"""
from __future__ import annotations
+3 -3
View File
@@ -445,10 +445,10 @@ jobs:
set -euo pipefail
RECIPE="${RUNNER_TEMP}/chef-recipe.json"
cargo chef prepare --recipe-path "$RECIPE"
cargo chef cook --recipe-path "$RECIPE" --target ${{ matrix.target }} --release --all-features
cargo chef cook --recipe-path "$RECIPE" --target ${{ matrix.target }} --release
- name: cargo clippy
run: cargo clippy --target ${{ matrix.target }} --all-features --tests --profile ${{ matrix.profile }} --timings -- -D warnings
run: cargo clippy --target ${{ matrix.target }} --tests --profile ${{ matrix.profile }} --timings -- -D warnings
- name: Upload Cargo timings (clippy)
if: always()
@@ -672,7 +672,7 @@ jobs:
- name: tests
id: test
run: cargo nextest run --all-features --no-fail-fast --target ${{ matrix.target }} --cargo-profile ci-test --timings
run: cargo nextest run --no-fail-fast --target ${{ matrix.target }} --cargo-profile ci-test --timings
env:
RUST_BACKTRACE: 1
NEXTEST_STATUS_LEVEL: leak
+2 -2
View File
@@ -4057,7 +4057,7 @@ mod tests {
#[test]
fn multiline_command_wraps_with_extra_indent_on_subsequent_lines() {
// Create a completed exec cell with a multiline command
let cmd = "set -o pipefail\ncargo test --all-features --quiet".to_string();
let cmd = "set -o pipefail\ncargo test -p codex-tui --quiet".to_string();
let call_id = "c1".to_string();
let mut cell = ExecCell::new(
ExecCall {
@@ -4075,7 +4075,7 @@ mod tests {
// Mark call complete so it renders as "Ran"
cell.complete_call(&call_id, CommandOutput::default(), Duration::from_millis(1));
// Small width to force wrapping on both lines
// Small width to keep the wrapped continuation-indent path covered.
let width: u16 = 28;
let lines = cell.display_lines(width);
let rendered = render_lines(&lines).join("\n");
@@ -3,6 +3,6 @@ source: tui/src/history_cell.rs
expression: rendered
---
• Ran set -o pipefail
│ cargo test
--all-features --quiet
│ cargo test -p codex-tui
│ --quiet
└ (no output)
+2 -2
View File
@@ -46,8 +46,8 @@ install:
# --no-fail-fast is important to ensure all tests are run.
#
# Run `cargo install cargo-nextest` if you don't have it installed.
# Prefer this for routine local runs; use explicit `cargo test --all-features`
# only when you specifically need full feature coverage.
# Prefer this for routine local runs. Workspace crate features are banned, so
# there should be no need to add `--all-features`.
test:
cargo nextest run --no-fail-fast