First of all: Thank you! ❤️
Second of all, please adhere to our Code of Conduct when you participate in our community. Be kind, be respectful. The full Code of Conduct can be found here.
Please also be sure you are comfortable with our license before contributing any code to Mailpile.
Note that Mailpile is a slightly unsual app; the design is both political and opinionated. If you are confused or unsure whether something is a bug or a feature, our developer FAQ might have answers! Please read it before filing issues about design choices or attempting to reorganize the code in any major way. The FAQ also contains a quick introduction Mailpile internals and debugging techniques.
Also, have you seen the main Mailpile website and the community Discourse?
-
Welcome! The first step is probably to get Mailpile up and running, play with it, get familiar.
-
Read the links above, and check out our website if you haven't already.
-
Not sure what to work on? Find inspiration in one of our Low Hanging Fruit issues!
-
Otherwise, read on...
-
Ensure the bug was not already reported by searching on GitHub under Issues.
-
If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible.
-
Remember, we cannot read your mind or see your screen, so you'll probably need to answer all of these:
- What were you doing?
- What did you expect would happen?
- What actually happened?
- Operating system? GnuPG version? Mailpile version?
-
Reproducability is key. If you cannot reliably trigger the bug or cannot describe how to do so, then unfortunately it's less likely that the Mailpile team will be able to do anything about it. It may still be useful to file a report in case others are having the same issue, but bugs that can be reproduced will in general get fixed much faster!
-
The Developer FAQ has a section on debugging techniques.
-
If it's not bug, but you still need help: visit our Discourse support forum.
-
Open a new GitHub pull request with the patch.
-
Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
-
Please be sure you have read the Developer FAQ to ensure your feature is compatible with our high-level goals and design decisions.
-
If you are unsure or would like some guidance, join the #mailpile channel on IRC (Freenode) and discuss your plans there.
-
Open a new GitHub pull request with the patch.
-
Ensure the PR description clearly describes what your feature does. Include the relevant issue number if applicable.
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of Mailpile will generally not be accepted.
All patches to Mailpile are reviewed by a human and our resources (time, people) are very limited. Cosmetic patches are no easier to review than other patches and we would rather focus our efforts on functional improvements to the software.
Our community Discourse has a support forum and needs friendly people to help out and steer conversations in friendly and productive directions. Please join the conversation!
Please feel free to join our translation community on Transifex.
-
Please feel free to contribute documentation to our wiki.
-
If you would like some guidance, join the #mailpile channel on IRC (Freenode) or file an issue with your questions.
-
If you added a new page or made major major changes to an existing page, please file a new issue requesting a review when you are done. Be sure to include a link to the wiki page!
This document borrows some language and structure from the Ruby on Rails contributor guidelines.