[Kolab-devel] Native Packaging, Issue Tracking & Restructuring the SCM

Jeroen van Meeuwen (Kolab Systems) vanmeeuwen at kolabsys.com
Wed Sep 8 23:02:28 CEST 2010

Gunnar Wrobel wrote:
> Hi Jeroen,

Hey Gunnar,

> Zitat von "Jeroen van Meeuwen (Kolab Systems)" <vanmeeuwen at kolabsys.com>:
> > Summarizing;
> >
> > - strong preference for separate repositories for Kolab components,
> > - proper product component versioning,
> > - branching/tagging policy,
> > - adjacent features in the issue tracker (roadmap, milestones),
> > - guidelines for handling issues in tracker,
> > - native packaging from tarball releases.
> I can nod to all of that. Maybe there'd be some differences in the  
> details but I don't think that matters here.
> So, yes, it is a sound direction ... BUT ;) I would say that we've  
> been on that road for quite some time now. How many "components" are  
> there that still hold actual source code? Just three: perl-kolab,  
> kolabd, kolab-webadmin. All other components are external and have  
> proper versioning.

Very much true, these are the relevant components as they are in the 
repository now. I would prefer to have the perl-Kolab library on its own 
though, with kolab-conf being marked as part of the kolab-utils component.

If you look at the tree of a cleaned out perl-Kolab;


It becomes more clear why the utilities (many of which depend perl-Kolab, but 
not all of them) can live in a separate repository;


> So when I look at those three packages and you mention that the  
> component splitting would "inherently also force us to work with  
> proper, verifiable APIs"
> I can also nod and say that it would be great to have that. But take a  
> look at those packages and tell me if you see a quick way of getting  
> there.

Essentially, this has already been done -even though it happened with a Quick 
& Dirty conversion/clean-out. The three components would be:

- kolab-perl (or perl-Kolab)
- kolab-utils
- kolab-webadmin

I would add to that, right away;

- kolab-archiver

For integration with archiving utilities, this is right now the simplest 
possible implementation of an archive.

- kolab-python

Or, Kolab Python libraries (pykolab site package).

And, currently at least, we do still have some outstanding patches to;

- kolab-cyrus-imapd
- kolab-php

Or, in other words, "the Kolab (patched) version of the upstream application", 
which we'll have to maintain for at least as long all supported platforms have 
fully integrated a patch to those applications we've submitted upstream and 
has been accepted there.

> > - proper product component versioning,
> As mentioned we have that nearly everywhere and I actually only see it  
> missing for kolab-webadmin and kolabd.

I wouldn't say we have proper versioning so much, as we're not maintaining a 
road map with milestones properly.

> > - adjacent features in the issue tracker (roadmap, milestones),
> I think it is possible to do that in roundup.

It's listed as a feature on the upstream website, but it does not seem to be 
enabled on issues.k.org.

> > - guidelines for handling issues in tracker,
> I think it is possible to do that in roundup.

It's possible in any issue tracker ;-) By guidelines I meant; "Ping someone in 
a bug and close it after 3 weeks of no response.", possibly a workflow for 
issue statuses, where someone like a release engineer looks over the ON_QA 
queue to 1) write test cases, 2) cherry-picks from/to branches, 3) maintains 
release notes if applicable for the change made, etc.

> > - native packaging from tarball releases.
> I think most devs agree this is a desireable target for 2.3. Again we  
> are talking about two - three packages here.

Not entirely true, I think; the patches we ship, or have shipped, are not all 
of them fully integrated upstream yet (php, cyrus-imapd), or have not yet been 
adopted in a released version of the distribution native packages. Or, 
sometimes, our product is not ready to handle by better implementing the 
required functionality (getgrent patch, ldap uid patch).

Kind regards,

Jeroen van Meeuwen
Senior Engineer, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
t: +316 42 801 403
w: http://www.kolabsys.com

pgp: 9342 BF08

More information about the devel mailing list