From Fedora Project Wiki
Line 45: Line 45:
The effort will also require help and resources from across Fedora, including Fedora Infrastructure, Release Engineering, QA, Security Team, and more. Members of those groups should be included on the new Working Groups.
The effort will also require help and resources from across Fedora, including Fedora Infrastructure, Release Engineering, QA, Security Team, and more. Members of those groups should be included on the new Working Groups.


=== Base Working Group (Alternative Proposal) ===
'''Base Working Group (Alternative Proposal)'''


The purpose of the Base Working group is to '''define and maintain the Fedora Base Module, including producing and releasing it in artifact form''' — 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  
The purpose of the Base Working group is to '''define and maintain the Fedora Base Module, including producing and releasing it in artifact form''' — 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  
Line 51: Line 51:




=== Environments and Stacks Working Group (Alternative Proposal) ===
'''Environments and Stacks Working Group (Alternative Proposal)'''


The Environments and Stacks Working Group '''explores new technologies for getting software to users through Fedora and creates and maintains guidelines for doing so'''. This includes creating tooling for producing and maintaining Fedora modules, integrating non-RPM content in a maintainable and secure way, and investigating emerging approaches for software distribution.
The Environments and Stacks Working Group '''explores new technologies for getting software to users through Fedora and creates and maintains guidelines for doing so'''. This includes creating tooling for producing and maintaining Fedora modules, integrating non-RPM content in a maintainable and secure way, and investigating emerging approaches for software distribution.

Revision as of 20:34, 10 March 2016

Warning.png
This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

Objective: Fedora Modularization, Prototype Phase

Also known as: the Let's Get Real Phase, or, Less Talk, More... Modules

Goal

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.

Logic Model

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.


Modularization-phase3-logicmodel-v3-20160309.png

Todo: expand Activities, fill out Resources

More Details

See Modularization for background and oh so many details.

Deliverables

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)

Modules Working Group (to replace Base and Env & Stacks)

Idea.png

Alternative proposal — Re-Charter Existing Groups

Rather than replacing the existing working groups, we could redefine and remake them.

The primary work for this will be done by re-chartered Base Working Group and Environments and Stacks Working Group. This project is roughly in line with what they were created to do in the first place, but without a specific focus, they kind of drifted and eventually have trailed off in activity. This is a perfect time to restart them with new purpose.

The effort will also require help and resources from across Fedora, including Fedora Infrastructure, Release Engineering, QA, Security Team, and more. Members of those groups should be included on the new Working Groups.

Base Working Group (Alternative Proposal)

The purpose of the Base Working group is to define and maintain the Fedora Base Module, including producing and releasing it in artifact form — 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].)


Environments and Stacks Working Group (Alternative Proposal)

The Environments and Stacks Working Group explores new technologies for getting software to users through Fedora and creates and maintains guidelines for doing so. This includes creating tooling for producing and maintaining Fedora modules, integrating non-RPM content in a maintainable and secure way, and investigating emerging approaches for software distribution.




Effort on this Objective will be undertaken by a new "Modules Working Group". This will replace the existing Base Working Group and Environments and Stacks Working Group.

The goal of the Modules 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 Modules 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.

Notes (draft)

For the Fedora Base Module

  • Target 50MB on disk
  • Create pagure repo for experimentation with specs and rpms should
  • COPR build repo
  • Specific changes proposed to and ratified by FESCo (FPC?)
  • Proven packagers to make changes to all affected packages in Rawhide
  • Monitor changes to packages to ensure no “growth”

For the Tooling and Guidelines and Beyond

  • Should include members of Fedora Rel-Eng and Fedora Security Team
  • Phase 1 (Roughly until F24 release)
    • Figures out what a “module” actually is in practice
    • Required stakeholders
      • Fedora Release Engineering
      • Fedora Security Team
    • Creates whatever tools needed to produce and use modules
      • using existing tooling and systems where possible
      • rely on Fedora Release Engineering for changes to infrastructure where required
      • Fedora Infrastructure may also need changes
    • Defines & creates demo modules other than base
  • Phase 2 (F25 timeframe)
    • Defines guidelines for module definition
      • Approved and ratified by FeSCO
    • Changes to packaging guidelines as needed
    • Approved and ratified by FPC
    • Module definition storage and hosting
      • relies on implementation by Fedora Release Engineering
    • CI infrastructure for modules, relies on work by
      • Fedora Infrastructure
      • Fedora QA
      • Fedora Release Engineering
    • Minimization effort
      • Will file FESCo ticket for proven packager work around weak dependencies as "general cleanup to a lot of packages" under the proven packager guidelines.
  • Phase 3 (ongoing)
    • After all this is done, become some sort of Fedora Module Guidelines Committee in parallel with (or as part of) FPC
    • Actually, parallel to Phase 1 & 2

Objective Lead

Langdon White

Timeframe

This phase should be complete by the Fedora 25 release. The re-chartered Base and Env & Stacks Working Groups will be ongoing.

History

Follows from Objectives/Fedora Modularization, Requirements Phase