Comments (2)
How about: find all Cargo.toml
files at or below the current working directory, but to not crawl subdirectories if a Cargo.toml
is found. Instead call cargo-metadata
to find the workspace members and check those.
On problem I have now is that generated crates in the target
directory also get checked. For example, trybuild
generates a crate to run compile-fail tests. These may easily end up using less dependencies, but the generated crate copies all dependencies, just in case.
Alternatively, but more difficult I think: find all Cargo.toml
files, but ignore target
directories of workspaces. However, this still requires something like cargo-metadata
to correctly identify the target
directory.
from cargo-machete.
Thanks for opening an issue. I, for one, quite like that I could run the tool independently of workspaces in a directory that contained multiple Rust projects (unrelated to each other, i.e. no workspaces). And it'd be an API breaking change. So maybe we can introduce a CLI flag that respects the workspace
by default.
Out of curiosity, you're saying it's useful in monorepos. Right now cargo-machete
will look only for Cargo.toml
file, so it only depends on the number of directories; do you see a large difference in runtime, when comparing:
- running from the root
- sum of (running in each directory belonging to the workspace)
from cargo-machete.
Related Issues (20)
- Feature Request: Optimize [build-dependencies] as well HOT 2
- [bug] missing field `version` - should not report HOT 6
- No logo / mascot HOT 1
- Investigate Nightly CI failure
- Is there a way to ignore a workspace member crate? HOT 2
- Github Action fails in CI on windows-latest HOT 2
- Falso positive when package name and lib name differ HOT 3
- [Rust 1.77.0] cargo machete --with-metadata panicking HOT 2
- Feature Idea: Centralized config file HOT 1
- --with-metadata false positive with build-dependencies HOT 2
- When no issues are found report message is incomplete.
- Add a benchmark
- `--with-metadata` does not correctly analyze build scripts HOT 1
- Related dependencies are signed as unused but they are not HOT 3
- Make github action take a `working_dir` argument HOT 1
- False positive for macros HOT 2
- Create a docker image? HOT 4
- Support for skipping sub-directories HOT 1
- actions-rs/cargo@v1 use Node12. Please update the following actions to use Node.js 16 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cargo-machete.