DistributedDevelopment

Revision 20 as of 2009-12-17 00:32:54

Clear message

This is an area of the wiki for the "Ubuntu Distributed Development" initiative.

This is discussed on the ubuntu-distributed-devel public mailing list.

The Aim

The TL;DR version:

  • 1) Version Control rocks. 2) Distributed version control rocks even more. 3) Bazaar rocks particularly well. 4) Let's use Bazaar for Ubuntu.

Or, if you prefer a more verbose version...

Ubuntu is a global project with many people contributing to the development of it in many ways. In particular development/packaging involves many people working on packages, and much of this requires more than one person to work on the change that it is being made, for e.g.

  • 1) Working on the problem together 2) Sponsoring 3) Other review

etc.

These things usually require the code to be passed backwards and forwards, and in particular, merged. In addition, we sometimes have to do things like merge the patch in the bug with a later version of the Ubuntu package. In fact, Ubuntu is a derivative of Debian, and we expend a huge effort every cycle merging the two.

Distributed version control systems have to be good at merging, it's a fundamental property. We currently do without, but we have tools such as MoM that use version control techniques to help us with some of the merging. We could carry on in this fashion, or we could move to use a distributed version control system and make use of its features, and gain a lot of other things in the process.

Tasks such as viewing history, and annotating to find who made a particular change and why, also become much easier than when you have to download and unpack lots of tarballs.

This isn't to say that there aren't costs to the transition, and tools and processes we currently use that don't currently have an obvious analogue in the bzr world. That just means we have to identify those things and put the work in to provide an alternative, or to port, where it makes sense.

The aim is therefore to help make Ubuntu developers more productive, and enable us to increase the number of developers, by making use of modern technologies, in particular Bazaar, though there are several other things that are also being used to do this.

Documentation

Documentation

Specifications

For those that are interested in development of the idea:

DistributedDevelopment/Specification - Overall phased specification.

DistributedDevelopment/ImporterSpecification - A specification for the importer that will import source packages.

DistributedDevelopment/DebianImportSpecification - A specification for the bringing up an import of Debian parallel to Ubuntu.

DistributedDevelopment/ImproveDebianImportSpecification - A specification for improving the Debian import by including the branches pointed to by Vcs-* information

DistributedDevelopment/ClientToolsDiscussion - Discussion of the various approaches to client tools

DistributedDevelopment/ClientToolsV1Design - Design of the first iteration of the client tools

There are a group of pages giving the requirements of the tools for a specific task. Help to improve these pages and document each of the common tasks that will be performed would be appreciated.

https://launchpad.net/udd/ - the launchpad project used to co-ordinate some aspects of the work.

If you have any comments or questions, or would like to get involved then please contact JamesWestby (james.westby@canonical.com or james_w on irc.ubuntu.com).

Dump to be cleaned up later


CategoryDistributedDevelopment