Kubuntu CI (KCI) is a continuous packaging integration system. It is hosted and maintained by Blue Systems.
Looking for the Kubuntu CI pages and ISOs? Go here.. https://community.kde.org/Kubuntu/PPAs#Kubuntu_Continuous_Integration_.28CI.29
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.
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?
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.
Often times you can make the automerge or the build fail by introducing a change in the archive or stable branch that is not suitable for stable or unstable respectively. Notable example is backporting an upstream patch into the packaging.
The one and only important rule here is to merge locally when you think or know that you need to make an adjustment and then push all branches at once.
Let's look at introducing an upstream patch.
You import the patch as usual
quilt import ~/upstream_fix_from_stable_branch.patch git add debian/patches/ git commit -a -m 'adding patch'
Next you forward merge this commit into stable (if there is one, otherwise simply use unstable)
git checkout kubuntu_stable git merge kubuntu_vivid_archive
And remove the patch addition again since it is already in upstream git
git rm -r debian/patches git commit -a -m 'drop upstream patch'
And continue forward merging into unstable
git checkout kubuntu_unstable git merge kubuntu_stable
Last but not least you simply push all branches at once
git push origin kubuntu_vivid_archive kubuntu_stable kubuntu_unstable