Mercurial > emacs
annotate CONTRIBUTE @ 71616:c59f8780b5a0
*** empty log message ***
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Tue, 04 Jul 2006 22:04:49 +0000 |
parents | e4b43205e213 |
children | fc0f241e3ff8 |
rev | line source |
---|---|
71604 | 1 |
2 Contributing to Emacs | |
3 | |
4 Emacs is a collaborative project and one which wants to encourage new | |
5 development. You may wish to fix Emacs bugs, improve testing, port | |
6 Emacs to a new platform, update documentation, add new Emacs features, | |
7 and the like. To help with this, there is a lot of documentation | |
8 available. In addition to the user guide and Lisp Reference Manual in | |
9 the Emacs distribution, the Emacs web pages also contain much | |
10 information. | |
11 | |
12 You may also want to submit your change so that can be considered for | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
13 inclusion in a future version of Emacs (see below). |
71604 | 14 |
15 If you don't feel up to hacking Emacs, there are still plenty of ways to | |
16 help! You can answer questions on the mailing lists, write | |
17 documentation, find bugs, create a Emacs related website (contribute to | |
18 the official Emacs web site), or create a Emacs related software | |
19 package. We welcome all of the above and feel free to ask on the Emacs | |
20 mailing lists if you are looking for feedback or for people to review a | |
21 work in progress. | |
22 | |
23 Ref: http://www.gnu.org/software/emacs/ | |
24 | |
25 Finally, there are certain legal requirements and style issues which | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
26 all contributors need to be aware of: |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
27 |
71604 | 28 |
29 o Coding Standards | |
30 | |
31 All contributions must conform to the GNU Coding Standard. | |
32 Submissions which do not conform to the standards will be | |
33 returned with a request to reformat the changes. | |
34 | |
35 Emacs has certain additional coding requirements. | |
36 | |
37 Ref: http://www.gnu.org/prep/standards_toc.html | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
38 Ref: Standards Info Manual |
71604 | 39 |
40 | |
41 o Copyright Assignment | |
42 | |
43 Before we can accept code contributions from you, we need a | |
44 copyright assignment form filled out and filed with the FSF. | |
45 | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
46 Contact us via the Emacs mailing list to obtain the relevant |
71604 | 47 forms. |
48 | |
49 Small changes can be accepted without a copyright assignment | |
50 form on file. | |
51 | |
52 | |
53 o Getting the Source Code | |
54 | |
55 The latest version of Emacs can be downloaded using CVS or Arch | |
56 from the Savannah web site. It is important that you submit | |
57 your patch using this version, as any bug in a released version | |
58 of Emacs may already be fixed. It also makes it easier for | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
59 others to test your patch. |
71604 | 60 |
61 Ref: http://savannah.gnu.org/projects/emacs | |
62 | |
63 | |
64 o Submitting Patches | |
65 | |
66 Every patch must have several pieces of information before we | |
67 can properly evaluate it. | |
68 | |
69 For bug fixes, a description of the bug and how your patch fixes | |
70 this bug. | |
71 | |
72 For new features, a description of the feature and your | |
73 implementation. | |
74 | |
75 A ChangeLog entry as plaintext (separate from the patch); see | |
76 the various ChangeLog files for format and content. Note that, | |
77 unlike some other projects, we do require ChangeLogs also for | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
78 documentation i.e. texinfo files. |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
79 |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
80 Ref: Change Log Concepts node of the Standards Info Manual |
71604 | 81 |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
82 The patch itself. If you are accessing the CVS repository use |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
83 "cvs update; cvs diff -cp"; else, use "diff -cp OLD NEW". If |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
84 your version of diff does not support these options, then get |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
85 the latest version of GNU diff. |
71604 | 86 |
87 We accept patches as plain text (preferred for the compilers | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
88 themselves), MIME attachments (preferred for the web pages), or |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
89 as uuencoded gzipped text. |
71604 | 90 |
91 When you have all these pieces, bundle them up in a mail message | |
92 and send it to emacs-pretest-bug@gnu.org or emacs-devel@gnu.org. | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
93 All subsequent discussion should also be sent to the mailing |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
94 list. |
71604 | 95 |
96 | |
97 o Please read your patch before submitting it. | |
98 | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
99 A patch containing several unrelated changes reformats will be |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
100 returned with a request to send them separately. |
71604 | 101 |
102 | |
103 o Supplemental information for Emacs Developers: | |
104 | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
105 If you wish to contribute to Emacs on a regular basis then you |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
106 may be given write access to the CVS repository. |
71604 | 107 |
108 Discussion about Emacs development takes place on | |
109 emacs-devel@gnu.org. | |
110 | |
111 Think carefully about whether your change requires updating the | |
112 documentation. If it does, you can either do this yourself or | |
113 add an item to the NEWS file. | |
114 | |
115 The best way to understand Emacs Internals is to read the code | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
116 but the nodes "Tips" and "GNU Emacs Internals" in the Appendix |
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
117 of the Emacs Lisp Reference Manual may also help. |
71604 | 118 |
119 The file DEBUG describes how to debug Emacs. | |
120 | |
121 Avoid using `defadvice' or `eval-after-load' for lisp | |
122 code to be included in Emacs. |