How to Contribute

Contributions are always welcome! Please use the following guidelines when contributing to cargo-outdated

Justfile

We use just as a command runner which should simplify running the same tests on your changes locally that will be run in CI.

After installing just (cargo install, via Github Release binaries, etc.) you can run just help to see a list of valid targets. Most importantly just ci should run the entire CI suit against your changes (except only for your native OS and architecture).

just lint is a good recipe to run while developing to run the linting and formatting checks prior to trying to run the entire test suite.

At the time of this writing the recipes look like this:

$ just help
Available recipes:
    bench $RUSTFLAGS='-Ctarget-cpu=native' # Run benchmarks
    ci                  # Run all the checks required for CI to pass
    clean
    debug TEST
    default
    fmt                 # Format the code
    fmt-check           # Check the formatting of the code but don't actually format it
    help                # Get a list of recipes you can run
    lint                # Lint the code
    run-test TEST
    run-tests
    setup               # Install required tools for development
    spell-check         # Check for typos
    test TEST_RUNNER='cargo nextest run' # Run the test suite
    update-contributors

Commit Subjects

As you make your commit messages; please note that we use a conventional changelog format so we can update my changelog using clog

  • Format your commit subject line using the following format: TYPE(COMPONENT): MESSAGE where TYPE is one of the following:
    • feat - A new feature
    • imp - An improvement to an existing feature
    • perf - A performance improvement
    • docs - Changes to documentation only
    • tests - Changes to the testing framework or tests only
    • fix - A bug fix
    • refactor - Code functionality doesn't change, but underlying structure may
    • style - Stylistic changes only, no functionality changes
    • wip - A work in progress commit (Should typically be git rebase'ed away)
    • chore - Catch all or things that have to do with the build system, etc
  • The COMPONENT is optional, and may be a single file, directory, or logical component. Can be omitted if commit applies globally