53 Contributing to Emacs Development
Emacs is a collaborative project and we encourage contributions from anyone and everyone.
There are many ways to contribute to Emacs:
-
find and report bugs; See Reporting Bugs.
-
answer questions on the Emacs user mailing list https://lists.gnu.org/mailman/listinfo/help-gnu-emacs.
-
write documentation, either on the wiki, or in the Emacs source repository (see Sending Patches for GNU Emacs).
-
check if existing bug reports are fixed in newer versions of Emacs https://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs.
-
fix existing bug reports.
-
implement a feature listed in the
etc/TODO
file in the Emacs distribution, and submit a patch. -
implement a new feature, and submit a patch.
-
develop a package that works with Emacs, and publish it on your own or in GNU ELPA ( https://elpa.gnu.org/).
-
port Emacs to a new platform, but that is not common nowadays.
If you would like to work on improving Emacs, please contact the maintainers at
the
emacs-devel mailing list.
You can ask for suggested projects or suggest your own ideas.
If you have a feature request or a suggestion for how to improve Emacs, the best place to send it is to bug-gnu-emacs . Please explain as clearly as possible what change you would like to see, and why and how you think it would improve Emacs.
If you have already written an improvement, please tell us about it. If you have not yet started work, it is useful to contact emacs-devel before you start; it might be possible to suggest ways to make your extension fit in better with the rest of Emacs.
When implementing a feature, please follow the Emacs coding standards; See Coding Standards. In addition, non-trivial contributions require a copyright assignment to the FSF; See Copyright Assignment.
The development version of Emacs can be downloaded from the repository where it is actively maintained by a group of developers. See the Emacs project page https://savannah.gnu.org/projects/emacs/ for access details.
It is important to write your patch based on the current working
version. If you start from an older version, your patch may be
outdated (so that maintainers will have a hard time applying it), or
changes in Emacs may have made your patch unnecessary. After you have
downloaded the repository source, you should read the file
INSTALL.REPO
for build instructions (they differ to some extent
from a normal build).
If you would like to make more extensive contributions, see the
CONTRIBUTE
file in the Emacs source tree for information on how
to be an Emacs developer. That file is distributed as part of the source
tarball of every released Emacs version, and can also be found on-line
in the Emacs on-line source repository. If you cloned the Emacs repository,
per the instructions in https://savannah.gnu.org/projects/emacs/,
you will find this file in the top directory of the source Emacs tree.
For documentation on Emacs (to understand how to implement your desired change), refer to:
-
the Emacs Manual https://www.gnu.org/software/emacs/manual/emacs.html.
-
the Emacs Lisp Reference Manual https://www.gnu.org/software/emacs/manual/elisp.html.