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
Projects
- 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)