On Fri, Feb 09, 2018 at 01:07:13PM -0600, Eric Blake wrote:
On 02/09/2018 12:01 PM, Richard W.M. Jones wrote:
>My contention is that the libguestfs git repository is too large and
>unwieldy. There are too many separate, unrelated projects and as a
>result of that the source has too many dependencies and takes too long
>to build and test.
>
>The project divides (sort of) naturally into layers -- the library,
>the bindings, the various virt tools -- and could be split along those
>lines into separate projects which can then be released and evolve at
>their own pace.
Sounds reasonable to me as an observer. Would you also create a
meta-package that has all the other projects as submodules, and
which gets a new commit any time any one of the submodules does a
release, to still make it easy for someone who wants to grab
everything that the old monolithic repo used to provide?
I guess we could although it has a danger of getting out of date if no
one works on it.
>* common code and generator: Off to the side we'd somehow
need to
> package up the common code and the generator for use by all of the
> above projects. It wouldn't be a separate project for downstream
> packagers, but instead the code would be included (ie. duplicated)
> in tarballs and upstream available as a side git repo that you'd
> need to include when building (git submodule?). This is somewhat
> unspecified.
git submodules are a pain to work with sometimes, but they do sound
like the best approach for what you are documenting here. Dan
Berrange's work on making keycodemapdb a submodule to multiple
projects may prove to be a useful inspiration in the process.
I'm not a fan of submodules either, but in this one case I do think
they would work. It's still an open question how this would translate
to tarballs which realistically need to be self-contained.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW