[IPython-dev] Development plans update

Ondrej Certik ondrej at certik.cz
Wed Jan 30 13:02:25 EST 2008


On Jan 30, 2008 6:16 PM, Fernando Perez <fperez.net at gmail.com> wrote:
> On Jan 30, 2008 2:41 AM, Ondrej Certik <ondrej at certik.cz> wrote:
>
> > > Comments on hg-based workflows are welcome.
> >
> > When we switched to hg in sympy, we also started to review every
> > single patch. So my workflow is:
> >
> > "hg email -ao" this will send my patches into sympy-patches
> > mailinglist. People will review it there, point out weaknesses, etc. I
> > rewrite it, fix it. When it's polished, only then I'll push it in.
> >
> > With svn, this would be pain, because the trunk (=our official hg
> > repo) evolves all the time, and so my patches will soon become old.
> > With hg, I simply create a new clone of the repo for every new feature
> > I work on (right now I have around 10 clones for example) and I leave
> > my patches in there until they are approved. And I merge with the
> > official branch (hg makes this quite easy) in the meantime.
> >
> > Comments on this are welcome.
>
> Thanks for this feedback: I certainly would love to see us adopting a
> workflow with regular reviews.  I'm glad to hear that you find hg
> makes this natural and painless, since I think that regular patch
> reviewing is something that will greatly increase the quality of the
> code.

It indeed improves the quality of the code a lot. Also I am learning
new things both being reviewed and by doing the review.
CCing Kirill, as it was him who brought reviewing patches to sympy.

>
> I do have some questions:
>
> - with major restructuring and writing wholesale new code, it seems
> that waiting for reviews on everything might become a burden.  Does

If we are restructuring or doing some other big changes, we always
review, as this is important to make things right.
But if we do some small change, like adding another name to credits,
or if we fix some really important bug, that the patch should be
in as soon as possible, I usually just post the patch for review, but
reply to it myself that this needs to be in soon and push it in.

> sympy have enough active developers that this is never an issue for
> you?  Do you always find someone to review a patch quickly?

Yes, you can see it here:

http://groups.google.com/group/sympy-patches/

At least me and Kirill always review and sometimes others too.

>
> - how do you deal with running from say 10 parallel repos day to day?
> Do you keep changing symlinks to point to the active one, or do you
> use setuptools 'develop' magic?

I try to avoid setuptools if I can. :) I just have one repository that
is equivalent to our official repo and from which I push the final
patches in.

Then I clone this repository locally (e.g. 10 times now). Then I
implement some feature, prepare a reviewed polished patch, do "hg
push"
from some of those clonned repos, this will go to my first repo and
from there I do the final "push". If I do "hg pull" from any of those
clonned repos,
if will bring in the latest updates from my first repo (which I
regularly sync with our official one).

Actually, I use versioned Mercurial Queues for development, as it
helps me keep distinct features in separate patches.

Or do you mean how do I install things? I don't install sympy when I
develop it, as we have just pure python code, so I just download the
hg (or tarball), go to the directory and "import sympy" and that's it.
We have setup.py install, as this is the standard, but I don't use it
for development.

We are still learning how to do things more efficiently. I am playing
with a review board for patches:

http://reviews.sympy.org/

So that reviewing is more fun and more people join in. Reviewing is
just talking and no coding, so I think people should like to do it -
certainly I do. :)

Ondrej



More information about the IPython-dev mailing list