Before anything else... Thank you for your time and contributions!
If you have a feature or rule you want to see added to Elvis, please create an issue before doing any work, so that we can discuss it and figure out what to do about it.
In the case of rules, keep in mind you can always create your User Defined Rules, in order to run them locally.
When you find a bug in one of Elvis's rules or the way Elvis itself work, please provide detailed steps that show how to reproduce the problem.
When an issue is already marked with the rule
label and you are interested in working on it,
first check there is no existing branch with the
issue's number. If so, you can go ahead and start working on it.
The following is a checklist you can follow when implementing a new Elvis rule:
- Write both test cases that fail and that pass the rule.
- Edit RULES.md, and add a specific file (same name as rule) to folder
doc_rules
. - When the issue has the label
default rule
, add the rule to Default Rules in Elvis Webhook and in theconfig/elvis.config
file.
CI for elvis_core
is pretty simple, but in case you want to replicate it locally before
pushing most issues will be found via rebar3 do format --verify, test
.
If you have any questions or general comments regarding how to contribute, please use our public Erlanger Slack channel: #elvis.