Meta: scoping Software discussion
Currently Software supports the following types of software (see plugins):
- eos-updater
- OS updates
- fedora-langpacks
- Languages
- fwupd
- Firmware
- flatpak
- Apps
- Extensions
- Runtimes
- packagekit
- Apps
- Codecs
- Drivers
- Fonts
- Input sources
- OS updates
- rpm-ostree
- Apps
- OS updates
- snap
- Apps
We've been asking ourselves the question - would it be good to split it up, either by removing some types of supported software, or splitting it up completely, to one manager app per software type? The goal here would be to improve reliability and approachability for contributors.
This issue is intended to map out the potential scenarios, along with their implications and requirements.
A. Keep software as it is...
...and do a quality improvement drive:
- Establish a maintenance team of three or four people, each with their own responsibilities, and the ability to share workload (eg. swapping MR reviews)
- Get the issue tracker in order, identify priorities, systematically work through the list, cleaning up the code base as we go
- Steps to get more contributors:
- Design vision, particularly around app ecosystem
- Pretty mockups
- Active issue tracker and maintenance
- Developer outreach and documentation - blogging, roadmap, tutorials
B. Reduce some scope
Do all the steps in A. Software continues to do:
- fwupd
- Firmware
- fedora-langpacks
- Languages (automatic installation, manual removal)
- flatpak
- Apps
- Extensions
- Runtimes
- packagekit
- Apps
- Input sources
- OS updates
- snap
- Apps
The following get split out into new tools:
- Fonts - to manage fonts in
~/.fonts
only - OS updaters (for image-based OSs, with a UI in Settings)
- eos-updater
- rpm-ostree-updater
What wouldn't be covered:
- packagekit: manual installation of:
- Codecs
- Drivers
- Fonts
- Languages
- rpm-ostree
- Apps / package layering
C. The big split
Split all the types of software into new dedicated components:
- Firmware
- Fonts (
~/.fonts
only) - Flatpak Store
- OS updaters (for image-based OSs, with a UI in Settings)
- eos-updater
- rpm-ostree-updater
- "Packages" (gnome-software, with all the non-packagekit bits removed)
- Apps
- Input sources
- Languages - automatic installation and removal only - no manual installation
- OS updates
- Snap Store
What wouldn't be covered:
- packagekit: manual installation of:
- Codecs
- Drivers
- Fonts
- Languages
- rpm-ostree
- Apps / package layering
cc @matthiasc @klember @hughsie @bertob @wjt @ramcq @mwleeds @pwithnall