Contribution guidelines

First off, thank you for considering contributing to taskline.

If your contribution is not straightforward, please first discuss the change you wish to make by creating a new issue before making the change.

Reporting issues

Before reporting an issue on the issue tracker, please check that it has not already been reported by searching for some related keywords.

Pull requests

Try to do one pull request per change.

Commit Message Format

This project adheres to Conventional Commits. A specification for adding human and machine readable meaning to commit messages.

Commit Message Header

<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │       │
  │       └─⫸ Commit Scope
  │
  └─⫸ Commit Type: feat|fix|build|ci|docs|perf|refactor|test|chore

Type

featFeaturesA new feature
fixBug FixesA bug fix
docsDocumentationDocumentation only changes
styleStylesChanges that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
refactorCode RefactoringA code change that neither fixes a bug nor adds a feature
perfPerformance ImprovementsA code change that improves performance
testTestsAdding missing tests or correcting existing tests
buildBuildsChanges that affect the build system or external dependencies (example scopes: main, serde)
ciContinuous IntegrationsChanges to our CI configuration files and scripts (example scopes: Github Actions)
choreChoresOther changes that don't modify src or test files
revertRevertsReverts a previous commit

Developing

Set up

This is no different than other Rust projects.

git clone https://github.com/daxartio/taskline
cd taskline
cargo test

Useful Commands

  • Run Clippy:

    cargo clippy --all-targets --all-features --workspace
    
  • Run all tests:

    cargo test --all-features --workspace
    
  • Check to see if there are code formatting issues

    cargo fmt --all -- --check
    
  • Format the code in the project

    cargo fmt --all