contributing.txt
82 lines
| 3.3 KiB
| text/plain
|
TextLexer
Brian Granger
|
r2277 | .. _contributing: | ||
============================ | ||||
Brian Granger
|
r2276 | How to contribute to IPython | ||
============================ | ||||
Brian Granger
|
r2277 | Overview | ||
======== | ||||
Thomas Kluyver
|
r4712 | IPython development is done using Git_ and Github_ (`Github Ipython Repository`_). | ||
This makes it easy for people to contribute to the development of IPython. | ||||
There are several ways in which you can join in. | ||||
Brian Granger
|
r2276 | |||
Brian Granger
|
r2277 | Merging a branch into trunk | ||
=========================== | ||||
Brian Granger
|
r2276 | |||
Core developers, who ultimately merge any approved branch (from themselves, | ||||
another developer, or any third-party contribution) will typically use | ||||
Fernando Perez
|
r2599 | :command:`git merge` to merge the branch into the trunk and push it to the main | ||
Git repository. There are a number of things to keep in mind when doing this, | ||||
so that the project history is easy to understand in the long run, and that | ||||
generating release notes is as painless and accurate as possible. | ||||
Brian Granger
|
r2276 | |||
Brian Granger
|
r2277 | * When you merge any non-trivial functionality (from one small bug fix to a | ||
big feature branch), please remember to always edit the appropriate file in | ||||
the :ref:`What's new <whatsnew_index>` section of our documentation. | ||||
Ideally, the author of the branch should provide this content when they | ||||
submit the branch for review. But if they don't it is the responsibility of | ||||
the developer doing the merge to add this information. | ||||
* When merges are done, the practice of putting a summary commit message in | ||||
the merge is *extremely* useful. It is probably easiest if you simply use | ||||
the same list of changes that were added to the :ref:`What's new | ||||
<whatsnew_index>` section of the documentation. | ||||
* It's important that we remember to always credit who gave us something if | ||||
Brian Granger
|
r2276 | it's not the committer. In general, we have been fairly good on this front, | ||
this is just a reminder to keep things up. As a note, if you are ever | ||||
committing something that is completely (or almost so) a third-party | ||||
contribution, do the commit as:: | ||||
Brian Granger
|
r2277 | |||
Fernando Perez
|
r3702 | $ git commit --author="Someone Else <who@somewhere.com>" | ||
Brian Granger
|
r2276 | |||
This way it will show that name separately in the log, which makes it even | ||||
easier to spot. Obviously we often rework third party contributions | ||||
Fernando Perez
|
r3702 | extensively, but this is still good to keep in mind for cases when we don't | ||
Brian Granger
|
r2277 | touch the code too much. | ||
Fernando Perez
|
r3702 | |||
Commit messages | ||||
=============== | ||||
Good commit messages are very important; they provide a verbal account of what | ||||
happened that is often invaluable for anyone trying to undestand the intent of | ||||
a commit later on (including the original author!). And git's log command is a | ||||
very versatile and powerful tool, capable of extracting a lot of information | ||||
from the commit logs, so it's important that these logs actually have useful | ||||
information in them. | ||||
In short, a commit message should have the form:: | ||||
One line summary. | ||||
<THIS LINE MUST BE LEFT BLANK> | ||||
More detailed description of what was done, using multiple lines and even | ||||
more than one paragraph if needed. For very simple commits this may not be | ||||
necessary, but non-trivial ones should always have it. | ||||
Closes gh-NNN. # if the commit closes issue NNN on github. | ||||
This format is understood by many git tools that expect a *single line* | ||||
summary, so please do respect it. | ||||
An excellent reference on commits message is `this blog post`_, please take a | ||||
moment to read it (it's short but very informative). | ||||
.. _this blog post: http://who-t.blogspot.com/2009/12/on-commit-messages.html | ||||
Thomas Kluyver
|
r4712 | .. _Github IPython Repository: ipython_github_ | ||
Fernando Perez
|
r3702 | |||
Thomas Kluyver
|
r4712 | .. include:: ../links.rst | ||