Add support for includes
hadess opened this issue · 2 comments
JSON manifests can get unwieldy, as having lots of modules make them hard to maintain. It's also pretty difficult to share definitions between modules.
My use cases would be:
- compiling grilo-plugins with lua support requires non-trivial patches to the lua upstream release, it would be useful to have this in a single place for apps to share (even with the manifests in separate repos, if I made a change to the lua plugin for totem, I'd like to be able to propagate it to other manifests I might "maintain")
- a similar case would be the retroarch manifest (in the xdg-app-fusion repo in my github), and the gnome-games manifest in gnome-apps-nightly (and eventually gnome-games) which would like to share most of the plugins definitions)
- compiling LibreOffice requires a lot of extra external dependencies, including Perl modules. Having just enough of the build dependencies in a separate json file means that the gnome-documents manifest might be smaller, and include the "pre-LibreOffice" modules.
The included files could either be just the modules definitions in a separate file, or full application manifests, where the includer would strip out anything outside the modules definition, and possibly list the modules it wants built in the included json. The former would be good enough to start with.
I was also thinking we should perhaps support recursive modules. I.e. ones with children. That would make it easier to group them and disable them as a group. That would probably match how includes could be represented, i.e. the include is a module with the included modules as children.
This issue was moved to flatpak/flatpak#3