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