Issue file restore partially done issue
[Worg.git] / org-contribute.org
blobc148783bce10e6bdad1cd4f04dd3ed730ab6ec40
1 #+OPTIONS:    H:3 num:nil toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t TeX:t LaTeX:t skip:nil d:(HIDE) tags:not-in-toc
2 #+STARTUP:    align fold nodlcheck hidestars oddeven lognotestate
3 #+SEQ_TODO:   TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
4 #+TAGS:       Write(w) Update(u) Fix(f) Check(c) 
5 #+TITLE:      How to contribute to Org?
6 #+AUTHOR:     Worg people
7 #+EMAIL:      bzg AT altern DOT org
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 * Types of contributions
19 Every contribution to Org is very welcome.  Here is a list of areas where
20 your contribution will be useful:
22 - you can submit *bug reports* -- Before sending a bug report, make sure
23   you have read this section of Org's manual: [[http://orgmode.org/org.html#Feedback][Feedback]]
25 - you can submit *feature requests* -- Org is already mature, but new
26   ideas keep popping up.  If you want to request a feature, it might
27   be a good idea to have a look at the current [[http://orgmode.org/worg/org-issues.php][Issue tracking file]]
28   which captures both bug reports and feature requests.  Or dig into
29   the mailing list for possible previous discussions about your idea.
30   If you cannot find back your idea, formulate it as detailed as
31   possible, if possible with examples, and send it to the mailing
32   list.
34 - you can submit *patches* -- You can submit patches to the mailing list.
36   If your patch is against a file that is part of Emacs, then your
37   total contribution (all patches you submit) should change /less than
38   20 lines/.  If you contribute more, you have to assign the copyright
39   of your contribution to the Free Software Foundation (see below).
40   
41 - you can submit Org *add-ons* -- there are many Org add-ons.  The best way
42   is to submit your code to the mailing list to discuss it with people.  If
43   it is useful, you might consider contributing it to the =CONTRIB/=
44   directory in the git repository.
46 - you can submit material to the *Worg* website -- This website is made of
47   Org files that you can contribute to.  Learn what Worg is [[file:worg-about.org][about]] and how
48   to contribute to it [[file:worg-git.org][through git]].
50 * Copyright issues when contributing to Emacs org-mode
52 Org is made of many files.  Most of them are also distributed as part
53 of GNU Emacs.  These files are called the /Org core/, and they are all
54 copyrighted by the [[http://www.fsf.org][Free Software Foundation, Inc]].  If you consider
55 contributing to these files, your first need to grant the right to
56 include your works in GNU Emacs to the FSF.  For this you need to
57 complete [[http://orgmode.org/request-assign-future.txt][this form]], send it to [[mailto:assign@gnu.org][assign@gnu.org]], and tell the Org-mode
58 maintainer when this process is complete.  Some people consider this a
59 hassle.  I don't want to discuss this in detail here - there are some
60 good reasons for getting the copyright registered, an example is
61 discussed in this [[http://twit.tv/floss117][FLOSS weekly podcast]].  Furthermore, by playing
62 according to the Emacs rules, we gain the fantastic advantage that
63 every version of Emacs ships with Org-mode already fully built in.  So
64 please consider doing this - it makes our work as maintainers so much
65 easier, because we can then take your patches without any additional
66 work.
68 If you want to learn more about /why/ copyright assignments are
69 collected, read this: [[http://www.gnu.org/licenses/why-assign.html][Why the FSF gets copyright assignments from
70 contributors?]]
72 * Preferred way of submitting patches
74 Org-mode is developed using /git/ as the version control system.  Git
75 provides an amazing framework to collaborate on a project.  Git can be
76 used to make patches and send them via email - this is perfectly fine
77 for minor changes.  These patches will be automatically registered at
78 [[http://patchwork.newartisans.com/project/org-mode][John Wiegley's patchwork server]] and will then be accepted, rejected,
79 or sent back to the author with a request for modification.
81 For more significant contributions, the best way to submit patches is
82 through public branches of your repository clone.
84 1. Clone our git repository at =http://repo.or.cz/w/org-mode.git=
86 2. Create a repository that can be publicly accessed, for example on
87    /GitHub/, /repo.or.cz/, or on your own server.
89 3. Push your topic branches (and optionally the master branch) to your
90    public repository.
92    Define a remote for your public repository you push topics to.
94    : git remote add REMOTE URL-GOES-HERE
96    Push branches to the remote
98    : git push REMOTE BRANCH1 [BRANCH2 BRANCH3 ...]
100    e.g.
102    : git remote add github ssh://.../     # Done once to define the remote 'github'
103    : git push github my-topic
105 4. Do your work on topic-specific branches, using a branch name that
106    relates to what you are working on.
108 5. Often do
110    : git remote update
112    to pull commits from all defined remote repositories, in particular
113    the org-mode master at /repo.or.cz/.
115 6. When you have something workable, publish the git path and branch
116    name on the mailing list, so that people can test it and review
117    your work.
119 7. After your topic has been merged to the project master branch you
120    can delete the topic on your local and remote repositories.
122    : git branch -d NEWTOPIC
123    : git push REMOTE :NEWTOPIC
125 * ChangeLog entries and commit messages
127 We have decided to no longer keep a ChangeLog file to record changes
128 to individual functions.  In a modern version control system like git,
129 ChangeLog is duplicating information that should be in the commit
130 message, and it is the main cause of merge conflicts.
132 Instead, the change log entry should be part of the commit message.
133 Line 1 of the commit message should always be a short description of
134 the overall change.  In line 3, the ChangeLog entry should start, in a
135 similar format as in the old ChangeLog files, but without the author
136 information (which is part of the commit anyway).  After the
137 changelog, another empty line should come before any additional
138 information that the committer wishes to provide in order to expain
139 the patch.
141 An example for such a commit message is [[http://article.gmane.org/gmane.emacs.orgmode/25574][here]].
143 If you are using /magit.el/ in Emacs, such entries are easily made by
144 pressing =C= in the diff listing.  Another option to make the entries
145 is to use `C-x 4 a' in the changed function.  This will create entries
146 in the ChangeLog file, and you can then cut and paste these to the
147 commit message and remove the indentation.
150 * Copyrighted contributors to Org-mode
152 Here is the list of people who have contributed actual code to the
153 Org-mode core.  Note that the manual contains a more extensive list
154 with acknowledgments, including contributed ideas!  The lists below
155 are mostly for house keeping, to help the maintainers keep track of
156 copyright issues.
158 ** Current contributors
159   :PROPERTIES:
160   :CUSTOM_ID: contributors_with_fsf_papers
161   :END:
163 Here is the list of people who signed the papers with the Free Software
164 Foundation and can now freely submit code to Org files that are included
165 within GNU Emacs:
167 1. Russel Adams
168 2. Benjamin Andresen
169 3. Konstantin Antipin
170 4. Ian Barton
171 5. Thomas Baumann
172 6. Jan Böker
173 7. Lennart Borgman
174 8. Tom Breton
175 9. Baoqiu Cui
176 10. Sacha Chua
177 11. Dan Davison
178 12. Carsten Dominik
179 13. Stephen Eglen
180 14. Christian Egli
181 15. Adam Elliott
182 16. Miguel A. Figueroa-Villanueva
183 17. Mikael Fornius
184 18. Eric S. Fraga
185 19. Daniel M German
186 20. Bastien Guerry
187 21. Daniel M. Hackney
188 22. Bernt Hansen
189 23. Magnus Henoch
190 24. Tomas Hlavaty
191 25. Tassilo Horn
192 26. Phil Jackson
193 27. Peter Jones
194 28. Tokuya Kameshima
195 29. Richard Klinda
196 30. Anthony Lander
197 31. Christopher League
198 32. David Maus
199 33. Ross Patterson
200 34. Martin Pohlack
201 35. Jason Riedy
202 36. Richard Riley
203 37. Philip Rooke
204 38. Sebastian Rose
205 39. Eric Schulte
206 40. Charles Sebold
207 41. Paul Sexton
208 42. James TD Smith
209 43. Michael Sperber
210 44. Ulf Stegemann
211 45. Lukasz Stelmach
212 46. Andy Steward
213 47. Christopher Suckling
214 48. David O'Toole
215 49. John Wiegley
216 50. Piotr Zielinski
218 ** Processing
220 These people have been asked to sign the papers, and they are
221 currently considering it or a request is being processed by the FSF.
223 1. Russel Adams
224 2. Chris Gray
225 3. Andreas Burtzlaff
227 ** Tiny Changes
229 These people have submitted tiny change patches that made it into Org
230 without FSF papers.  When they submit more, we need to get papers
231 eventually.  The limit is a cumulative change of 20 non-repetitive
232 change lines.  Details are given in [[http://www.gnu.org/prep/maintain/maintain.html#Legally-Significant ][this document]].
234 1. Robert P. Goldman
235 2. Julien Barnier
236 3. Andy Lutomirski
237 4. Joel Boehland
239 (this list may be incomplete - please help to complete it)
241 ** No FSF assignment
243 These people cannot or prefer to not sign the FSF copyright papers,
244 and we can only accept patches that do not change the core files (the
245 ones that are also in Emacs).
247 Luckily, this list is still empty.
249 #+BEGIN: timestamp :string "Last update: " :format "%Y-%m-%d @ %H:%M"
250 Last update: 06-04-2010 16:29
251 #+END: