[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;

    http://git.kolabsys.com/kolab-perl.git/tree/

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

    http://git.kolabsys.com/kolab-utils.git/tree/

> 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