Introduction to Ubuntu Distributed Development

Dmitrijs Ledkovs dmitrij.ledkov at
Sat Dec 19 18:58:30 UTC 2009

Wehn we are discussing $VCS to manage packages it is really about the
tools associated with them.

In git that's topgit + git-buildpackage. In hg that MQ + recently
restarted hg+buildpackage. And the famous pristine-tar.

It is important (for me at least) to still be able to generate debdiff
and be able to reproduce each version.

In addition you have to consider DebSrc 3.0 (quilt) (approved for
Debian, in final stages for Ubuntu) and DebSrc 3.0 (git/bzr).

hg/MQ is probably the closest to DebSrc 3.0 (quilt) - MQ is like
loom/threads which when applied are stored as series of quilt patches.

Topgit is a full DAG which is quite confusing (for me personally) and
the generated final package is not stored. (You keep branches unmerged
and export patches). IMHO this is bad cause I still want to $vsc
$build $tag.

Bzr is ok for building packages and keeping the history right.

What makes Ubuntu different from typical package maintanance is that
we are based on Debian. And we usually have upstream -> debian patches
-> debian-packaging -> ubuntu patches -> ubuntu packaging. WIth small
amount of packages being just upstream -> ubuntu patches -> ubuntu
packaging when we take a different policy direction from debian.

Git/Hg do not support that directly without cheating. Bzr and
associate tools are the only once so far which try to support this

Upstreams should use whatever $vcs is appropriate for them (reasons
are often not seconds for $command execution but community, developer
familiarity, integration with other tools, cost of switching. Just
read up on gnome switching to DVCS and KDE. The biggest blockers were
and are i18n and l10n.)

I do believe upstreams should tag a release commit, branch it, run
./autogen or similar, commit everything, and add pristine-tar delta.
Such that Distro packaging can base packaging ontop of that branch and
still be able to easily cherry-pick / submit changesets back.

On this front UDD is the only one so-far aiming to get there.

I do wish as well for Autofoo to just die such that we can use e.g.
waf where there are much less difference between what you keep in vcs
and what ends up in the tarball.

With best regards

Dmitrijs Ledkovs (for short Dima),
Ледков Дмитрий Юрьевич

()  ascii ribbon campaign - against html e-mail
/\   - against proprietary attachments

More information about the Ubuntu-devel-discuss mailing list