##// END OF EJS Templates
Multiple improvements to tab completion....
Multiple improvements to tab completion. I refactored the API quite a bit, to retain readline compatibility but make it more independent of readline. There's still more to do in cleaning up our init_readline() method, but now the completer objects have separate rlcomplete() and complete() methods. The former uses the quirky readline API with a state flag, while the latter is stateless, takes only text information, and is more suitable for GUIs and other frontends to call programatically. Made other minor fixes to ensure the test suite passes in full. While all this code is a bit messy, we're getting in the direction of the APIs we need in the long run.

File last commit:

r2599:aa4014be
r2839:8cff4913
Show More
contributing.txt
52 lines | 2.2 KiB | text/plain | TextLexer
.. _contributing:
============================
How to contribute to IPython
============================
Overview
========
IPython development is done using Git [Git]_ and Github.com [Github.com]_.
This makes it easy for people to contribute to the development of IPython.
There are several ways in which you can join in.
Merging a branch into trunk
===========================
Core developers, who ultimately merge any approved branch (from themselves,
another developer, or any third-party contribution) will typically use
: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.
* 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
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::
$ git commit --author="Someone Else"
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
extensively ,but this is still good to keep in mind for cases when we don't
touch the code too much.
.. [Git] The Git version control system.
.. [Github.com] Github.com. http://github.com