Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c76e4380b4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| for path in cargo_manifests(): | ||
| if errors := manifest_errors( |
There was a problem hiding this comment.
Validate root workspace dependencies for feature toggles
The new policy checks are only applied to manifests returned by cargo_manifests() in this loop, which excludes codex-rs/Cargo.toml; that leaves a bypass where someone can add features = [...] or default-features = false for an internal crate under [workspace.dependencies] in the workspace root and still pass this script. Because Cargo propagates workspace dependency settings to crates using workspace = true, this means new internal feature activations can still be introduced without being caught.
Useful? React with 👍 / 👎.
## Why We already enforce workspace metadata and lint inheritance for `codex-rs` manifests, but we still allow new crate features to slip into the workspace. That makes it too easy to add more Cargo-only feature permutations while we are trying to eliminate them. ## What changed - extend `verify_cargo_workspace_manifests.py` to reject new `[features]` tables in workspace crates - reject new optional dependencies that create implicit crate features - reject new workspace-to-workspace `features = [...]` activations and `default-features = false` - add a narrow temporary allowlist for the existing feature-bearing manifests and internal feature activations - make the allowlist self-shrinking so a follow-up removal has to delete its corresponding exception
Why
We already enforce workspace metadata and lint inheritance for
codex-rsmanifests, but we still allow new crate features to slip into the workspace. That makes it too easy to add more Cargo-only feature permutations while we are trying to eliminate them.What changed
verify_cargo_workspace_manifests.pyto reject new[features]tables in workspace cratesfeatures = [...]activations anddefault-features = falseStack created with Sapling. Best reviewed with ReviewStack.