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