-
-
Notifications
You must be signed in to change notification settings - Fork 664
Contributing
Matt Simerson edited this page Feb 21, 2015
·
27 revisions
We love and appreciate contributions to Haraka.
- fork, by clicking the Fork button on the GitHub Project Page
- checkout a copy
- create a branch
- make changes
- push changes to your fork
- submit Pull Request
export GHUSERNAME=CHANGE_THIS
git clone https://github.com/$GHUSERNAME/Haraka.git
cd Haraka
git checkout -b new_branch
$EDITOR server.js
git add server.js
git commit -m 'fixed bug in server.js'
git commit -m 'added test coverage for last commit'
git commit -m 'fixed bug discovered in testing'
git rebase -i origin
git push origin new_branch
The git commit
step(s) will launch you into $EDITOR
where the first line should be a summary of the change(s) in less than 50 characters. Additional paragraphs can be added starting on line 3.
If you have a more than one commit, squash them into a single commit during the git rebase
step. Alternatively, with each subsequent commit, append the --amend flag to git commit
.
To submit new_branch as a Pull Request, visit the Haraka project page where your recently pushed branches will appear with a green "Pull Request" button.
- New features must be documented
- New features should include tests
- 4 spaces for indentation (no tabs)
- Semi-colons on the end of statements are preferred
- Use underscores_to_separate_names (yes this goes against JS conventions - it's the way it has always been done)
- Do not cuddle elses
- Use whitespace between operators - we prefer
if (foo > bar)
overif(foo>bar)
- Don't comment out lines of code, remove them as they will be in the revision history.
- Use boolean true/false instead of numeric 0/1
- See Editor Settings
- run all tests: ./run_tests (or "npm test")
- run tests for a single plugin: ./run_tests tests/plugins/bounce.js
Install Guides
How To
- Upgrade Haraka
- Google Safe Browsing
- Require TLS
- Configure my Editor
- Contribute
- Roll a Release
- Test Email
- Write a Plugin
Future Plans / TODO
Support RFC3464 in bounce messages- Decode Short URLs in data.uribl.js and test the destination URL instead
DKIM verifier
Additional Resources