update action plan

This commit is contained in:
Adam Samalik 2019-08-19 12:17:39 +02:00
parent df834445a4
commit e380049f01

View file

@ -4,47 +4,53 @@ This is a short-term action plan for the Minimization effort. The objective is i
There are four main focus areas at this moment:
1. **Prototyping simple tooling**
** To help us see whats going on.
1. **Prototyping simple tools**
** Developing (or documenting existing) tools that help with exploration and analysis.
2. **Ecosystems exploration**
** Looking at Fedora and other ecosystems to get some initial idea about possibilities and potential goals.
** Identifying specific use cases (specific package installations) to optimize. Comparing Fedora with other ecosystems for reference.
3. **Stacks analysis**
** Digging into stacks in Fedora such as the Apache httpd and nginx, and seeing how to minimize those.
3. **Use case analysis**
** Digging into dependency trees of specific use cases (specific package installations), and finding ways for potential minimization.
4. **Content strategy**
** Having an effective way to let the world know about cool things we do!
** Defining an effective way to let the world know about the cool things we do!
== Prototyping simple tooling
Well write scripts to help us see whats the state of things.
Developing (or documenting existing) tools that help with exploration and analysis.
For example, visualizing the dependencies of httpd in the following ways:
Two main classes:
* A dependency graph of httpd installed into an empty space
* A dependency graph of httpd installed on top of the Fedora base container image
* A dependency graph of httpd installed on top of the Fedora Server Edition
* **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.
Those can be represented as a visual graph, a table, and possibly in other ways, too. We'll find over time what's the most useful view.
=== In progress:
There will be two main use case areas for the tooling:
A. **Feedback-oriented tooling**, possibly run as part of the Fedora CI, showing packager either the dependency graph and/or a final size of an installation of their package or stack. Optionally, and this is an idea, packages could be able to set a size threshold and be notified if the actual size of their package or stack exceeds it.
B. **Tooling for active use**, to help with digging deep into the stacks and packages to see what could be minimized.
* https://pagure.io/minimization/dependency-visualiser[**The __showme__ tool**] — Dependency visualisation of an RPM-based installation.
== Ecosystems exploration
There are many different ecosystems other than Fedora — other linux distributions, various container images, etc. Well 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.
Identifying specific use cases (specific package installations) to optimize. Comparing Fedora with other ecosystems for reference.
Talking to other groups in Fedora such as https://docs.fedoraproject.org/en-US/iot/[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. Well 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.
== Stacks analysis
== Use case analysis
Digging deep into the dependency trees of stacks in Fedora — such as httpd and nginx — and finding ways how to minimize them.
Digging into dependency trees of specific use cases (specific package installations), and finding ways for potential minimization.
Part of this will be working closely together with the maintainers.
Important part of this will be working closely together with the maintainers as they are the subject matter experts.
=== Use cases to focus on
* The Apache httpd web server (`httpd`)
* The Nginx web server (`nginx`)
* The DNF package manager (`dnf`)
* __... more to be added__
== Content strategy
@ -54,6 +60,6 @@ Keeping the world up-to-date about our efforts is an essential part of this obje
We need to consider readers with various amouts of time and levels of interest. Some of the things we may publish is:
* Digests of conversations that are happening
* Weekly updates — both on a very high level and deep dives
* Weekly updates — both on a very high level and deep dives
* YouTube videos?
* Twitter accounts with digests?