[Kolab-devel] How to handle patches

Christoph Wickert wickert at kolabsys.com
Wed Jul 13 13:09:51 CEST 2011


Hi,

in order to have us work more efficiently we need to agree on certain 
guidelines for patches. Not sure if we need a KEP for this, I first like to 
try common sense.

There are two groups of people here. One group wants to apply all changes that 
fix one particular issue in a single patch, the others want a more modular 
approach.

Advantages of big patches:
1. Everything in one commit, all changes to fix a particular issue are visible 
at a glance. Typically this includes the fix itself, an update to the spec and 
of the release notes, possibly even 1st.README.

Disadvantages of big patches:
1. They mix upstream code changes with downstream packaging efforts.
2. Because of 1. they are not suitable for other packagers. A patch that 
touches all kind of files specific to openpkg will never apply on say for rpm 
or deb.
3. Even within a distribution the big patches cannot easily be cherry-picked 
across different branches.
4. The mixture of code and packaging encourages all kinds of ugly hacks 
instead of real fixes. We have patches that hardcode paths like /kolab or 
patches that create other patches.
5. These kind of patches don't scale given that we will increase the number of 
platforms and product streams.

As you can see big patches don't really work out. So please split them into 
functional parts, at least split the generic fix that can go upstream and the 
packaging specific changes in a manner that can go downstream, regardless if 
downstream is ourselves or another distribution.

Depending on what you work on you already have commit access to either 
upstream code or downstream packaging already, so you can just go ahead and 
fix things instead of attaching patches to bugs. But if you do so, you *must* 
make sure to add a link to the commit in the bug report.

If you disagree with what I wrote and still think that these big patches have 
some advantages I missed, please speak up.

Regards,
Christoph

-- 
Christoph Wickert
Senior Engineer

Kolab Systems AG
Zürich, Switzerland

e: wickert at kolabsys.com
t: +49 251 871 369 77
w: http://kolabsys.com

pgp: 85DACC63 Christoph Wickert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/devel/attachments/20110713/3807640b/attachment.sig>


More information about the devel mailing list