Workflow and integration
Lamarque V. Souza
Lamarque.Souza.ext at basyskom.com
Fri Mar 30 14:19:32 UTC 2012
Em Friday 30 March 2012, Marco Martin escreveu:
> Hi all,
Hi,
> this is a proposal on how to handle the development in a way where is
> easier to assure qa and have device specific images.
>
> from a short chat with some people it was seen there was a need of
> reorganizing a bit how git branches are kept and how this reflects on obs.
> I am explaining it now how i understood it, so please correct if wrong ;)
>
> * Need for a stable, always releasable master
> * How to do that? an "integration" branch
> * integration is kept always merged, up to date with master
> * features are developed in feature only branches
> * when a feature is almost ready is merged into integration, people test
> it, fixes are done in the feature branch, then re-merged
What happened if a feature from on repo depends on a feature from
another repo's integration branch? I use obs to compile packages and test
features here. In my case I would need to hack obs to compile two (or more)
packages whose .tar.bz2 are not in obs. I usually do that for one package, but
when I need to do that for two packages at the same time it gets way more
complicated because of the dependencies. People who use Mer SDK would have the
same problem too.
> * when tested enough, it gets merged into master
> * Device specific (Archos, vivaldi, whatever) releases are branches of
> master called like Device/Vivaldi (only a stable state needed? or
> integration/stable for that too?)
>
> This reflects in obs in the following way
> * integration project points to integration branch, (or devel can be
> repurposed to it)
> * testing project points to master: master became a stable branch now
> * Each device specific git branch has an own obs project
Why use a git branches instead of sub-directories? With sub-directories
we can use only one obs project to build all rpm packages for all devices and
minimize the burden of maintaining different copies of the same files. For
instance, we can create a "shared" sub-directory which contains all
configuration files, if a device needs a different configuration file we
create a sub-directory for that device and copy only the files that it needs.
Then we configure the .spec to, during installation phase, copy the shared
directory to the BUILD_ROOT and then override the files there with the ones
from the device's sub-directory. This way we only duplicate the files that
needed to be duplicated and not all of them. Moreover we also avoid
duplicating several .spec (for each device) that in other way would me almost
equal to each other.
There is only one problem with that approach, all sub-packages would
have the same version, so when doing a change for one device that would
trigger a sub-package creation for all other devices and probably an update
that is not really needed. As long as the configuration packages are small
(and they are for now) I do not see a big problem here.
--
Lamarque V. Souza
http://www.basyskom.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/active/attachments/20120330/dc27d160/attachment.html>
More information about the Active
mailing list