diff --git a/docs/source/development/development.txt b/docs/source/development/development.txt index 75cb395..fd4af5e 100644 --- a/docs/source/development/development.txt +++ b/docs/source/development/development.txt @@ -5,22 +5,6 @@ IPython development guidelines ================================== .. contents:: -.. - 1 Overview - 2 Project organization - 2.1 Subpackages - 2.2 Installation and dependencies - 2.3 Specific subpackages - 3 Version control - 4 Documentation - 4.1 Standalone documentation - 4.2 Docstring format - 5 Coding conventions - 5.1 General - 5.2 Naming conventions - 6 Testing - 7 Configuration -.. Overview @@ -136,11 +120,56 @@ Specific subpackages Version control =============== -In the past, IPython development has been done using `Subversion`__. We are currently trying out `Bazaar`__ and `Launchpad`__. +In the past, IPython development has been done using `Subversion`__. Recently, we made the transition to using `Bazaar`__ and `Launchpad`__. This makes it much easier for people +to contribute code to IPython. Here is a sketch of how to use Bazaar for IPython +development. First, you should install Bazaar. After you have done that, make +sure that it is working by getting the latest main branch of IPython:: + + $ bzr branch lp:ipython + +Now you can create a new branch for you to do your work in:: + + $ bzr branch ipython ipython-mybranch + +The typical work cycle in this branch will be to make changes in `ipython-mybranch` +and then commit those changes using the commit command:: + + $ ...do work in ipython-mybranch... + $ bzr ci -m "the commit message goes here" + +While working with this branch, it is a good idea to merge in changes that have been +made upstream in the parent branch. This can be done by doing:: + + $ bzr pull + +If this command shows that the branches have diverged, then you should do a merge +instead:: + + $ bzr merge lp:ipython + +If you want others to be able to see your branch, you can create an account with +launchpad and push the branch to your own workspace:: + + $ bzr push bzr+ssh://@bazaar.launchpad.net/~/+junk/ipython-mybranch + +Finally, once the work in your branch is done, you can merge your changes back into +the `ipython` branch by using merge:: + + $ cd ipython + $ merge ../ipython-mybranch + [resolve any conflicts] + $ bzr ci -m "Fixing that bug" + $ bzr push + +But this will require you to have write permissions to the `ipython` branch. It you don't +you can tell one of the IPython devs about your branch and they can do the merge for you. + +More information about Bazaar workflows can be found `here`__. .. __: http://subversion.tigris.org/ .. __: http://bazaar-vcs.org/ .. __: http://www.launchpad.net/ipython +.. __: http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html Documentation =============