From Fedora Project Wiki
Line 19: Line 19:
  
 
In the meantime, modern IT and OS trends are toward faster iteration, especially when it comes to applications and stacks.  With a more constrained OS surface, applications can be "freed" to innovate more quickly.  And on the other hand, needn't be made ready at an arbitrary schedule meant to promote either platform innovation or stability.
 
In the meantime, modern IT and OS trends are toward faster iteration, especially when it comes to applications and stacks.  With a more constrained OS surface, applications can be "freed" to innovate more quickly.  And on the other hand, needn't be made ready at an arbitrary schedule meant to promote either platform innovation or stability.
 +
 +
To restate in very simple terms: By separating and minimizing what Fedora puts out as a platform, we can put more cycles into development to put capabilities in the hands of the community.
  
 
== Goals ==
 
== Goals ==

Revision as of 21:13, 21 September 2018

The Fedora Project has been producing an operating system for general use for 15 years. For at least the last decade, the general methodology for doing so has barely changed. That methodology makes it hard to accommodate projects with different cadence. It also unnecessarily restricts the group of people able to particpate. This problem constrains Fedora's rate of innovation, and creates unwanted friction with well-aligned, interesting projects such as Fedora CoreOS.

Definitions

artifact
A unit of software intended to be used on its own or in combination with other software for testing or consumption.
An example is an RPM package, a module, or a Flatpak.
deliverable
A collection of artifacts intended for public distribution and/or general use.
An example is a container, or a qcow2 or ISO image.
platform
A deliverable that provides a host operating system with basic functionality, including the ability to add applications and/or artifacts.
application
Any artifact or group of artifacts not required to run a host operating system.

Current issues

The entire set of Fedora deliverables, with few exceptions, are "due" at once, on a single lifecycle, and all maintainer and developer work must fit into that schedule. This approach in one sense can be seen as making all packages "equal." Whether a package is needed for a well-functioning platform or not, it must be constrained to the same schedule.

In the meantime, modern IT and OS trends are toward faster iteration, especially when it comes to applications and stacks. With a more constrained OS surface, applications can be "freed" to innovate more quickly. And on the other hand, needn't be made ready at an arbitrary schedule meant to promote either platform innovation or stability.

To restate in very simple terms: By separating and minimizing what Fedora puts out as a platform, we can put more cycles into development to put capabilities in the hands of the community.

Goals

This Objective aims to decouple the platform and application lifecycles to minimize this problem. The visionary goal is in the future:

  • Fedora will be able to release one or more constrained platform releases, on an agreed upon schedule
  • Other deliverable, application, and artifact maintainers can make releases based on upstream or other target schedules

More details

  • Additional links TBA

Deliverables and scope

Along the way this goal implies that other improvements are either required or helpful:

The project migrates toward stream branching (probably not necessary for all packages).
This facility uses streams like 1.2 or 2.0 instead of f30, f31, etc. for managing branches of applications.
The project provides services for stream expansion that build and test streams of software against any desired platform targets (such as a Fedora or EL release).
This reduces maintainer workload since they can update software based on upstream releases in a single branch to generate multiple artifacts or deliverables.
Release process and tools are adapted in several phases.
Minimizing the platform target size
Relying more heavily (and likely more universally) on CI (continuous integration) to perform gating operations
Increasing the scalability of building and composing artifacts and deliverables
Adapting tools into services that can be activated by a larger population of community members

It is also anticipated that Modularity will provide a flexible solution for a substantial number of applications and other deliverables.

Key results

  • Definition of a platform release
  • Reduction in the number of deliverables required at a platform release
  • Reduction in the amount of content required in a platform release
  • Accurate tooling allowing modularization anywhere needed outside the platform
  • A set of key applications and other deliverables available for a range of platforms (Fedora and CentOS releases)

Plans and work areas

Objective lead

  • Paul W. Frields -- will represent product owner -- define vision, manage priorities, provide oversight and communications

The product owner will work closely with the FPL, a technical team of additional, Fedora-friendly contributors to be led by Petr Šabata, the CI objective lead, the Release engineering team, and the Infrastructure team to coordinate activities.