Thank you for your interest in contributing to iai-callgrind!
Feature requests and bug reports should be reported in the Issue Tracker. Please have a look at existing issues with the enhancement or bug labels.
All patches have to be sent on Github as pull requests. Before starting a pull request, it is best to open an issue first so no efforts are wasted.
If you are looking for a place to start contributing to iai-callgrind, take a look at the help wanted or good first issue issues.
The minimum supported version (MSRV) of iai-callgrind is Rust 1.60.0
and all
patches are expected to work with the minimum supported version.
All notable changes need to be added to the CHANGELOG.
Clone this repo
git clone https://github.com/iai-callgrind/iai-callgrind.git
and then change the MSRV locally
cd iai-callgrind
rustup override set 1.60.0
What is left is to setup your favorite editor to use nightly rustfmt and clippy
from the rust stable
toolchain in order to pass the formatting and linting
checks in the ci
.
iai-callgrind lacks tests and contributions expanding the test suite are also very welcome. Patches have to include tests to verify (at a minimum) that the whole pipeline runs through without errors.
The benches in the benchmark-tests
package run the whole pipeline which is
good for verifying that there are no panics or errors. The concrete results of
the benchmarks are not checked there. Use unit tests or integration tests in the
iai-callgrind-runner
package to test for concrete results.
If there are any outstanding questions about contributing to iai-callgrind, they can be asked on the iai-callgrind issue tracker.