Rust
Events
This material is being used during the events organized in the Code-Mavens Meetup group.
Docker
Chat
How to select a Rust project to contribute to?
- Pick a Rust-based project you use.
- Pick a Rust crate that your code directly depends on. They are listed in the
Cargo.tomlfile. - Pick a Rust crate that your code indirectly depends on. They are listed in the
Cargo.lockfile. - Search on GitHub: A semi-popular, recently updated Rust project
stars:100..1000 pushed:>2025-10-01 language:Rust - A recently updated crate or a crate in a category you are interested in. See Crates.io.
- Pick a popular project and work on stale PRs. That is PRs where there is already good work, but the original author (of the PR) has vanished.
- Use the Rust Digger once it is running again.
What and how to contribute to a Rust project?
- Link to VCS: Find the listing of the crate on Crates.io and check if it links to its VCS. If not, try to find the repository and send a PR to include the link. If you cannot find the repo then you cannot contribute to the project. You might want to send a message to the author expressing interest in contributing and asking if there is a public repository.
- Testing:
- Run the tests of the crate locally or better yet in a Docker container. Report if there is any test failures or if there are difficulties in running the tests.
- Generate test coverage report using tarpaulin.
- Find holes in the test coverage, write tests to check parts of the code that were not tested yet.
- CI
- If there are tests, check if there is a CI?
- Setting up CI: GitHub Actions or GitLab pipelines.
- Dependencies
- Add dependabot for GitHub Actions and for the dependencies.
- Code formatting
- Using
cargo fmt --checkcheck if the code is well formatted. If not open an issue suggestion to do it.
- Using
- Linting
- Use
cargo clippyto run the linter. Configure Clippy.
- Use
- Fuzz testing
- Mutation testing with cargo-mutants
- See article on Mutation testing librsvg
- Code complexity analyzis
- Refactoring
- Code reading
Low hanging fruits from the Rust Digger
- Has homepage but no repo 2025-08-15 current count 3,619 - 3,608 - 3,728
chore: Update Cargo.toml use repository instead of homepage
chore: use `repository` field instead of `homepage` field
According to the [manifest](https://doc.rust-lang.org/cargo/reference/manifest.html)
it seems the `repository` field is preferable.
More explanation https://github.com/szabgab/rust-digger/issues/119
- GitHub with www Since 2021-01-01 Till 2025-07-03 current count: 253
chore: Minor change to remove www from github url in Cargo.toml
GitHub redirects to the address without www anyway, so let's put that in Cargo.toml.
See also https://github.com/szabgab/rust-digger/issues/96
- Repo with http Since 2020-01-01 Till 2025-06-28 Current count: 355
chore: Minor change to use https in the github url in Cargo.toml
GitHub redirects to the address with https anyway, so let's put that in Cargo.toml.
See also https://github.com/szabgab/rust-digger/issues/97
chore: Fix typo in Cargo.toml
Given the most recent change here I know it is unlikely you will publish a new version of this crate on crates.io,
but in case you you might want to fix this typo in `Cargo.toml`.
See also: https://github.com/szabgab/rust-digger/issues/100
-
Lower-case cargo.toml Most recent is 2023-08-10, Maybe I should send PRs or open issues?
-
No homepage, no repo handled: 2025-06-06 current count: 28,911
chore: Update Cargo.toml add repository field
To make it easier for potential contributors and automated tools to find the repository.
More explanation: https://github.com/szabgab/rust-digger/issues/89
Projects
- states-rs
- dvb
- 2026.01.16
- chore: Add repository URL to Cargo.toml - Waiting π°οΈ
- hannibal-derive
- 2026.01.16
- chore: Add repository field to Cargo.toml - Waiting π°οΈ
- resource-bound
- 2026.01.16
- chore: Fix the repository URL in Cargo.toml - Waiting π°οΈ
- ferrotype
- 2026.01.13
- PR: Add GitHub action to run the test on every push - Waiting π°οΈ
- stand
- 2026.01.13
- Add GitHub Actions to run the tests on every push - Waiting π°οΈ
- Learn: serena
- k8s-openapi-ext-rs
- 2026.01.13
- PR: add github actions with flags as needed - Merged β
- Learn: CodeRabbit
- Learn: just
- Learn: mise
- PyDigger
- 2026.01.09
- During the Python session we encountered some issues with PyDigger and one of the participants sent this PR:
- feat: add support for License Expression field - Merged β
- mkenv
- Issue: Test panics when USER env var is not set in a Docker container - Waiting π°οΈ
- PR: make sure the tarpaulin test coverage report is not added to git - Merged β
- PR: add a test case that calls the default_fmt_val method - Waiting π°οΈ
-
- PR: run cargo fmt βcheck in the CI - Merged β
- PR: add dependabot to send PRs when new version of the actions or the crates are available - Merged β
- PR: run cargo clippy in the CI - Waiting π°οΈ
- Issue with lots of PRs:
- Send PRs to remove www from the github url of the repository in Cargo.toml
- Send PRs to replace http by https in the github url of the repository in Cargo.toml
- Send PRs or open issues for Crates with error in Crate.toml
- Send PRs to Crates to use the repository field instead of the homepage field (July-August 2025)