[TEAM] Reviewing the "Seeds & Composition" section on the Strategy Document

Pasi Lallinaho pasi at shimmerproject.org
Mon Mar 16 13:38:22 UTC 2015

Hello team,

it's time to review and discuss the last section on the Xubuntu Strategy
Document that hasn't been updated during the "modern" Xubuntu times;
Seeds & Composition.

I've attached both the current and the new, proposed version to this

The proposed version has been mostly drafted with Unit193 and has
briefly gone through Sean and Simon.

Time to discuss.


Pasi Lallinaho (knome)                » http://open.knome.fi/
Leader of the Shimmer Project         » http://shimmerproject.org/
Ubuntu member, Xubuntu Website lead   » http://xubuntu.org/

-------------- next part --------------
== Seeds & Composition ==
This section will describe core components of Xubuntu which will always be shipped with Xubuntu, packages/types of packages that are not appropriate for Xubuntu, and information on how to decide which packages best fit Xubuntu.

The bottom line is that changes will not be rationalized using the below guidelines alone but instead will rely on well thought out arguments, useful measurements, and meaningful test cases in conjunction with evidence of affinity with the Xubuntu mission statement.
=== Core components ===
Core components of Xubuntu are packages that are considered to be so fundamental that if removed/replaced then the product would no longer be Xubuntu unless Xfce4 upstream deprecates and/or replaces them or very compelling reasons required for them to be substituted. These packages are:
 * xfce4-session (Xfce4 Session Manager)
 * xfwm4 (Xfce4 Window Manager)
 * xfdesktop4 (Xfce4 desktop)
 * xfce4-panel (Xfce4 panel)
 * thunar (Xfce4 file manager)
 * xfce4-utils (Xfce4 utilities)

Other applications which contribute to the Xubuntu identity as well but are not considered "critical" are:
 * xfce4-terminal (Xfce4 terminal emulator)
 * mousepad (Simple text editor)
 * xfce4-appfinder (Xfce4 application finder)

=== Unsuitable Packages ===
Packages that work against our goals and our mission statement aren't appropriate when being considered for inclusion in Xubuntu. The following list of guidelines can be used to help identify areas of concern in candidate packages:
 * Packages that do not use GTK toolkit (i.e. QT/KDE applications)
 * Packages that use interpreted languages (generally slower and require more memory)
 * C++ programs (tend to be heavier than C programs)
 * Packages that will pull heavy libraries, especially if they will run and/or start frequently

=== Package Selection ===
To meet our performance objectives and other set goals, we must be careful about the applications we seed with Xubuntu; thinking objectively is the foundation to proper application selection. Applications that make it into Xubuntu must be rationalized and be in the spirit of Xubuntu. The Xubuntu Project lead with the help of the Xubuntu technical lead will determine if a package is right for Xubuntu with the help of Xubuntu developers.

The following guidelines will help the developers to determine if a package is a good fit for Xubuntu:
 * Usability. Is the application easy to use? Does it have a well designed UI? How easy is it to accomplish the task that the application is seeded for?
 * Usefulness. Is the package useful for Xubuntu users?
 * Resource consumption. In its entirety, along with all libraries, how much memory does the application use? Does it use libraries that are already in use?
 * Integration and workload. How much work does it take to integrate the package to the system? Is the package well maintained upstream? Is the package used by other Ubuntu derivatives?
 * File size. Does the package take so much space that the team has to consider dropping something from the ISO?
 * Stability and maturity. Is the application tested well? How many bugs are there in the application? How mature the application is? How likely is it to get bugfixes to the application through normal processes and/or personal relations?
 * Localization. Does the application have translations in the most commonly used languages?

When measuring if a package is right for Xubuntu, your decision should not be based on your analysis of package alone but should take into account the entire target package along with its dependencies. Furthermore, the above points should not be considered an exhaustive list of elements to weigh; always use common sense.
-------------- next part --------------
== Seeds & Composition ==
=== Core Components ===

The following packages and their technical dependencies are considered essential in composing an operating system that represents the goals set previously in this document:
 * xfwm4 (Xfce4 window manager)
 * xfdesktop4 (Xfce4 desktop)
 * xfce4-panel (Xfce4 panel)
 * xfce4-session (Xfce4 session manager)
 * xfconf (Xfce4 configuration storage system)
 * xfce4-settings (Xfce4 settings manager)
 * thunar (file manager)

Unless the components mentioned above are deprecated and no longer work as they are intended, they should not be substituted or removed from the seed.

The xubuntu-core metapackage consists of the core packages as well as other important packages which contribute to the Xubuntu experience. The xubuntu-desktop metapackage depends on xubuntu-core and includes additional packages to provide the full, ready to use, Xubuntu experience.

=== Package Selection ===

When considering the package selection for Xubuntu, there are two main guidelines:
 * The package must be in line with the mission statement
 * The package selection process must be conducted as objectively as possible

While the Xubuntu Project Lead and the Xubuntu Technical Lead have the last word on package selection, it's recommended that the whole team is involved in the discussion, bringing up well thought out arguments both for and against. When appropriate, tests should be conducted to gather meaningful measurements.

Before seeding an application in Xubuntu, the following aspects should be considered:
 * Usability and integration
 * Usefulness
 * Resource consumption and size
 * Reliability
 * Localization

When measuring if a package is right for Xubuntu, the decision should not be based on an analysis of the package alone, but the target package along with its dependencies. Any package that is considered for seeding should fulfill the following requirements:
 * The package should use the GTK toolkit
 * The package should not pull in heavy libraries, especially if they will run and/or start frequently
 * The package should be maintained well upstream

The above guidelines can be omitted when there are extensive benefits to seeding the package, consensus between the Xubuntu Project Lead and Xubuntu Technical Lead as well as broad support from the Xubuntu team.

More information about the xubuntu-devel mailing list