Skip to content

Latest commit

 

History

History
62 lines (47 loc) · 3.26 KB

CONTRIBUTING.md

File metadata and controls

62 lines (47 loc) · 3.26 KB

Contribution Guide

Thank you for investing your time in contributing to rekordcrate! Here's a quick overview of the most important things to keep in mind:

  • Be polite and respectful to each other.
  • Work in feature branches, and make sure to base your work on the appropriate base branch. If you started from the wrong branch, please rebase and change the PR target.
  • Use our pre-commit hooks.
  • Write meaningful commit messages and use conventional commit messages.
  • Open a draft PR to get early feedback.
  • Ensure that every commit builds. Please fix broken commits by rebasing.
  • Run cargo test before committing to ensure that all tests pass.
  • Try to split up bigger changes into smaller PRs that are easier to review (which means they will be merged faster!)

Using pre-commit Hooks

We're using the pre-commit framework to automatically run some checks at commit time. This ensures that every commit fulfills the basic requirements to be mergeable.

$ pre-commit install
pre-commit installed at .git/hooks/pre-commit
$ pre-commit install --hook-type commit-msg
pre-commit installed at .git/hooks/commit-msg

Conventional Commits

This project follows the conventional commit specification. This means that every commit message should have the following form:

type(optional-scope): description

Each commit should use one of those types (sometimes also called groups):

Type Use when the commit...
build Affects the build system or external dependencies.
chore Does not belong into any other category and should not be listed in the changelog.
ci Changes the CI/pre-commit configuration files and scripts.
docs Only changes the documentation.
feat Adds a new feature.
fix Fixes a bug present in a released version (otherwise use chore).
perf Improves the performance.
refactor Changes the code but neither fixes a bug nor adds a feature.
style Only reformats the code (white-space, formatting, missing semi-colons, etc)
test Affects unit/integration tests.

Optionally, commits may also specify a scope. Here's a non-exhaustive list that helps picking the correct scope.

Scope Use when commit primarily modifies...
setting The *SETTING.DAT file parser (setting.rs)
anlz The ANLZ*.DAT file parser (anlz.rs)
pdb The PDB file parser (pdb.rs)
contributing The contribution guide (i.e. this document - CONTRIBUTING.md), usually used with type docs
readme The readme file (README.md), usually used with types chore or docs
changelog The changelog (CHANGELOG.md), usually used with types chore or docs
pre-commit The pre-commit hooks configuration, usually used with type ci

Thank you very much for your interest in rekordcrate, we're looking forward to your pull requests.