[Libguestfs] Splitting the large libguestfs repo

Pino Toscano ptoscano at redhat.com
Tue Oct 15 13:59:04 UTC 2019


On Tuesday, 15 October 2019 10:01:28 CEST Richard W.M. Jones wrote:
> I got a little way into this.  The two attached patches are
> preliminary work.

I see the work was done already, so I guess providing alternative ideas
(or opinions, apparently) is of no use now...

> My proposed split is:
> 
>       libguestfs.git
>           common -> git submodule libguestfs-common.git
>           generator/
>           lib/
>           all language bindings
>           C based tools (eg. virt-df, virt-edit, guestfish)
>     
>       guestfs-tools.git
>           common -> git submodule libguestfs-common.git
>           virt-builder, virt-customize, virt-sparsify, virt-sparsify, etc

I do not think splitting these tools in an own repository makes much
sense.  What is the goal/advantage you get by splitting them in an own
repository, compared to the ones left in libguestfs.git?  Users do not
care about virt-customize written in OCaml rather than C, and it makes
harder to eventually rewrite a C tool in OCaml.

> The current common/ subdirectory would become a git submodule.  While
> git submodules are awkward, they do solve this particular problem with
> having common code shared across the repositories, there's only one
> git submodule and it's under our control.  It does mean that any time
> there's a change to common/, we would need to add a commit to the
> other 3 repos updating the submodule hash.

The current common/ subdirectory is a giant mixup of different
components needed by some or just one tool each; few examples:
- common/mlaugeas -> only for the daemon
- common/mllibvirt -> only for v2v
- common/mlxml -> only for v2v
- some of the ml modules are need by any OCaml stuff
- some of the ml modules are used by 1/2 tools
- etc


-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20191015/e0412837/attachment.sig>


More information about the Libguestfs mailing list