Fedora, Modularization, & Prototypes

Fedora has adopted the earliest stage of the Fedora.Next proposal by releasing the Fedora Editions with Fedora 21. As part of that proposal, a concept of “rings” for software was also identified. Roughly, the idea of the rings was to allow for various “levels” of software, some “closer in” were expected to be of higher quality and not allowed to conflict and further out, software could abide by less strict rules. However, as with the editions work, the technical detail of “how” to implement the rings was not laid out in the original plan. As a result, we have a new Fedora Objective to identify requirements and propose an implementation plan over the next few months.

However, in the meantime, we can expect that the requirements will likely result in a need for new methods of packaging and application deployment. Just to be clear, I am not talking about binary blobs or closed vs open source software, just how binary code lands on an end-system. Not so much on the concept of repos or mirrors or the like, but rather the nature of dependencies, addition of software, removal of software, and configuration of that software.

I would like to propose a couple of prototypes that we could implement to provide some “food for thought” once we have a better understanding of the requirements. In no way do I think these prototypes should be taken as solutions but, rather, just a way of gathering technical information regarding what is possible.

The first idea, which I think had been banging around in several people’s heads for a while, actually came up more formally in an Environments & Stacks meeting on Apr 16. The idea, in essence, is “can we use rpm-ostree (an “implementation” of OSTree) to layer components on to an installation of Fedora.”

The next idea is to expand the feature set (but, perhaps, not the goals) of RoleKit 123 to include
reconfiguration and removal of a role through the use of an unioning filesystem, likely OverlayFS. While this may be similar to the prototype of using OSTree for layered installs, it may have different tradeoffs particularly concerning user experience of application installation.

I will elaborate on specifics for these prototypes in a follow up post or two.