todo.org: Add a new TODO
[worg.git] / org-contribute.org
blobfb0c3b6e5ccebd313a6b788fc1cd7b396866ff11
1 #+TITLE:      How to contribute to Org?
2 #+AUTHOR:     Worg people
3 #+EMAIL:      mdl AT imapmail DOT org
4 #+OPTIONS:    H:3 num:nil toc:t \n:nil ::t |:t ^:nil -:t f:t *:t tex:t d:(HIDE) tags:not-in-toc
5 #+STARTUP:    align fold nodlcheck hidestars oddeven lognotestate
6 #+SEQ_TODO:   TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
7 #+TAGS:       Write(w) Update(u) Fix(f) Check(c)
8 #+LANGUAGE:   en
9 #+PRIORITIES: A C B
10 #+CATEGORY:   worg
11 #+HTML_LINK_UP:    index.html
12 #+HTML_LINK_HOME:  https://orgmode.org/worg/
14 # This file is released by its authors and contributors under the GNU
15 # Free Documentation license v1.3 or later, code examples are released
16 # under the GNU General Public License v3 or later.
18 # This file is the default header for new Org files in Worg.  Feel free
19 # to tailor it to your needs.
21 * Various ways of contributing to Org
22 :PROPERTIES:
23 :CUSTOM_ID: types-of-contributions
24 :END:
26 Every contribution to Org is very welcome.
28 - You can [[file:donate.org][make a donation]].
30 - You can check the community's *requests for help* on
31   [[https://updates.orgmode.org/#help][updates.orgmode.org]] and subscribe to [[https://updates.orgmode.org/feed/help][this RSS feed]] to track them.
33 - You can *fix bugs* referenced on [[https://updates.orgmode.org/#bugs][updates.orgmode.org]] and subscribe to
34   [[https://updates.orgmode.org/feed/bugs][this RSS feed]].
36 - You can try to *reproduce bugs*: subscribe to [[https://lists.gnu.org/mailman/listinfo/emacs-orgmode][Org's mailing list]] and
37   monitor new unreferenced bugs.  Try to reproduce them.  If you can
38   reproduce a bug, reply to the OP and add =X-Woof-Bug: confirmed= to
39   your mail headers, the bug will then pop up on [[https://updates.orgmode.org/][updates.orgmode.org]].
41 - You can *help other users by replying to their questions* [[file:org-mailing-list.org][on the
42   mailing list]] or on [[file:org-web-social.org][other web places]].
44 - You can *send bug reports*.  Before sending a bug report, make sure
45   you have read the [[https://orgmode.org/org.html#Feedback][Feedback]] section of Org's manual or this other
46   great text: [[http://www.chiark.greenend.org.uk/~sgtatham/bugs.html][How to Send Bug Reports Effectively]]
48 - You can *submit patches* to the mailing list.  See [[#first-patch][Your first patch]]
49   and [[#patches][Details on how to submit patches]].
51 - You can *contribute to Worg*.  Learn what Worg is [[file:worg-about.org][about]] and how to
52   contribute to it [[file:worg-git.org][through git]].
54 - You can *write add-ons*. The best way is to submit your code to [[file:org-mailing-list.org][the
55   mailing list]] to discuss it with people.  If you decide to sign the [[*Copyright issues when
56   contributing to Emacs Org mode][assignment contract with the FSF]],
57   we might include your contribution in the distribution, and then in
58   GNU Emacs.
60 - You can *share ideas and feature requests*.  Org is already mature,
61   but new ideas keep popping up.  If you want to request a feature,
62   first dig into [[file:org-mailing-list.org][the mailing list]] to find similar proposals.  If you
63   cannot find any, subscribe to [[file:org-mailing-list.org][the mailing list]], read it for a while,
64   then make your proposal.  Formulate it as detailed as possible, if
65   possible with examples.
67 * As a contributor, what can I expect?
68 :PROPERTIES:
69 :CUSTOM_ID: what-can-I-expect
70 :END:
72 Contributions are discussed on the [[https://orgmode.org/worg/org-mailing-list.html][Org mailing list]].
74 - When you contribute with a bug report :: Expect someone to try
75   reproducing the bug.  Please make it easier by providing a minimal
76   reproducible recipe.  Check the manual on how to provide [[https://orgmode.org/manual/Feedback.html][feedback]].
77   If no one replies, don't take it personally: it either means that
78   nobody was able to reproduce the bug or that the bug is not that
79   critical for someone else to confirm it.  
81 - When you contribute with a patch :: Your patch will be listed on
82   [[https://updates.orgmode.org][updates.orgmode.org]].  If this is your first patch, don't expect the
83   patch to be applied immediately.  You can expect someone to review
84   it and to suggest changes, either on the technical or formal aspects
85   of the patch.  If nobody seems to care enough to reply, don't take
86   it personally: it means that maintainers are busy and/or that the
87   patch does not seem critical enough.
89 - When you contribute with an idea or a feature request ::  The best
90   way to convince maintainers that your idea is worth considering is
91   by detailing your use-case and by proposing a patch for it.  Expect
92   people to discuss the idea on the list, but please remember Org is
93   very old now, used by many people with various needs.  If nobody
94   replies, don't take it personally.
96 In general, if you want to raise awareness on an email you sent,
97 please wait at least for *one month* before bumping a thread.  See [[file:org-mailing-list.org::#i-didnt-receive-an-answer][What
98 to do if you don't receive an answer]].
100 The Org mailing list has *contributor stewards* who will try their best
101 to make sure your contributions get all the attention they deserve.
103 * Your first patch as an occasional contributor
104 :PROPERTIES:
105 :CUSTOM_ID: first-patch
106 :END:
108 You don't need write access to the repository to contribute with
109 patches, just send them to [[file:org-mailing-list.org][the mailing list]].  Here is a checklist to
110 go through before submitting a patch:
111   
112 1. Make your patch against the latest maint or master branch
113 2. Run =~$ make test= to catch broken tests
114 3. Check compilation warning with =~$ make compile=
115 4. If relevant, include or update tests
116 5. If your patch is adding a feature, please update =etc/ORG-NEWS=
117 6. If relevant, don't forget to update =doc/org-manual.org=
118 7. Take extra care of the commit message (see [[#commit-messages][Commit messages and ChangeLog entries]])
119 8. If your change is small enough, include =TINYCHANGE= at the bottom
120    of the commit message.
122 If your patch is against an Org file that is part of Emacs, then your
123 total contribution (all patches you submit) should change /less than 15
124 lines/ (See the [[http://git.savannah.gnu.org/cgit/emacs.git/tree/CONTRIBUTE][CONTRIBUTE file in GNU Emacs]].)  
126 If you contribute more, you have to assign the [[#copyright][copyright]] of your
127 contribution to the Free Software Foundation.  See [[#devs][Your first commit
128 as an Org committer]].
130 * Your first commit as an Org committer
131 :PROPERTIES:
132 :CUSTOM_ID: devs
133 :END:
135 Org regular contributors and maintainers have write access to the Git
136 repository.
138 1. Fill in [[https://orgmode.org/request-assign-future.txt][this form]] and wait for the FSF feedback
139 2. Send [[mailto:bzgATgnuDOTorg][Bastien]] the username you want for https://code.orgmode.org
140 3. Add your public key to your account, once its creation is confirmed
141 4. Clone =org-mode.git=: =~$ git clone git@code.orgmode.org:bzg/org-mode.git=
142 5. Commit your changes against the code and the documentation
143 6. Run =make test=
144 7. If the tests pass, push your changes
146 If you are undertaking big changes, please create a dedicated branch
147 locally and make sure you have a clean commit history before merging
148 it into the maint or master branch.
150 To check our Git workflow, please read [[https://orgmode.org/worg/org-maintenance.html][Org maintenance]].
152 * Details on how to submit patches
153 :PROPERTIES:
154 :CUSTOM_ID: patches
155 :END:
157 ** Coding conventions
159 Org is part of Emacs, so any contribution should follow the [[http://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html][GNU Emacs
160 Lisp coding conventions]] described in Emacs manual.
162 ** Sending patch with Git
164 Please use Git to make patches and send them via email -- this is
165 perfectly fine for major and minor changes.
167 When sending a patch (either using =git diff= or =git format-patch=)
168 please *always add a properly formatted Emacs ChangeLog entry*.  See
169 [[#commit-messages][this section]] for details on how to create such a ChangeLog.
171 ** Sending commits
173 For every patch you send, we suggest to use =git format-patch=.
175 This is easy for small patches and more consequent ones.  Sometimes,
176 you might even want to work in several steps and send each commit
177 separately.  Here is the suggested workflow:
179 #+begin_quote
180 :   ~$ git pull                 # make sure your repo is up to date
181 :   ~$ git branch my-changes    # create a new branch from master
182 :   ~$ git checkout my-changes  # switch to this new branch
184   ... make some changes (1) ...
186 :   ~$ git commit -a -m "This is change (1)"  # Commit your change
188   ... make another change (2) ...
190 :   ~$ git commit -a -m "This is change (2)"  # Commit your change
191 :   ~$ git format-patch master                # Creates two patches
193   ... Then two patches for your two commits are ready to be sent to
194   the list.
195 #+end_quote
197 To finally send the patches, you can either add them as attachments to
198 your email, or use [[https://git-scm.com/docs/git-send-email][git send-email]], if it's properly configured.
200 Write useful commit messages: please provide 1) a reason for it in
201 your email and 2) a ChangeLog entry in the commit message (see [[#commit-messages][this
202 section]] on how to format a ChangeLog entry.)
204 ** Sending quick fixes for testing purpose
206 If you want to send a quick fix that needs to be further tested by
207 other people (before you submit a real patch), here is how you can do:
209 #+begin_quote
210   This command will make a patch between the staging area (in your
211   computer), and the file you modified:
213   : git diff -p org-whatever.el > org-whatever.el.diff
215   If you already committed your changes to your index (staging area), then
216   you should compare against a particular branch (in this example,
217   origin/master):
219   : git diff -p origin/master org-whatever.el > org-whatever.el.diff
221   You email the output to the mailing list, adding =[PATCH]= to the
222   subject, and description of what you fixed or changed.
223 #+end_quote
225 Note that small patches sent like this still need to have a ChangeLog
226 entry to be applied.  If your patch looks good to you, it's always
227 better to send a patch through =git format-patch=.
229 ** Sharing changes from a public branch
231 When discussing important changes, it is sometimes not so useful to
232 send long and/or numerous patches.
234 In this case, you can maintain your changes on a public branch of a
235 public clone of Org and send a link to the diff between your changes
236 and the latest Org commit that sits in your clone.
238 If the discussion settles and your change is accepted, you can now
239 send it as (a list of) patch(es) to the latest Org version.
241 * Commit messages and ChangeLog entries
242 :PROPERTIES:
243 :CUSTOM_ID: commit-messages
244 :END:
246 We have decided to no longer keep a ChangeLog file to record changes
247 to individual functions.
249 A commit message should be constructed in the following way:
251 - Line 1 of the commit message should always be a short description of
252   the overall change.  Line 1 does /not/ get a dot at the end and does
253   not start with a star.  Generally, it starts with the filename that
254   has been changed, followed by a colon.
256 - Line 2 is an empty line.
258 - In line 3, the ChangeLog entry should start.  A ChangeLog entry
259   looks like [[https://code.orgmode.org/bzg/org-mode/commit/d49957ef021e256f19092c907d127390d39ec1ed][this]]:
261   : * org-timer.el (org-timer-cancel-timer, org-timer-stop): Enhance
262   : message.
263   : (org-timer-set-timer): Use the number of minutes in the Effort
264   : property as the default timer value. Three prefix arguments will
265   : ignore the Effort value property.
267 - After the changelog, another empty line should come before any
268   additional information that the committer wishes to provide in order
269   to explain the patch.
271 - If the change is a minor change made by a committer without
272   copyright assignment to the FSF, the commit message should also
273   contain the cookie =TINYCHANGE= (anywhere in the message).  When we
274   later produce the ChangeLog file for Emacs, the change will be
275   marked appropriately.
277 - Variables and functions names are quoted like `this' (backquote and
278   single quote).
280 - Sentences should be separated by two spaces.
282 - Sentences should start with an uppercase letter.
284 - Avoid the passive form: i.e., use "change" instead of "changed".
286 Here is an example for such a message:
288 #+begin_example
289   org-capture.el: Fix the case of using a template file
291   ,* lisp/org-capture.el (org-capture-set-plist): Make sure txt is a
292   string before calling `string-match'.
293   (org-capture-templates): Fix customization type.
295   ,* doc/org.texi (Capture): Document using a file for a template.
297   The problem here was that a wrong keyword was given in the
298   customization type.  This let to a string-match against a list value.
300   Modified from a patch proposal by Johan Friis.
302   TINYCHANGE
303 #+end_example
305 If you are using [[https://magit.vc/][magit]] in Emacs, the ChangeLog for such entries can be
306 produced by pressing =C= (for ~magit-commit-add-log~) on the diff chunks
307 of a staged file.  (If you prefer storing your ChangeLog entries in a
308 file, you can also use =C-x 4 a=
309 (~magit-add-change-log-entry-other-window~) from within magit display of
310 diff chunks.)
312 Another option to produce the entries is to use `C-x 4 a' in the
313 changed function or in the diff listing.  This will create entries in
314 the ChangeLog file, and you can then cut and paste these to the commit
315 message and remove the indentation.
317 Further reference:
318 - [[https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs][Standard Emacs change log entry format]]
319 - [[http://git.savannah.gnu.org/cgit/emacs.git/plain/CONTRIBUTE][Contribution guide from Emacs repo]]
321 * Dealing with copyright when contributing to Org mode
322 :PROPERTIES:
323 :CUSTOM_ID: copyright
324 :END:
326 Org is made of many files.  Most of them are also distributed as part
327 of GNU Emacs.  These files are called the /Org core/, and they are all
328 copyrighted by the [[http://www.fsf.org][Free Software Foundation, Inc]].
330 If you consider contributing to these files, your first need to grant
331 the right to include your works in GNU Emacs to the FSF.  For this you
332 need to complete [[https://orgmode.org/request-assign-future.txt][this form]], and send it to [[mailto:assign@gnu.org][assign@gnu.org]].
334 The FSF will send you the assignment contract that both you and the
335 FSF will sign.  Please let the Org mode maintainer know when this
336 process is complete.
338 If you want to learn more about /why/ copyright assignments are
339 collected, read this: [[http://www.gnu.org/licenses/why-assign.html][Why the FSF gets copyright assignments from
340 contributors?]]
342 By submitting patches to =emacs-orgmode@gnu.org= or by pushing changes
343 to Org's core files, you are placing these changes under the same
344 licensing terms as those under which GNU Emacs is published.
346 #+begin_example
347 ;; GNU Emacs is free software: you can redistribute it and/or modify
348 ;; it under the terms of the GNU General Public License as published by
349 ;; the Free Software Foundation, either version 3 of the License, or
350 ;; (at your option) any later version.
351 #+end_example
353 If at the time you submit or push these changes you do have active
354 copyright assignment papers with the FSF, for future changes to either
355 Org mode or to Emacs, this means that copyright to these changes is
356 automatically transferred to the FSF.
358 The Org mode repository is seen as upstream repository for Emacs,
359 anything contained in it can potentially end up in Emacs.  If you do
360 not have signed papers with the FSF, only changes to files in the
361 =contrib/= part of the repository will be accepted, as well as very
362 minor changes (so-called /tiny changes/) to core files.  We will ask you
363 to sign FSF papers at the moment we attempt to move a =contrib/= file
364 into the Org core, or into Emacs.
366 * Copyrighted contributors to Org mode
367 :PROPERTIES:
368 :CUSTOM_ID: copyrighted-contributors
369 :END:
371 Here is the list of people who have contributed actual code to the Org
372 mode core.  Note that the manual contains a more extensive list with
373 acknowledgments, including contributed ideas!  The lists below are
374 mostly for house keeping, to help the maintainers keep track of
375 copyright issues.
377 ** Current contributors
378   :PROPERTIES:
379   :CUSTOM_ID: contributors_with_fsf_papers
380   :END:
382 Here is the list of people who signed the papers with the Free Software
383 Foundation and can now freely submit code to Org files that are included
384 within GNU Emacs:
386 - Aaron Ecay
387 - Aaron Jensen
388 - Abdó Roig-Maranges
389 - Achim Gratz
390 - Adam Elliott
391 - Adam Porter
392 - Adam Spiers
393 - Alan Schmitt
394 - Alex Branham
395 - Alexey Lebedeff
396 - Allen Li
397 - Andreas Burtzlaff
398 - Andreas Leha
399 - Andrew Hyatt
400 - Andrzej Lichnerowicz
401 - Andy Steward
402 - Anthony John Day
403 - Anthony Lander
404 - Arni Magnusson
405 - Arun Isaac
406 - Baoqiu Cui
407 - Barry Leonard Gidden
408 - Bastien Guerry
409 - Benjamin Andresen
410 - Bernd Grobauer
411 - Bernt Hansen
412 - Bjarte Johansen
413 - Brian James Gough
414 - Brice Waegenire
415 - Carlos Pita
416 - Carsten Dominik
417 - Charles Berry
418 - Charles Sebold
419 - Christian Egli
420 - Christian Garbs
421 - Christian Moe
422 - Christopher League
423 - Christopher Miles Gray
424 - Christopher Schmidt
425 - Christopher Suckling
426 - Clément Pit--Claudel
427 - Dan Davison
428 - Daniele Nicolodi
429 - Daniel M German
430 - Daniel M.\nbsp{}Hackney
431 - David Arroyo Menéndez
432 - David Maus
433 - David O'Toole
434 - Dieter Schoen
435 - Dima Kogan
436 - Dmitry Antipov
437 - Don March
438 - Emmanuel Charpentier
439 - Eric Abrahamsen
440 - Eric Schulte
441 - Eric S.\nbsp{}Fraga
442 - Erik Hetzner
443 - Erik Iverson
444 - Ethan Ligon
445 - Feng Shu
446 - Ferdinand Pieper
447 - Florian Lindner
448 - Francesco Pizzolante
449 - Frederick Giasson
450 - Gary Oberbrunner
451 - George Kettleborough
452 - Georg Lehner
453 - Giovanni Ridolfi
454 - Greg Minshall
455 - Grégoire Jadi (aka Daimrod)
456 - Gustav Wikström
457 - Henning Dietmar Weiss
458 - Henry Blevins
459 - Ian Barton
460 - Ian Dunn
461 - Ian Kelling
462 - Ian Martins
463 - Ihor Radchenko
464 - Ilya Shlyakhter
465 - Ingo Lohmar
466 - Ippei Furuhashi
467 - Jack Kamm
468 - Jake Romer
469 - James TD Smith
470 - Jan Böcker
471 - Jan Malakhovski
472 - Jarmo Hurri
473 - Jason Riedy
474 - Jay Kamat
475 - Jay Kerns
476 - Jeffrey Ryan Horn
477 - Jens Lechtenboerg
478 - Joe Corneli
479 - Joel Boehland
480 - John Kitchin
481 - John Wiegley
482 - Jonas Bernoulli
483 - Jonathan Leech-Pepin
484 - Jon Snader
485 - José L.\nbsp{}Doménech
486 - Juan Pechiar
487 - Julian Gehring
488 - Julien Barnier
489 - Julien Danjou
490 - Juri Linkov
491 - Justin Abrahms
492 - Justin Gordon
493 - Justus Piater
494 - Karl Fogel
495 - Kaushal Modi
496 - Ken Mankoff
497 - Kevin Brubeck Unhammer
498 - Kevin Foley
499 - Kévin Le Gouguec
500 - Konstantin Antipin
501 - Kyle Meyer
502 - Lambda Coder
503 - Lawrence Mitchell
504 - Lele Gaifax
505 - Lennart Borgman
506 - Leonard Avery Randall
507 - Leo Vivier
508 - Le Wang
509 - Luc Pellissier
510 - Luis Anaya
511 - Lukasz Stelmach
512 - Madan Ramakrishnan
513 - Magnus Henoch
514 - Manuel Giraud
515 - Marcin Borkowski
516 - Marco Wahl
517 - Mario Frasca
518 - Mark A.\nbsp{}Hershberger
519 - Martin Pohlack
520 - Martyn Jago
521 - Matt Huszagh
522 - Matt Lundin
523 - Maxim Nikulin
524 - Max Mikhanosha
525 - Michael Albinus
526 - Michael Brand
527 - Michael Gauland
528 - Michael Sperber
529 - Miguel A.\nbsp{}Figueroa-Villanueva
530 - Mikael Fornius
531 - Morgan Smith
532 - Moritz Ulrich
533 - Nathaniel Flath
534 - Nathan Neff
535 - Neil Jerram
536 - Nicholas Dokos
537 - Nicholas Savage
538 - Nicolas Berthier
539 - Nicolas Dudebout
540 - Nicolas Goaziou
541 - Nicolas Richard
542 - Niels Giessen
543 - Nikolai Weibull
544 - Noorul Islam K M
545 - No Wayman (Nicholas Vollmer)
546 - Oleh Krehel
547 - Palak Mathur
548 - Paul Sexton
549 - Pedro Alexandre Marcelino Costa da Silva
550 - Pedro Bruel
551 - Peter Jones
552 - Phil Hudson
553 - Philip Rooke
554 - Phil Jackson
555 - Pierre Téchoueyres
556 - Pieter Praet
557 - Piotr Zielinski
558 - Protesilaos Stavrou
559 - Puneeth Chaganti
560 - Rafael Laboissière
561 - Rainer M Krug
562 - Rasmus Pank Roulund
563 - Richard Kim
564 - Richard Klinda
565 - Richard Riley
566 - Rick Frankel
567 - Robert Michael Irelan
568 - Robin Campbell
569 - Roland Coeurjoly
570 - Rüdiger Sonderfeld
571 - Russell Adams
572 - Ryo Takaishi
573 - Sacha Chua
574 - Samuel Loury
575 - Sebastian Miele
576 - Sebastian Reuße
577 - Sebastian Rose
578 - Sébastien Miquel
579 - Sebastien Vauban
580 - Sergey Litvinov
581 - Seweryn Kokot
582 - Simon Michael
583 - Siraphob Phipathananunth
584 - stardiviner
585 - Stefan Kangas
586 - Stefan Monnier
587 - Stephen Eglen
588 - Steven Rémot
589 - Suvayu Ali
590 - Takaaki Ishikawa
591 - Tassilo Horn
592 - Terje Larsen
593 - T.F. Torrey
594 - Thibault Marin
595 - Thierry Banel
596 - Thomas Baumann
597 - Thomas Fitzsimmons
598 - Thomas Holst
599 - Thomas S.\nbsp{}Dye
600 - Thorsten Jolitz
601 - Tim Burt
602 - Tim Landscheidt
603 - Timothy E Chapman (TEC)
604 - Titus von der Malsburg
605 - Toby Cubitt
606 - Tokuya Kameshima
607 - Tomas Hlavaty
608 - Tom Breton
609 - Tom Gillespie
610 - Tony Day
611 - Toon Claes
612 - Trevor Murphy
613 - Ulf Stegemann
614 - Vitalie Spinu
615 - Vladimir Panteleev
616 - Yann Hodique
617 - Yasushi Shoji
618 - Yoshinari Nomura
619 - Yuri D.\nbsp{}Lensky
620 - Zhang Weize
621 - Zhuo Qingliang (Killy Draw)
623 ** Processing
625 These people have been asked to sign the papers, and they are
626 currently considering it or a request is being processed by the FSF.
628 - Felipe Lema [2020-02-25 mar.]
629 - Brian Carlson [2016-05-24 Tue]
630 - Mats Kindahl (as of 2013-04-06) for [[http://mid.gmane.org/513BAB7D.1000603@oracle.com][this patch]]
631 - Bill Wishon [?]
632 - Lawrence Bottorff
634 ** Tiny Changes
636 These people have submitted tiny change patches that made it into Org
637 without FSF papers.  When they submit more, we need to get papers
638 eventually.  The limit is a cumulative change of 20 non-repetitive
639 change lines.  Details are given in [[http://www.gnu.org/prep/maintain/maintain.html#Legally-Significant ][this document]].
641 - Aaron L.\nbsp{}Zeng
642 - Aaron Madlon-Kay
643 - Abhishek Chandratre
644 - Adam Aviv
645 - akater
646 - Alan D. Salewski
647 - Alan Light
648 - Albert Krewinkel
649 - Alexandru-Sergiu Marton
650 - Aliaksey Artamonau
651 - Aman Yang
652 - Anders Johansson
653 - Andrew Burgess
654 - Andrew Eggenberger
655 - Andrii Kolomoiets
656 - Andy Lutomirski
657 - Anthony Cowley
658 - Anton Latukha
659 - Arne Babenhauserheide
660 - Arun Persaud
661 - Atlas Cove
662 - Augustin Fabre
663 - Aurélien Aptel
664 - Austin Walker
665 - Axel Kielhorn
666 - Basile Pesin
667 - Benson Chu
668 - Brad Knotwell
669 - Brian Powell
670 - Cheong Yiu Fung
671 - Christian Hopps
672 - Christian Schwarzgruber
673 - Chunyang Xu
674 - Claudiu Tănăselia
675 - Craig Tanis
676 - Dan Drake
677 - Daniel Gröber
678 - Daniel Peres Gomez
679 - Derek Feichtinger
680 - Dieter Faulbaum
681 - Dima Gerasimov
682 - Dominik Schrempf
683 - Doro Rose
684 - Eduardo Bellani
685 - Eric Danan
686 - Eric Timmons
687 - Fatih Aydin
688 - Federico Beffa
689 - Feng Zhou
690 - Fernando Varesi
691 - Florian Beck
692 - Florian Dufour
693 - Francesco Montanari
694 - Galen Menzel
695 - Georgiy Tugai
696 - Gong Qijian
697 - Gregor Zattler
698 - Greg Tucker-Kellogg
699 - Hiroshi Saito
700 - Ivan Sokolov
701 - Ivan Vilata i Balaguer
702 - Jack Henahan
703 - Jacob Gerlach
704 - Jacob Matthews
705 - Jakob Lombacher
706 - Jamie Forth
707 - Jan Seeger
708 - Jason Dunsmore
709 - Jason Furtney
710 - Jean-Marie Gaillourdet
711 - Jeff Larson
712 - Joaquín Aguirrezabalaga
713 - Joe Hirn
714 - John Foerch
715 - John Herrlin
716 - John Lee
717 - Jonas Hörsch
718 - Jon Miller
719 - Joost Diepenmaat
720 - Jose Robins
721 - Karol Wójcik
722 - Kodi Arfer
723 - Konstantin Kliakhandler
724 - Kovacsics Robert
725 - Lein Matsumaru
726 - Leslie Harlley Watter
727 - Leslie Watter
728 - Lixin Chin
729 - Luke Amdor
730 - Mak Kolybabi
731 - Marc Ihm
732 - Mario Martelli
733 - Marshall Flax
734 - Martin Kampas
735 - Martin Šlouf
736 - Martin Vuk
737 - Matthew Gidden
738 - Matthew MacLean
739 - Matt Price
740 - Max Mouratov
741 - Michaël Cadilhac
742 - Michael O'Connor
743 - Michael Strey
744 - Michael Welle
745 - Michael Weylandt
746 - Mike Ivanov
747 - Mike McLean
748 - Mingkai Dong
749 - Miro Bezjak
750 - Moritz Kiefer
751 - Muchenxuan Tong
752 - Myles English
753 - Myq Larson
754 - Nathaniel Nicandro
755 - Nick Daly
756 - Nick Gunn
757 - Nicolò Balzarotti
758 - Pablo Barraza Cornejo
759 - Peter Feigl
760 - Peter Moresi
761 - Philip (Pip Cet)
762 - Piet van Oostrum
763 - Renato Ferreira
764 - Richard Hansen
765 - Richard Lawrence
766 - Richard Y.\nbsp{}Kim (Kim)
767 - Robert Hambrock
768 - Roberto Huelga
769 - Robert P.\nbsp{}Goldman
770 - Roger Welsh
771 - Ruben Maher
772 - Sameer Rahmani
773 - Sami Airaksinen
774 - Saulius Menkevičius
775 - Sebastien Le Maguer
776 - Sébastien Miquel
777 - Sergey Gordienko
778 - Seth Robertson
779 - Sigmund Tzeng
780 - Stacey Marshall
781 - Stanley Jaddoe
782 - Stefano Rodighiero
783 - Stefan-W.\nbsp{}Hahn
784 - Stig Brautaset
785 - Sylvain Chouleur
786 - Tadashi Hirata
787 - Tara Lorenz
788 - Teika Kazura
789 - Terje Larsen
790 - Thierry Pellé
791 - Thomas Alexander Gerds
792 - Thomas Plass
793 - Thomas Rikl
794 - Tim Visher
795 - Tobias Schlemmer
796 - Tom Hinton
797 - TRS-80
798 - Utkarsh Singh
799 - Vicente Vera Parra
800 - Viktor Rosenfeld
801 - Vladimir Lomov
802 - Wojciech Gac
803 - Xavier Martinez-Hidalgo
804 - Xi Shen
805 - Yann Esposito
806 - York Zhao
807 - Yue Zhu
808 - Zane D.\nbsp{}Purvis
809 - Иван Трусков
811 (This list may be incomplete - please help completing it.)
813 ** No FSF assignment
815 These people cannot or prefer to not sign the FSF copyright papers,
816 and we can only accept patches that do not change the core files (the
817 ones that are also in Emacs).
819 Luckily, this list is still empty.
821 #+BEGIN: timestamp :string "Last update: " :format "%Y-%m-%d @ %H:%M"
823 #+END: