Having a Tier 0 for cmake and git submodules
Michael Pyne
mpyne at kde.org
Sun Nov 10 18:44:09 UTC 2013
On Sun, November 10, 2013 17:57:00 Kevin Ottens wrote:
> Now back to the submodules sha-1 update... The only thing I see to easily
> overcome that for our developers, is to have a hook, which would update the
> submodules for all the frameworks every time someone pushes in the tier 0
> repository. Is it something the sysadmins would agree to have on the server?
>
> Any opinions or thoughts on that?
I would highly recommend doing something similar to what was done for strigi
when it was split into 5 git modules.
There was something like
strigi/strigiclient
strigi/libstreams
strigi/libstreamanalyzer
strigi/strigiutils
strigi/strigidaemon
These are all separate, independently-buildable/packageable software modules.
These are used directly by kdesrc-build (which doesn't support git-submodules)
and also by the build.kde.org CI infrastructure.
As a separate convenience for users building manually, from READMEs, etc.,
there is a separate strigi/strigi supermodule.
If you clone that module you'll see that it has directories for each of the 5
strigi submodules, but that they're all empty. In other words, it's a shell
already laid out for the user, who needs only to run "git submodule update" to
get a full strigi checkout, which can be built all-at-once by the
supermodule's shell CMakeLists.txt. Indeed, the CMakeLists.txt could even be
configured to automatically handle the 'git submodule update' if desired. We
could also do the tarball release from here in theory (seems to be what we do
for strigi), though I'd recommend tarballs from the underlying submodules
instead (which also eliminates the need for git archive-all).
Splitting it up this way, we can emply proper inter-module dependencies (such
as for distributions who track development from git, kdesrc-build,
build.kde.org) without the requirement to write new code to support git-
submodule just for this, while still allowing people who don't need to
use/support such tools to get the full benefit of git-submodule doing the work
for them.
It also shouldn't add much (I doubt any!) work to the existing new code that
would have to be written for a new git-submodule-using repository. The one
concern is making sure that new code gets committed to the underlying
submodule, but my understanding of git-submodule is that this would work
correctly anyways (and it's an issue using submodules either way, whether we
adopt my proposal or not).
In short, I don't mind giving third-parties a way to quickly and easily grab
"tier0" without needing kdesrc-build (or anything other than git and CMake).
We should even package convenience tier0 releases in tarball form. But we
shouldn't reconfigure our git repositories or release/packaging processes to
do this (at least to the extent of requiring one or both of git-submodule and
source code updates during CMake). Instead we should simply make a separate
git super-repo intended for that third-party usage and retain our existing
separate repos for the benefit of our current devs, infrastructure, and
interested third-parties/distribution packagers.
Regards,
- Michael Pyne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20131110/ae8285d3/attachment.sig>
More information about the Kde-frameworks-devel
mailing list