Skip to content

Project Charter

DJO edited this page Apr 26, 2022 · 15 revisions

Foreword

This file contains the Mithril Project Charter, including but not limited to coding standards and best practices when contributing.

Coding Standards

Rust

  • Use rustfmt to format the code before submitting a commit.

  • This can be easily done on saving files in your IDE, such as in Visual Studio Code with the Rust Extension.

Why

It helps the team keep a clean and neat codebase and straightforward commits diffs

Haskell

TBD

Git

Commit message format

Here are seven rules for great git commit messages:

  1. Separate subject from body with a blank line

  2. Limit the subject line to 50 characters (soft limit)

  3. Capitalize the subject line

  4. Do not end the subject line with a period

  5. Use the imperative mood in the subject line and suffix with ticket number if applicable

  6. Wrap the body at 72 characters (hard limit)

  7. Use the body to explain what and why vs. how

Why

Git commit messages are our only source of why something was changed the way it was changed. So we better make the readable, concise and > detailed (when required).

Thanks to the Hydra team for these Git guidelines! Hydra Wiki

Pull Request

Here are the rules we tend to apply when using PR:

  1. Name your branches properly: for example username/branch-that-does-something

  2. Prefer PR over main branch commit (they are reserved for very low impact updates and should used with parcimony)

  3. Prefer Rebase and Merge than Create a merge commit

  4. Prefer multiple atomic commits (it will facilitate the reviews)

  5. Make sure the CI is all green 🟢 and that there's no lint warnings (such as the one from clippy for Rust)

  6. Ask for reviewers (caution, they may depend on the modified directories): 1 approval is the general rule, wait for 2 or more if the impact is high

Why

Code reviews are important to share knowledge and to deliver better software quality!

List of Reviewers

  • .github: anyone
  • demo: anyone
  • mithril-core: @iquerejeta at least
  • mithril-proto: anyone
  • mithril-test-lab:
    • mithril-monitor: @m10f at least
    • other subfolders: anyone
Clone this wiki locally