Action Plan for Minimization

This is a short-term action plan for the Minimization effort. The objective is in an early stage and doesn’t have a proper tracker, yet. At this time, everything is tracked at and reported back to this space in Fedora Docs.

There are four main focus areas at this moment:

  1. Prototyping tools

    • Developing (or documenting existing) tools that help with exploration and analysis.

  2. Ecosystems exploration

    • Identifying specific use cases (specific package installations) to optimize. Comparing Fedora with other ecosystems for reference.

  3. Use case analysis

    • Digging into dependency trees of specific use cases (specific package installations), and finding ways for potential minimization.

  4. Content strategy

    • Defining an effective way to let the world know about the cool things we do!

Prototyping tools

Developing (or documenting existing) tools that help with exploration and analysis.

Two main classes:

  • Use case analysis — Tools that help with looking at specific use cases installed in various context such as an empty root, the Fedora base container image, or the "Fedora Minimal" installation, and finding ways how to optimize the size. Visualising the dependency tree, showing sizes of various parts, offering alternative packages as dependencies from the Fedora repos and showing the impact of choosing an alternative, potentially even showing dependencies on the file level and suggesting package splits in cases a tiny portion of an otherwise large package is used as a dependency, etc.

  • Monitoring and feedback — Monitoring the sizes of relevant use cases over time as new versions of packages are built, reporting potential size increases. Also monitoring for specific dependencies that have been removed in the past but could come back, and reporting those.

Ecosystems exploration

Identifying specific use cases (specific package installations) to optimize. Comparing Fedora with other ecosystems for reference.

Talking to other groups in Fedora such as IoT and finding what use cases are relevant for them to minimize, what their goals are, and helping them with minimization.

There are also many different ecosystems other than Fedora — other linux distributions, various container images, etc. We’ll look at those to compare what sizes and features are available in the universe. This will help us get a better idea about where we stand, and what our goal should be.

Use case analysis

Digging into dependency trees of specific use cases (specific package installations), and finding ways for potential minimization.

Important part of this will be working closely together with the maintainers as they are the subject matter experts.

Content strategy

Keeping the world up-to-date about our efforts is an essential part of this objective. We need to have a simple content strategy to make sure that there is information flowing consistently.

We need to consider readers with various amouts of time and levels of interest.