diff options
| author | Stephen Leake | 2014-12-23 13:11:45 -0600 |
|---|---|---|
| committer | Stephen Leake | 2014-12-23 13:11:45 -0600 |
| commit | fcb978e24023e9af4e465ac98222543990c70ffc (patch) | |
| tree | b71306f0aea7235715da76f88a9cb92608bddeca /doc | |
| parent | 061f310c4a32491634b7563f4b8520f4824ed21b (diff) | |
| download | emacs-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.texi | 240 |
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 | |||
| 1060 | work in the best of circumstances, and we can't keep up unless you do | 1060 | work in the best of circumstances, and we can't keep up unless you do |
| 1061 | your best to help. | 1061 | your best to help. |
| 1062 | 1062 | ||
| 1063 | Every patch must have several pieces of information before we | ||
| 1064 | can properly evaluate it. | ||
| 1065 | |||
| 1066 | When you have all these pieces, bundle them up in a mail message and | ||
| 1067 | send it to the developers. Sending it to | ||
| 1068 | @email{bug-gnu-emacs@@gnu.org} (which is the bug/feature list) is | ||
| 1069 | recommended, because that list is coupled to a tracking system that | ||
| 1070 | makes it easier to locate patches. If your patch is not complete and | ||
| 1071 | you 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, | ||
| 1073 | send it as a followup to the initial topic. | ||
| 1074 | |||
| 1075 | We prefer to get the patches as plain text, either inline (be careful | ||
| 1076 | your mail client does not change line breaks) or as MIME attachments. | ||
| 1077 | |||
| 1063 | @itemize @bullet | 1078 | @itemize @bullet |
| 1064 | @item | 1079 | @item |
| 1065 | Send an explanation with your changes of what problem they fix or what | 1080 | Include an explanation with your changes of what problem they fix or what |
| 1066 | improvement they bring about. For a fix for an existing bug, it is | 1081 | improvement they bring about. |
| 1082 | |||
| 1083 | @itemize | ||
| 1084 | @item | ||
| 1085 | For a fix for an existing bug, it is | ||
| 1067 | best to reply to the relevant discussion on the @samp{bug-gnu-emacs} | 1086 | best to reply to the relevant discussion on the @samp{bug-gnu-emacs} |
| 1068 | list, or the bug entry in the GNU Bug Tracker at | 1087 | list, 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 |
| 1072 | Always include a proper bug report for the problem you think you have | 1091 | For a new feature, include a description of the feature and your |
| 1073 | fixed. We need to convince ourselves that the change is right before | 1092 | implementation. |
| 1074 | installing it. Even if it is correct, we might have trouble | 1093 | |
| 1075 | understanding it if we don't have a way to reproduce the problem. | 1094 | @item |
| 1095 | For a new bug, include a proper bug report for the problem you think | ||
| 1096 | you have fixed. We need to convince ourselves that the change is | ||
| 1097 | right before installing it. Even if it is correct, we might have | ||
| 1098 | trouble understanding it if we don't have a way to reproduce the | ||
| 1099 | problem. | ||
| 1100 | @end itemize | ||
| 1076 | 1101 | ||
| 1077 | @item | 1102 | @item |
| 1078 | Include all the comments that are appropriate to help people reading the | 1103 | Include 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 | |||
| 1104 | is important. | 1129 | is important. |
| 1105 | 1130 | ||
| 1106 | @item | 1131 | @item |
| 1132 | The patch itself. | ||
| 1133 | |||
| 1107 | Use @samp{diff -c} to make your diffs. Diffs without context are hard | 1134 | Use @samp{diff -c} to make your diffs. Diffs without context are hard |
| 1108 | to install reliably. More than that, they are hard to study; we must | 1135 | to install reliably. More than that, they are hard to study; we must |
| 1109 | always study a patch to decide whether we want to install it. Unidiff | 1136 | always 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 | |||
| 1114 | making diffs of C code. This shows the name of the function that each | 1141 | making diffs of C code. This shows the name of the function that each |
| 1115 | change occurs in. | 1142 | change occurs in. |
| 1116 | 1143 | ||
| 1144 | If you are using the Emacs repository, make sure your copy is | ||
| 1145 | up-to-date (e.g. with @code{git pull}). You can commit your changes | ||
| 1146 | to a private branch and generate a patch from the master version by | ||
| 1147 | using @code{git format-patch master}. Or you can leave your changes | ||
| 1148 | uncommitted and use @code{git diff}. | ||
| 1149 | |||
| 1117 | @item | 1150 | @item |
| 1118 | Avoid any ambiguity as to which is the old version and which is the new. | 1151 | Avoid any ambiguity as to which is the old version and which is the new. |
| 1119 | Please make the old version the first argument to diff, and the new | 1152 | Please 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 | |||
| 1138 | explanation in comments in the code. It will be more useful there. | 1171 | explanation in comments in the code. It will be more useful there. |
| 1139 | 1172 | ||
| 1140 | Please look at the change log entries of recent commits to see what | 1173 | Please look at the change log entries of recent commits to see what |
| 1141 | sorts of information to put in, and to learn the style that we use. | 1174 | sorts of information to put in, and to learn the style that we use. Note that, |
| 1142 | @xref{Change Log}. | 1175 | unlike some other projects, we do require change logs for |
| 1176 | documentation, i.e. Texinfo files. | ||
| 1177 | @xref{Change Log}, | ||
| 1178 | @ifset WWW_GNU_ORG | ||
| 1179 | see | ||
| 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, | ||
| 1183 | Change Log Concepts, gnu-coding-standards, GNU Coding Standards}. | ||
| 1143 | 1184 | ||
| 1144 | @item | 1185 | @item |
| 1145 | When you write the fix, keep in mind that we can't install a change that | 1186 | When 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 | |||
| 1160 | form that is clearly safe to install. | 1201 | form 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 | ||
| 1208 | Emacs is a collaborative project and we encourage contributions from | ||
| 1209 | anyone and everyone. | ||
| 1210 | |||
| 1211 | There are many ways to contribute to Emacs: | ||
| 1212 | |||
| 1213 | @itemize | ||
| 1214 | @item | ||
| 1215 | find and report bugs; @xref{Bugs}. | ||
| 1216 | |||
| 1217 | @item | ||
| 1218 | answer questions on the Emacs user mailing list | ||
| 1219 | @url{https://lists.gnu.org/mailman/listinfo/help-gnu-emacs}. | ||
| 1220 | |||
| 1221 | @item | ||
| 1222 | write documentation, either on the wiki, or in the Emacs source | ||
| 1223 | repository (@pxref{Sending Patches}). | ||
| 1224 | |||
| 1225 | @item | ||
| 1226 | check 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 | ||
| 1230 | fix 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 | ||
| 1235 | implement a feature listed in the @file{etc/TODO} file in the Emacs | ||
| 1236 | distribution, and submit a patch. | ||
| 1237 | |||
| 1238 | @item | ||
| 1239 | implement a new feature, and submit a patch. | ||
| 1240 | |||
| 1241 | @item | ||
| 1242 | develop a package that works with Emacs, and publish it on your own | ||
| 1243 | or in Gnu ELPA (@url{https://elpa.gnu.org/}). | ||
| 1244 | |||
| 1245 | @item | ||
| 1246 | port Emacs to a new platform, but that is not common nowadays. | ||
| 1247 | |||
| 1248 | @end itemize | ||
| 1249 | |||
| 1168 | If you would like to work on improving Emacs, please contact the maintainers at | 1250 | If 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 | |||
| 1186 | before you start; it might be possible to suggest ways to make your | 1268 | before you start; it might be possible to suggest ways to make your |
| 1187 | extension fit in better with the rest of Emacs. | 1269 | extension fit in better with the rest of Emacs. |
| 1188 | 1270 | ||
| 1271 | When implementing a feature, please follow the Emacs coding standards; | ||
| 1272 | @xref{Coding Standards}. In addition, non-trivial contributions | ||
| 1273 | require a copyright assignment to the FSF; @xref{Copyright Assignment}. | ||
| 1274 | |||
| 1189 | The development version of Emacs can be downloaded from the | 1275 | The development version of Emacs can be downloaded from the |
| 1190 | repository where it is actively maintained by a group of developers. | 1276 | repository where it is actively maintained by a group of developers. |
| 1191 | See the Emacs project page | 1277 | See 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 | |||
| 1280 | It is important to write your patch based on the current working | ||
| 1281 | version. If you start from an older version, your patch may be | ||
| 1282 | outdated (so that maintainers will have a hard time applying it), or | ||
| 1283 | changes in Emacs may have made your patch unnecessary. After you have | ||
| 1284 | downloaded the repository source, you should read the file | ||
| 1285 | @file{INSTALL.REPO} for build instructions (they differ to some extent | ||
| 1286 | from a normal build). | ||
| 1287 | |||
| 1288 | If you would like to make more extensive contributions, see the | ||
| 1289 | @file{./CONTRIBUTE} file in the Emacs distribution for information on | ||
| 1290 | how to be an Emacs developer. | ||
| 1291 | |||
| 1292 | For documentation on Emacs (to understand how to implement your | ||
| 1293 | desired change), refer to: | ||
| 1294 | |||
| 1295 | @itemize | ||
| 1296 | @item | ||
| 1297 | @ifset WWW_GNU_ORG | ||
| 1298 | @ifhtml | ||
| 1299 | the 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 | ||
| 1313 | the 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 | ||
| 1194 | For more information on how to contribute, see the | 1336 | @node Coding Standards |
| 1337 | @subsection Coding Standards | ||
| 1338 | @cindex coding standards | ||
| 1339 | |||
| 1340 | Contributed code should follow the GNU Coding Standards | ||
| 1341 | @url{http://www.gnu.org/prep/standards/}. This may also be available | ||
| 1342 | in info on your system. | ||
| 1343 | |||
| 1344 | If it doesn't, we'll need to find someone to fix the code before we | ||
| 1345 | can use it. | ||
| 1346 | |||
| 1347 | Emacs 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} | 1353 | the "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 |
| 1358 | Appendix, 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 |
| 1363 | Appendix, elisp, Emacs Lisp Reference}. | ||
| 1205 | @end ifclear | 1364 | @end ifclear |
| 1206 | file in the Emacs distribution. | 1365 | |
| 1366 | @item | ||
| 1367 | Avoid using @code{defadvice} or @code{eval-after-load} for Lisp code | ||
| 1368 | to be included in Emacs. | ||
| 1369 | |||
| 1370 | @item | ||
| 1371 | Remove all trailing whitespace in all source and text files. | ||
| 1372 | |||
| 1373 | @item | ||
| 1374 | Emacs has no convention on whether to use tabs in source code; please | ||
| 1375 | don't change whitespace in the files you edit. | ||
| 1376 | |||
| 1377 | @item | ||
| 1378 | Use @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 | |||
| 1386 | The FSF (Free Software Foundation) is the copyright holder for GNU Emacs. | ||
| 1387 | The FSF is a nonprofit with a worldwide mission to promote computer | ||
| 1388 | user freedom and to defend the rights of all free software users. | ||
| 1389 | For general information, see the website @url{http://www.fsf.org/}. | ||
| 1390 | |||
| 1391 | Generally speaking, for non-trivial contributions to GNU Emacs we | ||
| 1392 | require that the copyright be assigned to the FSF. For the reasons | ||
| 1393 | behind this, see @url{http://www.gnu.org/licenses/why-assign.html}. | ||
| 1394 | |||
| 1395 | Copyright assignment is a simple process. Residents of some countries | ||
| 1396 | can do it entirely electronically. We can help you get started, and | ||
| 1397 | answer any questions you may have (or point you to the people with the | ||
| 1398 | answers), at the @email{emacs-devel@@gnu.org} mailing list. | ||
| 1399 | |||
| 1400 | (Please note: general discussion about why some GNU projects ask | ||
| 1401 | for a copyright assignment is off-topic for emacs-devel. | ||
| 1402 | See gnu-misc-discuss instead.) | ||
| 1403 | |||
| 1404 | A copyright disclaimer is also a possibility, but we prefer an assignment. | ||
| 1405 | Note that the disclaimer, like an assignment, involves you sending | ||
| 1406 | signed paperwork to the FSF (simply saying "this is in the public domain" | ||
| 1407 | is not enough). Also, a disclaimer cannot be applied to future work, it | ||
| 1408 | has to be repeated each time you want to send something new. | ||
| 1409 | |||
| 1410 | We can accept small changes (roughly, fewer than 15 lines) without | ||
| 1411 | an assignment. This is a cumulative limit (e.g. three separate 5 line | ||
| 1412 | patches) 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 | ||
| 1214 | If you need help installing, using or changing GNU Emacs, there are two | 1420 | If you need help installing, using or changing GNU Emacs, there are |
| 1215 | ways to find it: | 1421 | two ways to find it: |
| 1216 | 1422 | ||
| 1217 | @itemize @bullet | 1423 | @itemize @bullet |
| 1218 | @item | 1424 | @item |