Contribute | Org mode
Contribute
Org mode is built on the efforts of enthusiastic volunteers. The two best ways to contribute to Org are with time or money. Donations support Org's primary maintainer Bastien Guerry.
You can also support Org with your time, no matter your level of experience.
The fastest way to get involved is by subscribing to the mailing list. You can also always get in touch via emacs-orgmode@gnu.org to help move the project forward.
- Very little experience
- Give feedback about your experience with org.
- A dash of experience
- Help improve the documentation.
- Some experience
- Help test patches, track down bugs.
- Moderate experience
- Submit bug-fixes, improve features.
Whatever your contribution, it is appreciated 😀.
Copyright assignment
Org mode has a substantial code base composed of many files, most of which are distributed as part of GNU Emacs.
These files make up the Org core and are copyrighted by the Free Software Foundation (FSF).
If you want to contribute more than 15 lines of code to Org mode you will need to assign the copyright for your contributions to the FSF so that they can be included in GNU Emacs. To start the copyright assignment process fill out this form and email it to assign@gnu.org.
Submitting patches
Suggested workflow
~$ git pull ~$ git checkout -b my-changes # make some changes ~$ git commit -a -m "Definitely following the commit conventions" # repeat a few times, as appropriate ~$ git format-patch master # optional, see: https://git-send-email.io/ ~$ git send-email --to="emacs-orgmode@gnu.org" HEAD^
Coding conventions
Org is part of Emacs, so any contribution should follow the GNU Emacs Lisp coding conventions described in Emacs manual.
Commit messages
Commit messages also need to be structured according to Emacs conventions.
main file/feature: Overall change summary * file-changed.el (function-changed, another-function): Description of the change implemented, reference any relevant `other-functions' or `variables' here. (another-changed-function): Change something. Use active voice, and avoid passive forms. Please write in full sentences.
More formally,
- The first line should include the file/feature affected, followed by a colon and an short description of the overall change (this description starts with an uppercase letter and does not end with a dot.)
- The second line should be left blank
- Start on the third line there should be a ChangeLog entry for each
file changed, as seen in the example above
- Quote variables and function names like
`this'
- Separate sentences with two spaces
- Use active voice instead of passive voice
- Try to be terse
- Quote variables and function names like
- The line after the final ChangeLog entry should be left blank
- Optionally this may be followed by any supplementary information explaining the patch
- If the patch is from a contributor without FSF assignment, it can
be accepted as long as it contains no more than 15 lines. In this
case add the
TINYCHANGE
cookie (anywhere in the message)
Sending patches
You can use git format-patch
or git diff
to generate the patch files
and then include them in an email to emacs-orgmode@gnu.org describing
what you've done. If you have configured git to use send-email, then
you can use that. If you are sending the patch manually, please add
the phrase [PATCH]
to the beginning of the Subject:
line of your
e-mail, your submission will then be tracked on updates.orgmode.org.
If your mail has not appeared on the list after waiting at least 15 minutes, it may have been flagged as spam by the robot email overlords. If this happens, you should be able to get the email to go through by subscribing to the mailing list.