feat: Run cargo shear during CI (#3338)
Run cargo shear as part of the CI to ensure no unused dependencies
This commit is contained in:
22
.github/workflows/rust-ci.yml
vendored
22
.github/workflows/rust-ci.yml
vendored
@@ -63,6 +63,24 @@ jobs:
|
|||||||
- name: cargo fmt
|
- name: cargo fmt
|
||||||
run: cargo fmt -- --config imports_granularity=Item --check
|
run: cargo fmt -- --config imports_granularity=Item --check
|
||||||
|
|
||||||
|
cargo_shear:
|
||||||
|
name: cargo shear
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
needs: changed
|
||||||
|
if: ${{ needs.changed.outputs.codex == 'true' || needs.changed.outputs.workflows == 'true' || github.event_name == 'push' }}
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: codex-rs
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v5
|
||||||
|
- uses: dtolnay/rust-toolchain@1.89
|
||||||
|
- uses: taiki-e/install-action@v2
|
||||||
|
with:
|
||||||
|
tool: cargo-shear
|
||||||
|
version: 1.5.1
|
||||||
|
- name: cargo shear
|
||||||
|
run: cargo shear
|
||||||
|
|
||||||
# --- CI to validate on different os/targets --------------------------------
|
# --- CI to validate on different os/targets --------------------------------
|
||||||
lint_build_test:
|
lint_build_test:
|
||||||
name: ${{ matrix.runner }} - ${{ matrix.target }}${{ matrix.profile == 'release' && ' (release)' || '' }}
|
name: ${{ matrix.runner }} - ${{ matrix.target }}${{ matrix.profile == 'release' && ' (release)' || '' }}
|
||||||
@@ -182,7 +200,7 @@ jobs:
|
|||||||
# --- Gatherer job that you mark as the ONLY required status -----------------
|
# --- Gatherer job that you mark as the ONLY required status -----------------
|
||||||
results:
|
results:
|
||||||
name: CI results (required)
|
name: CI results (required)
|
||||||
needs: [changed, general, lint_build_test]
|
needs: [changed, general, cargo_shear, lint_build_test]
|
||||||
if: always()
|
if: always()
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
@@ -190,6 +208,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo "general: ${{ needs.general.result }}"
|
echo "general: ${{ needs.general.result }}"
|
||||||
|
echo "shear : ${{ needs.cargo_shear.result }}"
|
||||||
echo "matrix : ${{ needs.lint_build_test.result }}"
|
echo "matrix : ${{ needs.lint_build_test.result }}"
|
||||||
|
|
||||||
# If nothing relevant changed (PR touching only root README, etc.),
|
# If nothing relevant changed (PR touching only root README, etc.),
|
||||||
@@ -201,4 +220,5 @@ jobs:
|
|||||||
|
|
||||||
# Otherwise require the jobs to have succeeded
|
# Otherwise require the jobs to have succeeded
|
||||||
[[ '${{ needs.general.result }}' == 'success' ]] || { echo 'general failed'; exit 1; }
|
[[ '${{ needs.general.result }}' == 'success' ]] || { echo 'general failed'; exit 1; }
|
||||||
|
[[ '${{ needs.cargo_shear.result }}' == 'success' ]] || { echo 'cargo_shear failed'; exit 1; }
|
||||||
[[ '${{ needs.lint_build_test.result }}' == 'success' ]] || { echo 'matrix failed'; exit 1; }
|
[[ '${{ needs.lint_build_test.result }}' == 'success' ]] || { echo 'matrix failed'; exit 1; }
|
||||||
|
|||||||
622
codex-rs/Cargo.lock
generated
622
codex-rs/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,6 @@ clap = { version = "4", features = ["derive"] }
|
|||||||
codex-common = { path = "../common", features = ["cli"] }
|
codex-common = { path = "../common", features = ["cli"] }
|
||||||
codex-core = { path = "../core" }
|
codex-core = { path = "../core" }
|
||||||
codex-protocol = { path = "../protocol" }
|
codex-protocol = { path = "../protocol" }
|
||||||
reqwest = { version = "0.12", features = ["json", "stream"] }
|
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
tokio = { version = "1", features = ["full"] }
|
tokio = { version = "1", features = ["full"] }
|
||||||
|
|||||||
@@ -26,14 +26,12 @@ eventsource-stream = "0.2.3"
|
|||||||
futures = "0.3"
|
futures = "0.3"
|
||||||
libc = "0.2.175"
|
libc = "0.2.175"
|
||||||
mcp-types = { path = "../mcp-types" }
|
mcp-types = { path = "../mcp-types" }
|
||||||
mime_guess = "2.0"
|
|
||||||
os_info = "3.12.0"
|
os_info = "3.12.0"
|
||||||
portable-pty = "0.9.0"
|
portable-pty = "0.9.0"
|
||||||
rand = "0.9"
|
rand = "0.9"
|
||||||
regex-lite = "0.1.7"
|
regex-lite = "0.1.7"
|
||||||
reqwest = { version = "0.12", features = ["json", "stream"] }
|
reqwest = { version = "0.12", features = ["json", "stream"] }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_bytes = "0.11"
|
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
sha1 = "0.10.6"
|
sha1 = "0.10.6"
|
||||||
shlex = "1.3.0"
|
shlex = "1.3.0"
|
||||||
@@ -56,7 +54,6 @@ tracing = { version = "0.1.41", features = ["log"] }
|
|||||||
tree-sitter = "0.25.9"
|
tree-sitter = "0.25.9"
|
||||||
tree-sitter-bash = "0.25.0"
|
tree-sitter-bash = "0.25.0"
|
||||||
uuid = { version = "1", features = ["serde", "v4"] }
|
uuid = { version = "1", features = ["serde", "v4"] }
|
||||||
whoami = "1.6.1"
|
|
||||||
wildmatch = "2.4.0"
|
wildmatch = "2.4.0"
|
||||||
|
|
||||||
|
|
||||||
@@ -85,3 +82,6 @@ tempfile = "3"
|
|||||||
tokio-test = "0.4"
|
tokio-test = "0.4"
|
||||||
walkdir = "2.5.0"
|
walkdir = "2.5.0"
|
||||||
wiremock = "0.6"
|
wiremock = "0.6"
|
||||||
|
|
||||||
|
[package.metadata.cargo-shear]
|
||||||
|
ignored = ["openssl-sys"]
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ codex-common = { path = "../common", features = [
|
|||||||
"sandbox_summary",
|
"sandbox_summary",
|
||||||
] }
|
] }
|
||||||
codex-core = { path = "../core" }
|
codex-core = { path = "../core" }
|
||||||
codex-login = { path = "../login" }
|
|
||||||
codex-ollama = { path = "../ollama" }
|
codex-ollama = { path = "../ollama" }
|
||||||
codex-protocol = { path = "../protocol" }
|
codex-protocol = { path = "../protocol" }
|
||||||
owo-colors = "4.2.0"
|
owo-colors = "4.2.0"
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ path = "src/lib.rs"
|
|||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
[target.'cfg(target_os = "linux")'.dependencies]
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
anyhow = "1"
|
|
||||||
clap = { version = "4", features = ["derive"] }
|
clap = { version = "4", features = ["derive"] }
|
||||||
codex-common = { path = "../common", features = ["cli"] }
|
|
||||||
codex-core = { path = "../core" }
|
codex-core = { path = "../core" }
|
||||||
landlock = "0.4.1"
|
landlock = "0.4.1"
|
||||||
libc = "0.2.175"
|
libc = "0.2.175"
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ serde = { version = "1", features = ["derive"] }
|
|||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
sha2 = "0.10"
|
sha2 = "0.10"
|
||||||
tempfile = "3"
|
tempfile = "3"
|
||||||
thiserror = "2.0.16"
|
|
||||||
tiny_http = "0.12"
|
tiny_http = "0.12"
|
||||||
tokio = { version = "1", features = [
|
tokio = { version = "1", features = [
|
||||||
"io-std",
|
"io-std",
|
||||||
@@ -31,5 +30,4 @@ urlencoding = "2.1"
|
|||||||
webbrowser = "1.0"
|
webbrowser = "1.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
pretty_assertions = "1.4.1"
|
|
||||||
tempfile = "3"
|
tempfile = "3"
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ schemars = "0.8.22"
|
|||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
shlex = "1.3.0"
|
shlex = "1.3.0"
|
||||||
strum_macros = "0.27.2"
|
|
||||||
tokio = { version = "1", features = [
|
tokio = { version = "1", features = [
|
||||||
"io-std",
|
"io-std",
|
||||||
"macros",
|
"macros",
|
||||||
@@ -44,5 +43,4 @@ assert_cmd = "2"
|
|||||||
mcp_test_support = { path = "tests/common" }
|
mcp_test_support = { path = "tests/common" }
|
||||||
pretty_assertions = "1.4.1"
|
pretty_assertions = "1.4.1"
|
||||||
tempfile = "3"
|
tempfile = "3"
|
||||||
tokio-test = "0.4"
|
|
||||||
wiremock = "0.6"
|
wiremock = "0.6"
|
||||||
|
|||||||
@@ -9,20 +9,16 @@ path = "lib.rs"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1"
|
anyhow = "1"
|
||||||
assert_cmd = "2"
|
assert_cmd = "2"
|
||||||
codex-core = { path = "../../../core" }
|
|
||||||
codex-mcp-server = { path = "../.." }
|
codex-mcp-server = { path = "../.." }
|
||||||
codex-protocol = { path = "../../../protocol" }
|
codex-protocol = { path = "../../../protocol" }
|
||||||
mcp-types = { path = "../../../mcp-types" }
|
mcp-types = { path = "../../../mcp-types" }
|
||||||
pretty_assertions = "1.4.1"
|
pretty_assertions = "1.4.1"
|
||||||
serde = { version = "1" }
|
serde = { version = "1" }
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
shlex = "1.3.0"
|
|
||||||
tempfile = "3"
|
|
||||||
tokio = { version = "1", features = [
|
tokio = { version = "1", features = [
|
||||||
"io-std",
|
"io-std",
|
||||||
"macros",
|
"macros",
|
||||||
"process",
|
"process",
|
||||||
"rt-multi-thread",
|
"rt-multi-thread",
|
||||||
] }
|
] }
|
||||||
uuid = { version = "1", features = ["serde", "v4"] }
|
|
||||||
wiremock = "0.6"
|
wiremock = "0.6"
|
||||||
|
|||||||
@@ -24,9 +24,7 @@ tokio = { version = "1", features = [
|
|||||||
"rt-multi-thread",
|
"rt-multi-thread",
|
||||||
"signal",
|
"signal",
|
||||||
] }
|
] }
|
||||||
toml = "0.9.5"
|
|
||||||
tracing = { version = "0.1.41", features = ["log"] }
|
tracing = { version = "0.1.41", features = ["log"] }
|
||||||
wiremock = "0.6"
|
wiremock = "0.6"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempfile = "3"
|
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ icu_locale_core = "2.0.0"
|
|||||||
mcp-types = { path = "../mcp-types" }
|
mcp-types = { path = "../mcp-types" }
|
||||||
mime_guess = "2.0.5"
|
mime_guess = "2.0.5"
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_bytes = "0.11"
|
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
serde_with = { version = "3.14.0", features = ["macros", "base64"] }
|
serde_with = { version = "3.14.0", features = ["macros", "base64"] }
|
||||||
strum = "0.27.2"
|
strum = "0.27.2"
|
||||||
@@ -29,3 +28,7 @@ uuid = { version = "1", features = ["serde", "v4"] }
|
|||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
pretty_assertions = "1.4.1"
|
pretty_assertions = "1.4.1"
|
||||||
|
|
||||||
|
[package.metadata.cargo-shear]
|
||||||
|
# Required because the not imported as strum_macros in non-nightly builds.
|
||||||
|
ignored = ["strum"]
|
||||||
|
|||||||
@@ -59,9 +59,7 @@ ratatui = { version = "0.29.0", features = [
|
|||||||
"unstable-rendered-line-info",
|
"unstable-rendered-line-info",
|
||||||
"unstable-widget-ref",
|
"unstable-widget-ref",
|
||||||
] }
|
] }
|
||||||
ratatui-image = "8.0.0"
|
|
||||||
regex-lite = "0.1"
|
regex-lite = "0.1"
|
||||||
reqwest = { version = "0.12", features = ["json"] }
|
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_json = { version = "1", features = ["preserve_order"] }
|
serde_json = { version = "1", features = ["preserve_order"] }
|
||||||
shlex = "1.3.0"
|
shlex = "1.3.0"
|
||||||
@@ -81,12 +79,10 @@ tokio-stream = "0.1.17"
|
|||||||
tracing = { version = "0.1.41", features = ["log"] }
|
tracing = { version = "0.1.41", features = ["log"] }
|
||||||
tracing-appender = "0.2.3"
|
tracing-appender = "0.2.3"
|
||||||
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
||||||
tui-input = "0.14.0"
|
|
||||||
tui-markdown = "0.3.3"
|
tui-markdown = "0.3.3"
|
||||||
unicode-segmentation = "1.12.0"
|
unicode-segmentation = "1.12.0"
|
||||||
unicode-width = "0.1"
|
unicode-width = "0.1"
|
||||||
url = "2"
|
url = "2"
|
||||||
uuid = "1"
|
|
||||||
pathdiff = "0.2"
|
pathdiff = "0.2"
|
||||||
|
|
||||||
[target.'cfg(unix)'.dependencies]
|
[target.'cfg(unix)'.dependencies]
|
||||||
|
|||||||
Reference in New Issue
Block a user