Objective: Fedora Modularization, Prototype Phase
Also known as: the Let's Get Real Phase, or, Less Talk, More... Modules
The goal of this phase is to deliver a functional implementation of modular Fedora. We will be able to create, demonstrate, and deploy Fedora-based solutions made from independent modules which can move at their own paces yet still be trusted to work together and to be kept secure.
The basic idea: planning flows from right to left, and actual effort back from left to right. To the left of the double line is stuff we can actually do; to the right of that line, stuff we expect to be true as a result. See this blog post for more on this planning tool.
See Modularization for background and oh so many details.
When we get to doing actual work, actual activities won't be tracked in the graphic above; that will be done in Taiga.
The primary deliverable will be a functioning prototype of "modular Fedora", in the Fedora 25 timeframe. This need not be perfect, but it needs to be functional enough that people can use it, understand it, hammer on it, and improve it.
As part of making this prototype, other deliverables include:
- Working modules of various types, including a minimal base module
- a automated testing and continuous delivery system for modules
- a better way of dealing with different versions of the same software
- minimized dependencies (ongoing work)
Modularity Working Group (to replace Base and Env & Stacks)
Effort on this Objective will be undertaken by a new "Modularity Working Group". This will replace the existing Base Working Group and Environments and Stacks Working Group.
The goal of the Modularity Working Group is to define and maintain the Fedora Base Module and guidelines and tools for other modules.
This includes releasing the Fedora Base Module in artifact form on a regular schedule — as a Docker base image, as an installable minimal system, and possibly in other ways in the future. This will not be a Fedora Edition, but rather be the thing people constructing custom versions of Fedora can start from — including both advanced end-users and Fedora Spins and Editions. (See interesting background discussion on the Fedora Server mailing list.)
So that modules are useful in the greatest number of situations, are fast to create and to deploy, and have the smallest possible security footprint, the Modularity Working Group will reduce package dependency trees, particularly in the Fedora Base Module.
The Working Group will also produce tooling for module production and maintenance, and guidelines for modules, as the FPC does for RPMs.
The effort will also require help and resources from across Fedora, including Fedora Infrastructure, Release Engineering, QA, Security Team, and more. Representatives of those groups should be included on the new Working Group. Also, proven packagers working as part of this effort will institute weak dependencies in a systematic manner, in cooperation with package maintainers.
The prototype should be available around the time of the Fedora 25 release. We should be able to show it off at FOSDEM and DevConf.cz in January/February 2017.
In order for that to happen, the initial technical definition of what modules will be, how they will be implemented for the prototype, and initial tooling, needs to be done by approximately the Fedora 24 release, in June 2016.
By Flock in August (also of this year), we should be able to start planning and discussing the next phase, even if the prototype and tooling aren't complete.
The new Modules Working Group will continue beyond this objective, as described above.
Follows from Objectives/Fedora Modularization, Requirements Phase
Initial council approval: March 14th, 2016