refactor: consolidate rust workspace under crates#4087
Conversation
Suggestions (Recommended Improvements)1. Missing
|
|
Addressed. Added a workspace-level I used: [toolchain]
channel = "stable"
components = ["rustfmt", "clippy"]instead of pinning |
|
Supply-chain update for the Rust workspace CI. I wired in
A bit more context on stage 2: I added maintainer trust only where it was clearly high leverage across the graph, for example shared ecosystem maintainers around That got us a large reduction quickly, but it also has an obvious limitation: blanket maintainer trust is weaker than crate-by-crate audits. It is a pragmatic middle ground for CI hardening, not the end state. The remaining debt is now explicit in
So the current state is:
|
|
Follow-up on the Rust security tooling split: I also removed Reason: The current split is now:
So advisory coverage is still enforced, but it now happens through |
a3ba518 to
81b8743
Compare
f07511b to
2ccd31c
Compare
jonpspri
left a comment
There was a problem hiding this comment.
Can we double-check the numbering of the ADRs? Feels like we may have some overlap.
don't see any overlap in the ADR folder? this PR is just updating some old ADRs not creating new ones with correct paths. |
dima-zakharov
left a comment
There was a problem hiding this comment.
I am happy we can run cargo test, cargo check , etc from the root folder to check everything. Must have option.
Some things to consider later:
| # | Severity | Description | Recommendation |
|---|---|---|---|
| 1 | Medium | Root Cargo.toml glob crates/* auto-includes all crates |
Consider explicit members = ["crates/mcp_runtime", "crates/wrapper", "crates/request_logging_masking_native_extension"] or document the glob policy |
| 2 | Low | 88 cargo-vet exemptions | Track as a follow-up issue; aim to reduce over next sprint(s) |
| 3 | Low | deny.toml allowlist is long |
Audit for unused entries; unused-allowed-license = "allow" makes this non-blocking |
| 4 | Low | Removed Makefile venv policy comments | Add a shorter note back for contributor onboarding |
| 5 | Low | CHANGELOG not updated | Add entry for Rust workspace consolidation |
| 6 | Info | mcp-servers/rust/* excluded from workspace |
Document rationale in ADR-041 or root Cargo.toml comment |
| 7 | Low | rust.yml at 668 lines |
Factor reusable steps into composite actions for maintainability |
|
Addressed.
|
8eaafc5 to
0ce76f3
Compare
0ce76f3 to
0b6e3a4
Compare
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
7797c95 to
69a8255
Compare
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Signed-off-by: lucarlig <luca.carlig@ibm.com>
✨ Feature / Enhancement PR
🔗 Epic / Issue
Closes #3027
🚀 Summary (1-2 sentences)
This PR finishes the Rust workspace move under
crates/, adds the new local PyO3 native extension crate, and updates CI, supply-chain policy, docs, and container build paths to match the current layout. It also restores full Rust validation on non-draft PRs and adds regression tests so the repo keeps the intended crate, workflow, and container boundaries.🧪 Checks
📓 Notes (optional)
crates/:crates/mcp_runtimecrates/wrappercrates/request_logging_masking_native_extensionpr-*hot path.rust fmtandrust clippynow run on Ubuntu only; build/test coverage remains on both Ubuntu and macOS.Containerfile.litenow:crates/**when a crate hasCargo.toml+pyproject.toml+maturincrates/**bin targetsENABLE_RUST=trueis validated on PRs