Kubuntu CI (KCI) is a continuous packaging integration system. It is hosted and maintained by Blue Systems.
KCI uses two primary branches to continuously carry the packaging for a specific upstream branch.
Every package that is covered in KCI has at the very least a kubuntu_unstable branch which represents the packaging against git master (or sometimes other branches depending on what upstream uses for development).
Selected packages will contain a kubuntu_stable branch. It carries the packaging for upstreams stable release branch. Most notably Plasma stable is tracked in kubuntu_stable branches.
Where to put things?
All in all Kubuntu has at any given point three branches in which one can land: kubuntu_$series_archive, kubuntu_unstable and kubuntu_stable. So, how does one know where to put a change?
- Does the change need to go the archive? -> kubuntu_$series_archive
- Does the change fix a warning or build problem on a CI job starting with kubuntu_stable_? -> kubuntu_stable
- Does the change fix a warning or build problem on a CI job starting with kubuntu_unstable_? -> kubuntu_unstable
- Does a CI job starting with merger_ complain that a merge is failing? -> Checkout log of the most recent build, it should give you an indication which branches fail to merge, then do a manual merge yourself.
KCI attempts to automatically merge branches in an order that makes sense for changes to flow. This means that you usually do not need to worry about the CI branches when you do a change in an archive or PPA branch.
When packaging a new upstream release great care must be taken to first merge the correct CI branch into the correct release branch. Most of the time the release branch will be kubuntu_$series_archive. The CI branch depends on the type of release and what upstream branch it was created from.
- Is the upstream release unstable? -> merge kubuntu_unstable
- Is the upstream release stable and does the repo have a kubuntu_stable branch? -> merge kubuntu_stable
- When unsure ask on kubuntu-devel mailing list