NOTE: this is a preliminary draft and likely to undergo significant change
- Make three separate products (Fedora Workstation, Fedora Server, Fedora Cloud) to fit specific target needs as defined by the Fedora Project. Focus our planning, development, and marketing on these products, but also make it easier for community members to produce alternatives.
- Define a common core which these products and alternatives can rely on. Aim to provide interface stability to outer levels, while allowing well-coordinated progress.
- Make it easier for software to be part of the Fedora universe without being in one of the Fedora OS products or even in the distribution itself. Standards for software in "ring 2" may be less stringent and offer fewer guarantees.
I hope everyone has seen my "Fedora Rings" talk as presented at Flock and discussed on the development list. This proposal combines those ideas for Fedora policy with a practical product strategy (originally from Stephen Gallagher, but like the rings idea, based on and refined through discussion with many others).
FESCo is interested in developing the practical implementation of these plans, and as they clearly involve strategic direction, we also want to make sure that the board is (um) on board. So, this proposal covers a brief technical introduction to our current plan, and describes a framework for building its practical implementation.
In that past, we have made Fedora from one big collection of packages all treated identically, except for additional QA coverage of "critical path" largely based around system installation. The previous attempt to define a "default user" and "default offering" became diluted by a pull to be all things to all people. That approach has not worked. Instead, we want to focus on three well-defined use cases, while also making the tools we use to build products for those cases available to other interests in the Fedora community.
We propose that the current "default offering" be replaced with three distinct operating systems: Fedora Workstation, Fedora Server, and Fedora Cloud. These will inform our overall planning and marketing of Fedora, and guide our allocation of resources. The following targets and purposes are the initial guiding statements; fully-developed versions will be the first deliverables for product working groups as described below.
- Target audience: Linux users who want to be running Linux; developers, sysadmins and other IT professionals; Linux enthusiasts at universities; "makers" and content creators.
- Purpose: Keep Linux users on Fedora and attract new users in this niche.
The traditional desktop is a shrinking market, as more general users move to mobile platforms. Even if we change our software, Fedora is not well-positioned to attack the tablet or phone-computing markets. However, there will continue to be users who require or want a desktop operating system, and a significant portion of these technical users will want to run Linux. We recognize that this is and will always be a niche, but we want Fedora to serve this niche well.
- Target: People for whom RHEL and CentOS don't move fast enough; people who want to see and influence the future of RHEL.
- Purpose: Fill space left by RHEL's slower refresh; build a better RHEL; engage customers in development of RHEL, OpenStack, and other emerging technologies.
Although many people and organization do run Fedora in production server environments, our messaging in this area has historically been terrible. Myths outnumber facts; having a specific Fedora Server product will allow us to better tell people about what we actually can offer, and to adjust that offering based on feedback from a user community which we serve poorly now.
It is not part of the immediate proposal, but we may want to explore a longer lifecycle for the Fedora Server product.
- Target: Development; DevOps in production; OpenShift
- Purpose: Address emerging market which we do not currently cover well.
This product is a cloud guest image. It differs from Fedora Server in the need for hardware support, but beyond that, Fedora Cloud OS will also be the primary point for development of a system of pluggable software stacks. Separating from the Server OS allows us the freedom to address newer models for software deployment without getting in the way of more conservative requirements.
Change to Primary Architecture Definition
Primary architectures must target at least one of the Fedora OS products, but do not need to produce all three. For example, an ARM cloud image does not yet make sense, and were s390 to be a primary arch, it might be server only. On the other side, we might drop 32-bit x86 server. Secondary architectures may just publish a collection of packages and not attempt to target any product at all.
Several working groups will be tasked with the practical next steps of this proposal.
In the in the existing Fedora terminology, SIGs are very informal, and may eventually graduate to "Projects", although most do not. Currently, Cloud, Desktop, and Server all have Fedora communities at the SIG level, at various levels of involvement. Going forward, we will create Project-level groups for the three products outlined above, with formalized objectives, membership, and governance.
Like the existing Fedora Packaging committee, each group will be an independent sub-committee of FESCo, with membership selected by FESCo from community volunteers, with at least one FESCo member in each.
Base Design Working Group
We will also create a Base Design Working Group, focused on defining the common base on which the Fedora OS products will be built. This will also be a formal group, selected by FESCo from general volunteers.
Environments & Software Stacks Working Group
The final working group in support of this proposal will develop and maintain policies for software in what will become "ring 2". Currently, the Fedora Packaging Guidelines apply to all software; we need guidelines for how software may be included under the Fedora umbrella without necessarily conforming. This group will work with and alongside the FPC, but be independent of it.