##// END OF EJS Templates
Use fold-in style links in 'how to contribute' doc.
Thomas Kluyver -
Show More
@@ -1,84 +1,82 b''
1 .. _contributing:
1 .. _contributing:
2
2
3 ============================
3 ============================
4 How to contribute to IPython
4 How to contribute to IPython
5 ============================
5 ============================
6
6
7 Overview
7 Overview
8 ========
8 ========
9
9
10 IPython development is done using Git [Git]_ and Github.com [Github.com]_.
10 IPython development is done using Git_ and Github_ (`Github Ipython Repository`_).
11 (Github Ipython Repository: [IPyGithub]_) This makes it easy for people to
11 This makes it easy for people to contribute to the development of IPython.
12 contribute to the development of IPython. There are several ways in which you
12 There are several ways in which you can join in.
13 can join in.
14
13
15
14
16 Merging a branch into trunk
15 Merging a branch into trunk
17 ===========================
16 ===========================
18
17
19 Core developers, who ultimately merge any approved branch (from themselves,
18 Core developers, who ultimately merge any approved branch (from themselves,
20 another developer, or any third-party contribution) will typically use
19 another developer, or any third-party contribution) will typically use
21 :command:`git merge` to merge the branch into the trunk and push it to the main
20 :command:`git merge` to merge the branch into the trunk and push it to the main
22 Git repository. There are a number of things to keep in mind when doing this,
21 Git repository. There are a number of things to keep in mind when doing this,
23 so that the project history is easy to understand in the long run, and that
22 so that the project history is easy to understand in the long run, and that
24 generating release notes is as painless and accurate as possible.
23 generating release notes is as painless and accurate as possible.
25
24
26 * When you merge any non-trivial functionality (from one small bug fix to a
25 * When you merge any non-trivial functionality (from one small bug fix to a
27 big feature branch), please remember to always edit the appropriate file in
26 big feature branch), please remember to always edit the appropriate file in
28 the :ref:`What's new <whatsnew_index>` section of our documentation.
27 the :ref:`What's new <whatsnew_index>` section of our documentation.
29 Ideally, the author of the branch should provide this content when they
28 Ideally, the author of the branch should provide this content when they
30 submit the branch for review. But if they don't it is the responsibility of
29 submit the branch for review. But if they don't it is the responsibility of
31 the developer doing the merge to add this information.
30 the developer doing the merge to add this information.
32
31
33 * When merges are done, the practice of putting a summary commit message in
32 * When merges are done, the practice of putting a summary commit message in
34 the merge is *extremely* useful. It is probably easiest if you simply use
33 the merge is *extremely* useful. It is probably easiest if you simply use
35 the same list of changes that were added to the :ref:`What's new
34 the same list of changes that were added to the :ref:`What's new
36 <whatsnew_index>` section of the documentation.
35 <whatsnew_index>` section of the documentation.
37
36
38 * It's important that we remember to always credit who gave us something if
37 * It's important that we remember to always credit who gave us something if
39 it's not the committer. In general, we have been fairly good on this front,
38 it's not the committer. In general, we have been fairly good on this front,
40 this is just a reminder to keep things up. As a note, if you are ever
39 this is just a reminder to keep things up. As a note, if you are ever
41 committing something that is completely (or almost so) a third-party
40 committing something that is completely (or almost so) a third-party
42 contribution, do the commit as::
41 contribution, do the commit as::
43
42
44 $ git commit --author="Someone Else <who@somewhere.com>"
43 $ git commit --author="Someone Else <who@somewhere.com>"
45
44
46 This way it will show that name separately in the log, which makes it even
45 This way it will show that name separately in the log, which makes it even
47 easier to spot. Obviously we often rework third party contributions
46 easier to spot. Obviously we often rework third party contributions
48 extensively, but this is still good to keep in mind for cases when we don't
47 extensively, but this is still good to keep in mind for cases when we don't
49 touch the code too much.
48 touch the code too much.
50
49
51
50
52
51
53
52
54 Commit messages
53 Commit messages
55 ===============
54 ===============
56
55
57 Good commit messages are very important; they provide a verbal account of what
56 Good commit messages are very important; they provide a verbal account of what
58 happened that is often invaluable for anyone trying to undestand the intent of
57 happened that is often invaluable for anyone trying to undestand the intent of
59 a commit later on (including the original author!). And git's log command is a
58 a commit later on (including the original author!). And git's log command is a
60 very versatile and powerful tool, capable of extracting a lot of information
59 very versatile and powerful tool, capable of extracting a lot of information
61 from the commit logs, so it's important that these logs actually have useful
60 from the commit logs, so it's important that these logs actually have useful
62 information in them.
61 information in them.
63
62
64 In short, a commit message should have the form::
63 In short, a commit message should have the form::
65
64
66 One line summary.
65 One line summary.
67 <THIS LINE MUST BE LEFT BLANK>
66 <THIS LINE MUST BE LEFT BLANK>
68 More detailed description of what was done, using multiple lines and even
67 More detailed description of what was done, using multiple lines and even
69 more than one paragraph if needed. For very simple commits this may not be
68 more than one paragraph if needed. For very simple commits this may not be
70 necessary, but non-trivial ones should always have it.
69 necessary, but non-trivial ones should always have it.
71
70
72 Closes gh-NNN. # if the commit closes issue NNN on github.
71 Closes gh-NNN. # if the commit closes issue NNN on github.
73
72
74 This format is understood by many git tools that expect a *single line*
73 This format is understood by many git tools that expect a *single line*
75 summary, so please do respect it.
74 summary, so please do respect it.
76
75
77 An excellent reference on commits message is `this blog post`_, please take a
76 An excellent reference on commits message is `this blog post`_, please take a
78 moment to read it (it's short but very informative).
77 moment to read it (it's short but very informative).
79
78
80 .. _this blog post: http://who-t.blogspot.com/2009/12/on-commit-messages.html
79 .. _this blog post: http://who-t.blogspot.com/2009/12/on-commit-messages.html
80 .. _Github IPython Repository: ipython_github_
81
81
82 .. [Git] The Git version control system. http://git-scm.com
82 .. include:: ../links.rst
83 .. [Github.com] Github.com. http://github.com
84 .. [IPyGithub] IPython repository on github. https://github.com/ipython/ipython
General Comments 0
You need to be logged in to leave comments. Login now