add 'contribute' section and restructure

This commit is contained in:
Adam Samalik 2019-12-04 18:36:40 +01:00
parent 81429774de
commit a8824e2f82
7 changed files with 100 additions and 65 deletions

View file

@ -1,6 +1,13 @@
* **Objective**
* xref:index.adoc[Fedora Minimization Objective]
* **Community**
* xref:team.adoc[Contribute]
* xref:communication.adoc[Discuss & Track]
* **Progress**
* xref:action-plan.adoc[Action Plan]
* xref:team.adoc[Team & Communication]
* xref:tools.adoc[Tools]
* xref:discoveries.adoc[Discoveries]
* xref:status.adoc[Status]
* xref:tools.adoc[Tools & Services]
* xref:discoveries.adoc[Packaging Discoveries]
* xref:status.adoc[Status Updates]

View file

@ -1,4 +1,4 @@
= Minimization Action Plan
= Action Plan for Minimization
This is a short-term action plan for the Minimization effort. The objective is in an early stage and doesnt have a proper tracker, yet. At this time, everything is tracked at and reported back to this space in Fedora Docs.

View file

@ -0,0 +1,15 @@
= Discussing & Tracking Minimization
**Instant messaging**::
IRC #fedora-devel at FreeNode is the default channel to discuss things live.
**Mailing list**::
https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org/[Fedora Devel mailing list]. This list is used to discuss many other technical topic in Fedora, and therefore has a large audience. That's why we use it to discuss larger topics that require broader attention.
**Issue tracker**::
https://pagure.io/minimization/issues[Minimization issue tracker] on Pagure. The idea behind this tracker is to keep track of things we're looking at or want to look at.
**Fedora package changes**::
https://bugzilla.redhat.com/show_bug.cgi?id=1734342[Tracker bug 1734342] in Bugzilla. We block this bug with other bugs that are relevant to the effort. That way we can see what's going on.
Many discussions happen at other appropriate places — such as upstream issue trackers, mailing lists, forums, meetings, etc. Those are ideally referenced in in our Minimization issue tracker.

View file

@ -1,7 +1,5 @@
= Fedora Minimization Objective
__Objective lead: Adam Šamalík (asamalik)__
While Fedora is well suited for traditional physical/virtual workstations and servers, it is often overlooked for use cases beyond traditional installs.
Some modern types of deployments — such as IoT and containers — are quite sensitive to size. For IoT that's usually slow data connections (for updates/management) and for cloud and containers it's the massive scale.
@ -96,36 +94,3 @@ Active support from our maintainers, the FPC, and other community members is def
**Usefulness over size**: There is a balance between the usefulness and size. We take that in mind and will not implement drastic changes that would prevent our users from using Fedora. However, nothing prevents us from producing additional very specific and mininal artifacts.
**Using RPM**: We're doing this with RPM. We're not achieving minimization by deleting files after installation. This might be obvious, but still worth mentioning.
== First Phase Accomplishments
See the https://docs.fedoraproject.org/en-US/minimization/status/[status page] for detailed info and historic weekly updates. Summary below.
**Better understanding** — Yes, we now have much better understanding of the problem and a better, more specific idea about the next steps.
https://minimization.github.io/reports/[**Feedback Pipeline**] — A service that monitors use cases for size and dependencies. Includes various views in tables and interactive dependency graphs.
**Systemd and containers** — We dag into the issue of Systemd vs. containers, especially for packages requiring it just to create users in containers using __systemd-sysuser__. Working with upstream on splitting the package out. Thought about, but not yet proposed, a wider policy around this.
* Mailing list discussion: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/6YX6CEFBPU3XVZZEHTN6CBH2F7JDF35N/#EJD4BNBE52JTEOPKAT6HFOO4HVUPBTCH
* Ticket: https://pagure.io/minimization/issue/13
Policy thinking:
* A - If systemd is only needed to start services, a package should only
"Recommend" systemd. This will allow containers to install the
package without systemd.
* B - If a program is just using a library of systemd, only require
systemd-libs. Example: libusb
* C - If a package wants to use systemd-sysusers to create users/groups,
only require systemd-sysusers. (NOTE: This subpackage isn't
implemented yet)
**initial-setup** — If an image is built without users, there needs to be some way to add a user at startup. initial-setup does a good job of that, but at the expense of size. It pulls in anaconda-tui and anaconda-core. Those two packages then commence to pull in alot of other, rather large, packages. This is for the IoT images, as well as others.
We currently do not have a recommendation, but it is being worked on.
**Use pcre2 instead of pcre** — The minimization effort is trying to trim
things down to just one pcre, and that is pcre2.
**Polkit and mozjs60** — Let's expain this one with a terrible analogy! Polkit is this lovely person (.5M) that rings your doorbell and says they will wash the windows of your house. After you agree, they bring out their elephant (mozjs60 30M) and use it to spray your windows with water. Polkit pulls in mozjs60, which is a rather large package. So, we're trying to sort this one out, too.

View file

@ -16,3 +16,35 @@ Regular updates are posted to the https://lists.fedoraproject.org/archives/list/
* https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/WSIWZOAOY5QM23G4AP5ITIIA7I7I3Q5M/[Wednesday, 28 August 2019]
* https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/2QB42MDK354LWI44BRCQHRXUB6B6QCNX/[Wednesday, 21 August 2019]
* https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/QIX5LJJF4X6HKZXOQMKEIORRTK7ZIAN7/[Friday, 2 August 2019]
== First Phase Accomplishments
See the https://docs.fedoraproject.org/en-US/minimization/status/[status page] for detailed info and historic weekly updates. Summary below.
**Better understanding** — Yes, we now have much better understanding of the problem and a better, more specific idea about the next steps.
https://minimization.github.io/reports/[**Feedback Pipeline**] — A service that monitors use cases for size and dependencies. Includes various views in tables and interactive dependency graphs.
**Systemd and containers** — We dag into the issue of Systemd vs. containers, especially for packages requiring it just to create users in containers using __systemd-sysuser__. Working with upstream on splitting the package out. Thought about, but not yet proposed, a wider policy around this.
* Mailing list discussion: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/6YX6CEFBPU3XVZZEHTN6CBH2F7JDF35N/#EJD4BNBE52JTEOPKAT6HFOO4HVUPBTCH
* Ticket: https://pagure.io/minimization/issue/13
Policy thinking:
* A - If systemd is only needed to start services, a package should only
"Recommend" systemd. This will allow containers to install the
package without systemd.
* B - If a program is just using a library of systemd, only require
systemd-libs. Example: libusb
* C - If a package wants to use systemd-sysusers to create users/groups,
only require systemd-sysusers. (NOTE: This subpackage isn't
implemented yet)
**initial-setup** — If an image is built without users, there needs to be some way to add a user at startup. initial-setup does a good job of that, but at the expense of size. It pulls in anaconda-tui and anaconda-core. Those two packages then commence to pull in alot of other, rather large, packages. This is for the IoT images, as well as others.
We currently do not have a recommendation, but it is being worked on.
**Use pcre2 instead of pcre** — The minimization effort is trying to trim
things down to just one pcre, and that is pcre2.
**Polkit and mozjs60** — Let's expain this one with a terrible analogy! Polkit is this lovely person (.5M) that rings your doorbell and says they will wash the windows of your house. After you agree, they bring out their elephant (mozjs60 30M) and use it to spray your windows with water. Polkit pulls in mozjs60, which is a rather large package. So, we're trying to sort this one out, too.

View file

@ -1,10 +1,43 @@
= Fedora Minimization Team
= Contributing to Minimization
The Minimization Team focuses on helping Fedora contributors to maintain Fedora packages with focus on a minimal installation footprint.
Are you interested in minimizing the installation footprint various Fedora bits and pieces? Are you interested in contributing? Or perhaps already working on something and want to make it more visible? Then you're at the right place!
Members of the Minimization Team consult and work with Fedora maintainers, develop tooling and services, generate reports showing the status of the Fedora ecosystem and a comparison with other ecosystems, etc. Please see the xref:action-plan.adoc[Action Plan] for more details.
== What to contribute
== Members
The main areas of contribution include:
=== Collecting use cases and problems
Help us make sure we work on stuff that's relevant to people. Both Fedora users and others who might become Fedora users. Talk to people at events, online forums, or anywhere, really. Ask them on how they run stuff, what pain points they experience, or what would they like to see.
=== Optimizing Fedora packaging
Look at the use cases and problems we've collected and see if there are ways to minimize them by optimizing the packaging. That might include cutting off unnecessary dependencies, switching common dependencies to a single implementation, or even proposing policy changes about packaging.
=== Working with upstream communities
Many changes go beyond Fedora. Are there any potential code changes that could help us? Or anything that requires coordination upstream? Reach out to upstream communities, offer help, build connections with the members, and help make bigger changes.
=== Developing tools and services
Ask our maintainers and developers if there's anything in their minimization-related workflows that could use some automation or a tool, and help develop that. That goes for both making things smaller, as well as keeping them small over time.
=== Looking at alternative approaches
Look at other Linux distributions, repositories, container images, and other solutions, and compare them with Fedora. Anything they do differently? Maybe even better? What could we experiment with and learn about?
=== Promoting Minimization and Fedora
Being visible helps us get more feedback, more contributors, and to do a better overall progress. Write blog posts about cool things that are happening, about interesting problems we're solving, or about examples of using Fedora in various use cases. Submit talks at events, write on social media, make videos, etc.
== How to join
If you want to be a listed member of this group, please https://pagure.io/minimization/new_issue[open an issue], introduce yourself, and tell us how you want to help.
But you don't need to be a formal team member to contribute. We also welcome ocasional contributions from the whole Fedora community. Just reach out through one of the xref:communication.adoc[communication channels].
== Current members
Adam Samalik (asamalik) — objective lead
@ -26,21 +59,4 @@ Igor Gnatenko (ignatenkobrain)
Jun Aruga (jaruga)
=== Joining the team
Do you want to join the team? Please https://pagure.io/minimization/new_issue[open a new ticket] titled "_New member: name_", introduce yourself, tell us how you want to help, and we'll welcome you to the team!
== Communication channels
IRC #fedora-devel at FreeNode for real-time discussions.
Tickets in the https://pagure.io/minimization/issues[pagure.io/minimization repository] to discuss larger topics and to make formal decisions.
Bug tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1734342[Bugzilla 1734342: Minimization Objective tracker]
Periodic updates (and some discussions) on the https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org/[Fedora Devel mailing list].
=== Regular meeting
Every Wednesday 15:00 GMT on #fedora-meeting-1 at FreeNode.
Dragoş Iorga (idf31)

View file

@ -1,12 +1,12 @@
= Tools useful for minimising
= Tools & Services for Minimization
== Feedback Pipeline (service)
== Feedback Pipeline service
Reporting and notifications regarding dependencies and sizes of defined RPM installations.
https://minimization.github.io/reports/[**minimization.github.io/reports**]
== rpm-showme
== rpm-showme tool
Dependency visualisation of an RPM-based installation (a system, an image, etc.)