Organisation of software development

Hi,

since we now are scaling up our development capacity and more and more people are contributing code to DHIS 2 we will change the way we work a bit:

  • From now on all development of new pieces of functionality must take place in a branch. No direct commits to trunk will be allowed.

  • Bug-fixes and minor fixes goes into trunk.

This means that new code can be comitted partially and in chunks. One branch should be created for each piece of functionality. The branches will be used for discussions regarding solutions and a code review. After this process it will be merged into trunk.

Details: To create a branch go to the branches page in Launchpad: https://code.launchpad.net/dhis2 Create a new one by clicking on “register a branch”. Make sure “dhis2-devs-core” is the owner, “hosted” is set as type. Append --use-existing-dir first time you push to the branch.

regards,

Lars

PS On-going work does not have to be ported to a branch.

Hi,

I think this is a good idea. However, testing it this week working from india, it seems that setting up the branch can be a bit of a hassle. (Granted, I already had local changes to trunk that I needed to move, but still).

It would be nice if we could share some concrete best practices on how to do the branching reasonably effortless, even for bad network connections. Does anybody have good workflow practices, especially minimising network traffic (full up- and downloads of the source code seem to take forever, and too often stop before finishing)?

To me it seems the easiest might be something like:

1. Create branch in launchpad
    Go to the branches page in Launchpad: https://code.launchpad.net/dhis2
    Create a new one by clicking on "register a branch".
    Make sure "dhis2-devs-core" is the owner, "hosted" is set as type.
2. Have a local unmodified trunk
3. Branch locally with
    bzr branch trunk branches/<new branch>
4. Push new branch to the created branch
    cd branches/<new branch>
    bzr push --use-existing-dir ~dhis2-devs-core/dhis2/<new branch>

Does this seem about right? This still leaves the need to push the entire version tree to the server. Does anybody know if it is possible to remotely copying trunk to branch just on the server side (like in svn)? That would remove the need to send the entire version tree over the wire, but I haven't found a way to do it. Or maybe it is possible to just push the most recent revision of trunk, that might at least remove some network load?

Jo (who is learning how it is not to be able to trust the network to just be there)

···

Den 13. apr. 2010 kl. 03.21 skrev Lars Helge Øverland:

Hi,

since we now are scaling up our development capacity and more and more people are contributing code to DHIS 2 we will change the way we work a bit:

- From now on all development of new pieces of functionality must take place in a branch. No direct commits to trunk will be allowed.
- Bug-fixes and minor fixes goes into trunk.

This means that new code can be comitted partially and in chunks. One branch should be created for each piece of functionality. The branches will be used for discussions regarding solutions and a code review. After this process it will be merged into trunk.

Details: To create a branch go to the branches page in Launchpad: https://code.launchpad.net/dhis2 Create a new one by clicking on "register a branch". Make sure "dhis2-devs-core" is the owner, "hosted" is set as type. Append --use-existing-dir first time you push to the branch.

regards,

Lars

PS On-going work does not have to be ported to a branch.
_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help : https://help.launchpad.net/ListHelp

There has been a few questions about branches and merging lately and I have written this up on dhis2.org :
http://dhis2.com/development#collaborationconventions

Good if devs have a good look at it.

Lars

···

On Fri, Apr 16, 2010 at 8:02 PM, Jo Størset storset@gmail.com wrote:

Hi,

I think this is a good idea. However, testing it this week working from india, it seems that setting up the branch can be a bit of a hassle. (Granted, I already had local changes to trunk that I needed to move, but still).

It would be nice if we could share some concrete best practices on how to do the branching reasonably effortless, even for bad network connections. Does anybody have good workflow practices, especially minimising network traffic (full up- and downloads of the source code seem to take forever, and too often stop before finishing)?

To me it seems the easiest might be something like:

  1. Create branch in launchpad
    Go to the branches page in Launchpad: https://code.launchpad.net/dhis2

    Create a new one by clicking on “register a branch”.

    Make sure “dhis2-devs-core” is the owner, “hosted” is set as type.

  1. Have a local unmodified trunk

  2. Branch locally with

    bzr branch trunk branches/

  3. Push new branch to the created branch

    cd branches/

    bzr push --use-existing-dir ~dhis2-devs-core/dhis2/

Does this seem about right? This still leaves the need to push the entire version tree to the server. Does anybody know if it is possible to remotely copying trunk to branch just on the server side (like in svn)? That would remove the need to send the entire version tree over the wire, but I haven’t found a way to do it. Or maybe it is possible to just push the most recent revision of trunk, that might at least remove some network load?

Jo (who is learning how it is not to be able to trust the network to just be there)

Den 13. apr. 2010 kl. 03.21 skrev Lars Helge Øverland:

Hi,

since we now are scaling up our development capacity and more and more people are contributing code to DHIS 2 we will change the way we work a bit:

  • From now on all development of new pieces of functionality must take place in a branch. No direct commits to trunk will be allowed.
  • Bug-fixes and minor fixes goes into trunk.

This means that new code can be comitted partially and in chunks. One branch should be created for each piece of functionality. The branches will be used for discussions regarding solutions and a code review. After this process it will be merged into trunk.

Details: To create a branch go to the branches page in Launchpad: https://code.launchpad.net/dhis2 Create a new one by clicking on “register a branch”. Make sure “dhis2-devs-core” is the owner, “hosted” is set as type. Append --use-existing-dir first time you push to the branch.

regards,

Lars

PS On-going work does not have to be ported to a branch.


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

I added a missing lp: from the push “url”, otherwise it seems fine.

Jo

···

Den 26. apr. 2010 kl. 17.40 skrev Lars Helge Øverland:

There has been a few questions about branches and merging lately and I have written this up on dhis2.org :
http://dhis2.com/development#collaborationconventions

Good if devs have a good look at it.