aboutsummaryrefslogtreecommitdiffstats
path: root/CONTRIBUTE
diff options
context:
space:
mode:
authorKen Raeburn2017-07-31 01:13:53 -0400
committerKen Raeburn2017-07-31 01:13:53 -0400
commit13f3370400031e2ac1c9be0932f411370fc6984e (patch)
tree06f349b2b0f1cda9e36f7c4390d9d2d9bf49303c /CONTRIBUTE
parentcd0966b33c1fe975520e85e0e7af82c09e4754dc (diff)
parentdcfcaf40d577808d640016c886d4fae7280a7fd5 (diff)
downloademacs-scratch/raeburn-startup.tar.gz
emacs-scratch/raeburn-startup.zip
; Merge from branch 'master'scratch/raeburn-startup
Diffstat (limited to 'CONTRIBUTE')
-rw-r--r--CONTRIBUTE170
1 files changed, 85 insertions, 85 deletions
diff --git a/CONTRIBUTE b/CONTRIBUTE
index 3ed587c6918..365e4232499 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -26,6 +26,7 @@ admin/notes/git-workflow.
26 26
27** Getting involved with development 27** Getting involved with development
28 28
29Discussion about Emacs development takes place on emacs-devel@gnu.org.
29You can subscribe to the emacs-devel@gnu.org mailing list, paying 30You can subscribe to the emacs-devel@gnu.org mailing list, paying
30attention to postings with subject lines containing "emacs-announce", 31attention to postings with subject lines containing "emacs-announce",
31as these discuss important events like feature freezes. See 32as these discuss important events like feature freezes. See
@@ -35,11 +36,85 @@ own copy of the repository, and discuss proposed changes on the
35mailing list. Frequent contributors to Emacs can request write access 36mailing list. Frequent contributors to Emacs can request write access
36there. 37there.
37 38
38** Committing changes by others 39Bug reports and fixes, feature requests and patches/implementations
40should be sent to bug-gnu-emacs@gnu.org, the bug/feature list. This
41is coupled to the http://debbugs.gnu.org tracker. It is best to use
42the command 'M-x report-emacs-bug RET' to report issues to the tracker
43(described below). Be prepared to receive comments and requests for
44changes in your patches, following your submission.
39 45
40If committing changes written by someone else, commit in their name, 46The Savannah info page http://savannah.gnu.org/mail/?group=emacs
41not yours. You can use 'git commit --author="AUTHOR"' to specify a 47describes how to subscribe to the mailing lists, or see the list
42change's author. 48archives.
49
50To email a patch you can use a shell command like 'git format-patch -1'
51to create a file, and then attach the file to your email. This nicely
52packages the patch's commit message and changes. To send just one
53such patch without additional remarks, you can use a command like
54'git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'.
55
56** Issue tracker (a.k.a. "bug tracker")
57
58The Emacs issue tracker at http://debbugs.gnu.org lets you view bug
59reports and search the database for bugs matching several criteria.
60Messages posted to the bug-gnu-emacs@gnu.org mailing list, mentioned
61above, are recorded by the tracker with the corresponding bugs/issues.
62
63GNU ELPA has a 'debbugs' package that allows accessing the tracker
64database from Emacs.
65
66Bugs needs regular attention. A large backlog of bugs is
67disheartening to the developers, and a culture of ignoring bugs is
68harmful to users, who expect software that works. Bugs have to be
69regularly looked at and acted upon. Not all bugs are critical, but at
70the least, each bug needs to be regularly re-reviewed to make sure it
71is still reproducible.
72
73The process of going through old or new bugs and acting on them is
74called bug triage. This process is described in the file
75admin/notes/bug-triage.
76
77** Documenting your changes
78
79Any change that matters to end-users should have an entry in etc/NEWS.
80
81Doc-strings should be updated together with the code.
82
83Think about whether your change requires updating the manuals. If you
84know it does not, mark the NEWS entry with "---". If you know
85that *all* the necessary documentation updates have been made, mark
86the entry with "+++". Otherwise do not mark it.
87
88If your change requires updating the manuals to document new
89functions/commands/variables/faces, then use the proper Texinfo
90command to index them; for instance, use @vindex for variables and
91@findex for functions/commands. For the full list of predefine indices, see
92http://www.gnu.org/software/texinfo/manual/texinfo/html_node/Predefined-Indices.html
93or run the shell command 'info "(texinfo)Predefined Indices"'.
94
95For more specific tips on Emacs's doc style, see
96http://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-Tips.html
97Use 'checkdoc' to check for documentation errors before submitting a patch.
98
99** Testing your changes
100
101Please test your changes before committing them or sending them to the
102list. If possible, add a new test along with any bug fix or new
103functionality you commit (of course, some changes cannot be easily
104tested).
105
106Emacs uses ERT, Emacs Lisp Regression Testing, for testing. See
107http://www.gnu.org/software/emacs/manual/html_node/ert/
108or run 'info "(ert)"' for for more information on writing and running
109tests.
110
111If your test lasts longer than some few seconds, mark it in its
112'ert-deftest' definition with ":tags '(:expensive-test)".
113
114To run tests on the entire Emacs tree, run "make check" from the
115top-level directory. Most tests are in the directory "test/". From
116the "test/" directory, run "make <filename>" to run the tests for
117<filename>.el(c). See "test/README" for more information.
43 118
44** Commit messages 119** Commit messages
45 120
@@ -176,6 +251,12 @@ them right the first time, so here are guidelines for formatting them:
176 with Emacs commands like 'C-x 4 a', and commit the change using the 251 with Emacs commands like 'C-x 4 a', and commit the change using the
177 shell command 'vc-dwim --commit'. Type 'vc-dwim --help' for more. 252 shell command 'vc-dwim --commit'. Type 'vc-dwim --help' for more.
178 253
254** Committing changes by others
255
256If committing changes written by someone else, commit in their name,
257not yours. You can use 'git commit --author="AUTHOR"' to specify a
258change's author.
259
179** Branches 260** Branches
180 261
181Future development normally takes place on the master branch. 262Future development normally takes place on the master branch.
@@ -218,87 +299,6 @@ This repository does not contain the Emacs Lisp package archive
218(elpa.gnu.org). See admin/notes/elpa for how to access the GNU ELPA 299(elpa.gnu.org). See admin/notes/elpa for how to access the GNU ELPA
219repository. 300repository.
220 301
221** Emacs Mailing lists.
222
223Discussion about Emacs development takes place on emacs-devel@gnu.org.
224
225Bug reports and fixes, feature requests and implementations should be
226sent to bug-gnu-emacs@gnu.org, the bug/feature list. This is coupled
227to the http://debbugs.gnu.org tracker.
228
229The Savannah info page http://savannah.gnu.org/mail/?group=emacs
230describes how to subscribe to the mailing lists, or see the list
231archives.
232
233To email a patch you can use a shell command like 'git format-patch -1'
234to create a file, and then attach the file to your email. This nicely
235packages the patch's commit message and changes. To send just one
236such patch without additional remarks, you can use a command like
237'git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'.
238
239** Issue tracker (a.k.a. "bug tracker")
240
241The Emacs issue tracker at http://debbugs.gnu.org lets you view bug
242reports and search the database for bugs matching several criteria.
243Messages posted to the bug-gnu-emacs@gnu.org mailing list, mentioned
244above, are recorded by the tracker with the corresponding bugs/issues.
245
246GNU ELPA has a 'debbugs' package that allows accessing the tracker
247database from Emacs.
248
249Bugs needs regular attention. A large backlog of bugs is
250disheartening to the developers, and a culture of ignoring bugs is
251harmful to users, who expect software that works. Bugs have to be
252regularly looked at and acted upon. Not all bugs are critical, but at
253the least, each bug needs to be regularly re-reviewed to make sure it
254is still reproducible.
255
256The process of going through old or new bugs and acting on them is
257called bug triage. This process is described in the file
258admin/notes/bug-triage.
259
260** Documenting your changes
261
262Any change that matters to end-users should have an entry in etc/NEWS.
263
264Doc-strings should be updated together with the code.
265
266Think about whether your change requires updating the manuals. If you
267know it does not, mark the NEWS entry with "---". If you know
268that *all* the necessary documentation updates have been made, mark
269the entry with "+++". Otherwise do not mark it.
270
271If your change requires updating the manuals to document new
272functions/commands/variables/faces, then use the proper Texinfo
273command to index them; for instance, use @vindex for variables and
274@findex for functions/commands. For the full list of predefine indices, see
275http://www.gnu.org/software/texinfo/manual/texinfo/html_node/Predefined-Indices.html
276or run the shell command 'info "(texinfo)Predefined Indices"'.
277
278For more specific tips on Emacs's doc style, see
279http://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-Tips.html
280Use 'checkdoc' to check for documentation errors before submitting a patch.
281
282** Testing your changes
283
284Please test your changes before committing them or sending them to the
285list. If possible, add a new test along with any bug fix or new
286functionality you commit (of course, some changes cannot be easily
287tested).
288
289Emacs uses ERT, Emacs Lisp Regression Testing, for testing. See
290http://www.gnu.org/software/emacs/manual/html_node/ert/
291or run 'info "(ert)"' for for more information on writing and running
292tests.
293
294If your test lasts longer than some few seconds, mark it in its
295'ert-deftest' definition with ":tags '(:expensive-test)".
296
297To run tests on the entire Emacs tree, run "make check" from the
298top-level directory. Most tests are in the directory "test/". From
299the "test/" directory, run "make <filename>" to run the tests for
300<filename>.el(c). See "test/README" for more information.
301
302** Understanding Emacs internals 302** Understanding Emacs internals
303 303
304The best way to understand Emacs internals is to read the code. Some 304The best way to understand Emacs internals is to read the code. Some