##// END OF EJS Templates
Updated dev docs with information about commit messages.
Updated dev docs with information about commit messages.

File last commit:

r3702:a6a440bf
r3702:a6a440bf
Show More
contributing.txt
82 lines | 3.3 KiB | text/plain | TextLexer
Brian Granger
Major work on the documentation....
r2277 .. _contributing:
============================
Brian Granger
Work on documentation....
r2276 How to contribute to IPython
============================
Brian Granger
Major work on the documentation....
r2277 Overview
========
Fernando Perez
Add Git workflow docs from Gitwash....
r2599 IPython development is done using Git [Git]_ and Github.com [Github.com]_.
Brian Granger
Work on documentation....
r2276 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
Major work on the documentation....
r2277 Merging a branch into trunk
===========================
Brian Granger
Work on documentation....
r2276
Core developers, who ultimately merge any approved branch (from themselves,
another developer, or any third-party contribution) will typically use
Fernando Perez
Add Git workflow docs from Gitwash....
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
Work on documentation....
r2276
Brian Granger
Major work on the documentation....
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
Work on documentation....
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
Major work on the documentation....
r2277
Fernando Perez
Updated dev docs with information about commit messages.
r3702 $ git commit --author="Someone Else <who@somewhere.com>"
Brian Granger
Work on documentation....
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
Updated dev docs with information about commit messages.
r3702 extensively, but this is still good to keep in mind for cases when we don't
Brian Granger
Major work on the documentation....
r2277 touch the code too much.
Fernando Perez
Add Git workflow docs from Gitwash....
r2599 .. [Git] The Git version control system.
.. [Github.com] Github.com. http://github.com
Fernando Perez
Updated dev docs with information about commit messages.
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