-
Notifications
You must be signed in to change notification settings - Fork 41
Project Charter
This file contains the Mithril Project Charter, including but not limited to coding standards and best practices when contributing.
- Systematically tag
breaking change
ormanual-deployment
Issues and/or PRs. - Plan migrations: a/ with other teammates if support is needed and b/ run them locally or in a specific environment before merging.
- Merging code is not allowed from Monday to Thursday after 5pm CET, on Friday after 12pm CET and during the week-end.
- When merging a PR, a teammate must make sure that the merge is successfully deployed, and escalate with other teammates if needed.
- Teammates should be able to connect to the Mithril networks machines and operate runbooks processes.
- Express your interest in contributing by commenting on an issue labeled good first issue. A core team member will then assign you to the ticket.
- Create your fork of the main repository here.
- Setup your fork to run the CI workflow:
- Configure GitHub Actions:
- Enable
Allow all actions and reusable workflows
in your forkSettings / Actions / General / Actions permissions
.- Enable
Read and write permissions
in your forkSettings / Actions / General / Workflow permissions
.- Configure Code Security:
- Enable
Dependency graph
in your forkSettings / Security / Code security and analysis
.
- Create and push a new branch in your fork with your code proposal.
- Create a draft Pull Request in your fork from your branch.
- This will trigger the run of the CI workflows in the GitHub Actions of your fork:
- You have complete control on the jobs run in your fork (e.g. restart them if they fail, ...).
- You don't need to wait for approval from the Core team to run the CI.
- Enrich your Pull Request until it is ready to be reviewed by the Core Team. On new pushes to your branch, new run of the CI workflows. will be triggered automatically. Make sure that the CI is all green before moving to the next step.
- Create a Pull Request on the main repository from your branch.
- Wait for a member of the Core Team to run the CI for your PR.
- If the CI is all green, your PR will be reviewed and eventually merged.
-
Use rustfmt to format the code before submitting a commit.
-
Use clippy to format the code before submitting a commit.
Why
It helps the team keep a clean and neat codebase and straightforward commits diffs
Here are seven rules for great git commit messages:
-
Separate subject from body with a blank line
-
Limit the subject line to 50 characters (soft limit)
-
Capitalize the subject line
-
Do not end the subject line with a period
-
Use the imperative mood in the subject line and suffix with ticket number if applicable
-
Wrap the body at 72 characters (hard limit)
-
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
Here are the rules we tend to apply when using PR:
-
Name your branches properly: for example
username/branch-that-does-something
-
Prefer PR over main branch commit (they are reserved for very low impact updates and should used with parcimony)
-
Prefer Rebase and Merge than Create a merge commit
-
Prefer multiple atomic commits (it will facilitate the reviews)
-
Make sure the CI is all green 🟢 and that there's no lint warnings (such as the one from clippy for Rust)
-
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!