Show More
@@ -1,84 +1,82 | |||||
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 |
|
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