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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2 Contributing to Emacs
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4 Emacs is a collaborative project and one which wants to encourage new
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
5 development. You may wish to fix Emacs bugs, improve testing, port
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
6 Emacs to a new platform, update documentation, add new Emacs features,
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
7 and the like. To help with this, there is a lot of documentation
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
8 available. In addition to the user guide and Lisp Reference Manual in
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
9 the Emacs distribution, the Emacs web pages also contain much
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
10 information.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
11
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
14
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
15 If you don't feel up to hacking Emacs, there are still plenty of ways to
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
16 help! You can answer questions on the mailing lists, write
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
17 documentation, find bugs, create a Emacs related website (contribute to
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
18 the official Emacs web site), or create a Emacs related software
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
19 package. We welcome all of the above and feel free to ask on the Emacs
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
20 mailing lists if you are looking for feedback or for people to review a
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
21 work in progress.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
22
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
23 Ref: http://www.gnu.org/software/emacs/
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
24
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
28
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
29 o Coding Standards
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
30
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
31 All contributions must conform to the GNU Coding Standard.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
32 Submissions which do not conform to the standards will be
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
33 returned with a request to reformat the changes.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
34
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
35 Emacs has certain additional coding requirements.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
36
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
39
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
40
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
41 o Copyright Assignment
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
42
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
43 Before we can accept code contributions from you, we need a
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
44 copyright assignment form filled out and filed with the FSF.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
47 forms.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
48
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
49 Small changes can be accepted without a copyright assignment
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
50 form on file.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
51
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
52
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
53 o Getting the Source Code
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
54
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
55 The latest version of Emacs can be downloaded using CVS or Arch
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
56 from the Savannah web site. It is important that you submit
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
57 your patch using this version, as any bug in a released version
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
60
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
61 Ref: http://savannah.gnu.org/projects/emacs
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
62
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
63
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
64 o Submitting Patches
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
65
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
66 Every patch must have several pieces of information before we
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
67 can properly evaluate it.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
68
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
69 For bug fixes, a description of the bug and how your patch fixes
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
70 this bug.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
71
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
72 For new features, a description of the feature and your
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
73 implementation.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
74
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
75 A ChangeLog entry as plaintext (separate from the patch); see
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
76 the various ChangeLog files for format and content. Note that,
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
86
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
90
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
91 When you have all these pieces, bundle them up in a mail message
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
95
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
96
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
97 o Please read your patch before submitting it.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
101
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
102
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
103 o Supplemental information for Emacs Developers:
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
107
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
108 Discussion about Emacs development takes place on
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
109 emacs-devel@gnu.org.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
110
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
111 Think carefully about whether your change requires updating the
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
112 documentation. If it does, you can either do this yourself or
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
113 add an item to the NEWS file.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
114
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
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
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
118
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
119 The file DEBUG describes how to debug Emacs.
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
120
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
121 Avoid using `defadvice' or `eval-after-load' for lisp
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
122 code to be included in Emacs.