Currently, the content for a Flatpak in Fedora can be found in
modules/<application>. E.g.:
https://src.fedoraproject.org/modules/quadrapassel/tree/master - I’d
like to propose creating a separate namespace in
src.fedoraproject.org
- flatpaks/
Benefits:
* Allow automation to easily distinguish Flatpaks from other modules.
(
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
)
* Make it easy to browse through the source of available Flatpaks
* Reduce some confusion. A Flatpak is a module, but it’s *also* a
container, and the dist-git repository will include files for both.
Downsides:
* We have a few graphical applications that are available as standard
loose-rpm macros (gimp, rawtherapee, skychart). While it should work
to have flatpaks/gimp and modules/gimp build different streams of the
gimp module, it’s going to be more confusing than different branches
in the same repository. (There are even possibilities for using the
*same* branch using module-stream-expansion, though that’s not
something I’d encourage at the moment.)
Needed steps:
* Remove special casing of flatpak => modules in Bodhi
https://github.com/fedora-infra/bodhi/blob/develop/bodhi/server/models.py...
* Adjust namespace special-casing in fedpkg
https://pagure.io/fedpkg/blob/master/f/fedpkg/cli.py
* Adjust namespace special-casing in fedscm_admin
https://pagure.io/fedscm-admin/blob/master/f/fedscm_admin/utils.py
* In fedscm_admin: Map flatpaks namespace to the ‘module’ PDC branch
type when storing the SLA into the PDC, to avoid PDC changes, and
because the SLA really is a module SLA.
* Adjust distgit pagure configuration to add flatpaks to
ALLOWED_PREFIX and REQUIRED_GROUPS
https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/dist...
* Add flatpaks/ to the kojid allowed_scms configuration
https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/koji...
* Add flatpaks/ to the module-build-service SCMS configuration
https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/mbs/...
* Adjust the owner-sync-pagure script to handle flatpaks/
https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/bodh...
* Move or reimport existing Flatpak repositories
(modules/eog, modules/feedreader, modules/flatpak-common,
modules/flatpak-runtime,
modules/gnome-clocks, modules/gnome-tetravex, modules/quadrapassel)
Potential issues:
* We should probably move flatpak-common to the flatpaks/ namespace
for ease of discovery, but it isn’t in any way a flatpak, it’s just a
module that Flatpaks can depend on.
* The ability of modules to include other modules won’t work without
further adjustments to the MBS config.py (MODULES_ALLOW_REPOSITORY) -
I don't see this as useful functionality for Flatpaks.