aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorStephen Leake2014-12-23 13:11:45 -0600
committerStephen Leake2014-12-23 13:11:45 -0600
commitfcb978e24023e9af4e465ac98222543990c70ffc (patch)
treeb71306f0aea7235715da76f88a9cb92608bddeca /doc
parent061f310c4a32491634b7563f4b8520f4824ed21b (diff)
downloademacs-fcb978e24023e9af4e465ac98222543990c70ffc.tar.gz
emacs-fcb978e24023e9af4e465ac98222543990c70ffc.zip
Move user-level information from CONTRIBUTE to doc/emacs/trouble.texi
Fixes bug#19299 * CONTRIBUTE: Move user-level information to doc/emacs/trouble.texi (commit messages): new, gathered from comments on emacs-devel (Changelog notes): add reference to GNU coding standards section 5.2; doc 'present tense', bug fix format (branches): freeze announcements are made on info-gnu-emacs mailing list (git vs rename): new * doc/emacs/trouble.texi: Move user-level information from CONTRIBUTE here * lisp/startup.el (fancy-about-text): change buttons for etc/CONTRIBUTE to (info "(emacs)Contributing")
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/trouble.texi240
1 files changed, 223 insertions, 17 deletions
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 5f3cf9223eb..bae9cad78bf 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1060,19 +1060,44 @@ but using it will take extra work. Maintaining GNU Emacs is a lot of
1060work in the best of circumstances, and we can't keep up unless you do 1060work in the best of circumstances, and we can't keep up unless you do
1061your best to help. 1061your best to help.
1062 1062
1063Every patch must have several pieces of information before we
1064can properly evaluate it.
1065
1066When you have all these pieces, bundle them up in a mail message and
1067send it to the developers. Sending it to
1068@email{bug-gnu-emacs@@gnu.org} (which is the bug/feature list) is
1069recommended, because that list is coupled to a tracking system that
1070makes it easier to locate patches. If your patch is not complete and
1071you think it needs more discussion, you might want to send it to
1072@email{emacs-devel@@gnu@@gnu.org} instead. If you revise your patch,
1073send it as a followup to the initial topic.
1074
1075We prefer to get the patches as plain text, either inline (be careful
1076your mail client does not change line breaks) or as MIME attachments.
1077
1063@itemize @bullet 1078@itemize @bullet
1064@item 1079@item
1065Send an explanation with your changes of what problem they fix or what 1080Include an explanation with your changes of what problem they fix or what
1066improvement they bring about. For a fix for an existing bug, it is 1081improvement they bring about.
1082
1083@itemize
1084@item
1085For a fix for an existing bug, it is
1067best to reply to the relevant discussion on the @samp{bug-gnu-emacs} 1086best to reply to the relevant discussion on the @samp{bug-gnu-emacs}
1068list, or the bug entry in the GNU Bug Tracker at 1087list, or the bug entry in the GNU Bug Tracker at
1069@url{http://debbugs.gnu.org}. Explain why your change fixes the bug. 1088@url{http://debbugs.gnu.org}. Explain why your change fixes the bug.
1070 1089
1071@item 1090@item
1072Always include a proper bug report for the problem you think you have 1091For a new feature, include a description of the feature and your
1073fixed. We need to convince ourselves that the change is right before 1092implementation.
1074installing it. Even if it is correct, we might have trouble 1093
1075understanding it if we don't have a way to reproduce the problem. 1094@item
1095For a new bug, include a proper bug report for the problem you think
1096you have fixed. We need to convince ourselves that the change is
1097right before installing it. Even if it is correct, we might have
1098trouble understanding it if we don't have a way to reproduce the
1099problem.
1100@end itemize
1076 1101
1077@item 1102@item
1078Include all the comments that are appropriate to help people reading the 1103Include all the comments that are appropriate to help people reading the
@@ -1104,6 +1129,8 @@ right away. That gives us the option of installing it immediately if it
1104is important. 1129is important.
1105 1130
1106@item 1131@item
1132The patch itself.
1133
1107Use @samp{diff -c} to make your diffs. Diffs without context are hard 1134Use @samp{diff -c} to make your diffs. Diffs without context are hard
1108to install reliably. More than that, they are hard to study; we must 1135to install reliably. More than that, they are hard to study; we must
1109always study a patch to decide whether we want to install it. Unidiff 1136always study a patch to decide whether we want to install it. Unidiff
@@ -1114,6 +1141,12 @@ If you have GNU diff, use @samp{diff -c -F'^[_a-zA-Z0-9$]+ *('} when
1114making diffs of C code. This shows the name of the function that each 1141making diffs of C code. This shows the name of the function that each
1115change occurs in. 1142change occurs in.
1116 1143
1144If you are using the Emacs repository, make sure your copy is
1145up-to-date (e.g. with @code{git pull}). You can commit your changes
1146to a private branch and generate a patch from the master version by
1147using @code{git format-patch master}. Or you can leave your changes
1148uncommitted and use @code{git diff}.
1149
1117@item 1150@item
1118Avoid any ambiguity as to which is the old version and which is the new. 1151Avoid any ambiguity as to which is the old version and which is the new.
1119Please make the old version the first argument to diff, and the new 1152Please make the old version the first argument to diff, and the new
@@ -1138,8 +1171,16 @@ feel that the purpose needs explaining, it probably does---but put the
1138explanation in comments in the code. It will be more useful there. 1171explanation in comments in the code. It will be more useful there.
1139 1172
1140Please look at the change log entries of recent commits to see what 1173Please look at the change log entries of recent commits to see what
1141sorts of information to put in, and to learn the style that we use. 1174sorts of information to put in, and to learn the style that we use. Note that,
1142@xref{Change Log}. 1175unlike some other projects, we do require change logs for
1176documentation, i.e. Texinfo files.
1177@xref{Change Log},
1178@ifset WWW_GNU_ORG
1179see
1180@url{http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html},
1181@end ifset
1182@xref{Change Log Concepts, Change Log Concepts,
1183Change Log Concepts, gnu-coding-standards, GNU Coding Standards}.
1143 1184
1144@item 1185@item
1145When you write the fix, keep in mind that we can't install a change that 1186When you write the fix, keep in mind that we can't install a change that
@@ -1160,11 +1201,52 @@ Please help us keep up with the workload by designing the patch in a
1160form that is clearly safe to install. 1201form that is clearly safe to install.
1161@end itemize 1202@end itemize
1162 1203
1163@c FIXME: Include the node above?
1164@node Contributing 1204@node Contributing
1165@section Contributing to Emacs Development 1205@section Contributing to Emacs Development
1166@cindex contributing to Emacs 1206@cindex contributing to Emacs
1167 1207
1208Emacs is a collaborative project and we encourage contributions from
1209anyone and everyone.
1210
1211There are many ways to contribute to Emacs:
1212
1213@itemize
1214@item
1215find and report bugs; @xref{Bugs}.
1216
1217@item
1218answer questions on the Emacs user mailing list
1219@url{https://lists.gnu.org/mailman/listinfo/help-gnu-emacs}.
1220
1221@item
1222write documentation, either on the wiki, or in the Emacs source
1223repository (@pxref{Sending Patches}).
1224
1225@item
1226check if existing bug reports are fixed in newer versions of Emacs
1227@url{http://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs}.
1228
1229@item
1230fix existing bug reports
1231@url{http://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs}.
1232
1233@item
1234@c etc/TOOD not in WWW_GNU_ORG
1235implement a feature listed in the @file{etc/TODO} file in the Emacs
1236distribution, and submit a patch.
1237
1238@item
1239implement a new feature, and submit a patch.
1240
1241@item
1242develop a package that works with Emacs, and publish it on your own
1243or in Gnu ELPA (@url{https://elpa.gnu.org/}).
1244
1245@item
1246port Emacs to a new platform, but that is not common nowadays.
1247
1248@end itemize
1249
1168If you would like to work on improving Emacs, please contact the maintainers at 1250If you would like to work on improving Emacs, please contact the maintainers at
1169@ifnothtml 1251@ifnothtml
1170@email{emacs-devel@@gnu.org}. 1252@email{emacs-devel@@gnu.org}.
@@ -1186,24 +1268,148 @@ you have not yet started work, it is useful to contact
1186before you start; it might be possible to suggest ways to make your 1268before you start; it might be possible to suggest ways to make your
1187extension fit in better with the rest of Emacs. 1269extension fit in better with the rest of Emacs.
1188 1270
1271When implementing a feature, please follow the Emacs coding standards;
1272@xref{Coding Standards}. In addition, non-trivial contributions
1273require a copyright assignment to the FSF; @xref{Copyright Assignment}.
1274
1189The development version of Emacs can be downloaded from the 1275The development version of Emacs can be downloaded from the
1190repository where it is actively maintained by a group of developers. 1276repository where it is actively maintained by a group of developers.
1191See the Emacs project page 1277See the Emacs project page
1192@url{http://savannah.gnu.org/projects/emacs/} for details. 1278@url{http://savannah.gnu.org/projects/emacs/} for access details.
1279
1280It is important to write your patch based on the current working
1281version. If you start from an older version, your patch may be
1282outdated (so that maintainers will have a hard time applying it), or
1283changes in Emacs may have made your patch unnecessary. After you have
1284downloaded the repository source, you should read the file
1285@file{INSTALL.REPO} for build instructions (they differ to some extent
1286from a normal build).
1287
1288If you would like to make more extensive contributions, see the
1289@file{./CONTRIBUTE} file in the Emacs distribution for information on
1290how to be an Emacs developer.
1291
1292For documentation on Emacs (to understand how to implement your
1293desired change), refer to:
1294
1295@itemize
1296@item
1297@ifset WWW_GNU_ORG
1298@ifhtml
1299the Emacs Manual
1300@url{http://www.gnu.org/software/emacs/manual/emacs.html}.
1301@end ifhtml
1302@ifnothtml
1303@xref{Top, Emacs Manual,,emacs}.
1304@end ifnothtml
1305@end ifset
1306@ifclear WWW_GNU_ORG
1307@xref{Top, Emacs Manual,,emacs}.
1308@end ifclear
1309
1310@item
1311@ifset WWW_GNU_ORG
1312@ifhtml
1313the Emacs Lisp Reference Manual
1314@url{http://www.gnu.org/software/emacs/manual/elisp.html}.
1315@end ifhtml
1316@ifnothtml
1317@xref{Top, Emacs Lisp Reference Manual,,elisp}.
1318@end ifnothtml
1319@end ifset
1320@ifclear WWW_GNU_ORG
1321@xref{Top, Emacs Lisp Reference Manual,,elisp}.
1322@end ifclear
1323
1324@item
1325@url{http://www.gnu.org/software/emacs}
1326
1327@item
1328@url{http://www.emacswiki.org/}
1329@end itemize
1330
1331@menu
1332* Coding Standards:: Gnu Emacs coding standards
1333* Copyright Assignment:: assigning copyright to the FSF
1334@end menu
1193 1335
1194For more information on how to contribute, see the 1336@node Coding Standards
1337@subsection Coding Standards
1338@cindex coding standards
1339
1340Contributed code should follow the GNU Coding Standards
1341@url{http://www.gnu.org/prep/standards/}. This may also be available
1342in info on your system.
1343
1344If it doesn't, we'll need to find someone to fix the code before we
1345can use it.
1346
1347Emacs has additional style and coding conventions:
1348
1349@itemize
1350@item
1195@ifset WWW_GNU_ORG 1351@ifset WWW_GNU_ORG
1196@ifhtml 1352@ifhtml
1197@url{http://gnu.org/software/emacs/CONTRIBUTE, etc/CONTRIBUTE} 1353the "Tips" Appendix in the Emacs Lisp Reference
1354@url{http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips.html}.
1198@end ifhtml 1355@end ifhtml
1199@ifnothtml 1356@ifnothtml
1200@file{etc/CONTRIBUTE} 1357@xref{Tips, "Tips" Appendix in the Emacs Lisp Reference, Tips
1358Appendix, elisp, Emacs Lisp Reference}.
1201@end ifnothtml 1359@end ifnothtml
1202@end ifset 1360@end ifset
1203@ifclear WWW_GNU_ORG 1361@ifclear WWW_GNU_ORG
1204@file{etc/CONTRIBUTE} 1362@xref{Tips, "Tips" Appendix in the Emacs Lisp Reference, Tips
1363Appendix, elisp, Emacs Lisp Reference}.
1205@end ifclear 1364@end ifclear
1206file in the Emacs distribution. 1365
1366@item
1367Avoid using @code{defadvice} or @code{eval-after-load} for Lisp code
1368to be included in Emacs.
1369
1370@item
1371Remove all trailing whitespace in all source and text files.
1372
1373@item
1374Emacs has no convention on whether to use tabs in source code; please
1375don't change whitespace in the files you edit.
1376
1377@item
1378Use @code{?\s} instead of @code{? } in Lisp code for a space character.
1379
1380@end itemize
1381
1382@node Copyright Assignment
1383@subsection Copyright Assignment
1384@cindex copyright assignment
1385
1386The FSF (Free Software Foundation) is the copyright holder for GNU Emacs.
1387The FSF is a nonprofit with a worldwide mission to promote computer
1388user freedom and to defend the rights of all free software users.
1389For general information, see the website @url{http://www.fsf.org/}.
1390
1391Generally speaking, for non-trivial contributions to GNU Emacs we
1392require that the copyright be assigned to the FSF. For the reasons
1393behind this, see @url{http://www.gnu.org/licenses/why-assign.html}.
1394
1395Copyright assignment is a simple process. Residents of some countries
1396can do it entirely electronically. We can help you get started, and
1397answer any questions you may have (or point you to the people with the
1398answers), at the @email{emacs-devel@@gnu.org} mailing list.
1399
1400(Please note: general discussion about why some GNU projects ask
1401for a copyright assignment is off-topic for emacs-devel.
1402See gnu-misc-discuss instead.)
1403
1404A copyright disclaimer is also a possibility, but we prefer an assignment.
1405Note that the disclaimer, like an assignment, involves you sending
1406signed paperwork to the FSF (simply saying "this is in the public domain"
1407is not enough). Also, a disclaimer cannot be applied to future work, it
1408has to be repeated each time you want to send something new.
1409
1410We can accept small changes (roughly, fewer than 15 lines) without
1411an assignment. This is a cumulative limit (e.g. three separate 5 line
1412patches) over all your contributions.
1207 1413
1208@node Service 1414@node Service
1209@section How To Get Help with GNU Emacs 1415@section How To Get Help with GNU Emacs
@@ -1211,8 +1417,8 @@ file in the Emacs distribution.
1211@cindex help-gnu-emacs mailing list 1417@cindex help-gnu-emacs mailing list
1212@cindex gnu.emacs.help newsgroup 1418@cindex gnu.emacs.help newsgroup
1213 1419
1214If you need help installing, using or changing GNU Emacs, there are two 1420If you need help installing, using or changing GNU Emacs, there are
1215ways to find it: 1421two ways to find it:
1216 1422
1217@itemize @bullet 1423@itemize @bullet
1218@item 1424@item