From Fedora Project Wiki
(Adjust for Sundry folder removal in GNOME 3.22)
 
(11 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{admon/note|Note: not officially approved|This policy is presented here under a personal namespace as it is still a draft. It is not an official Fedora policy.}}
{{admon/note|Note: Officially Approved|This policy has been approved as a Fedora Workstation specific policy in the Workstation WG meeting on 2014-08-27.}}


In the past, we've had efforts<ref name=purge /> to clean up the default set of installed launchers in Fedora, but we never had a documented policy about what should stay and what should go.
In the past, we've had efforts<ref name=purge /> to clean up the default set of installed launchers in Fedora, but we never had a documented policy about what should stay and what should go.
This document is a draft of such policy.


== Guidelines for applications and launchers ==
== Guidelines for applications and launchers ==
Line 27: Line 25:
====For launchers:====
====For launchers:====


* App launchers '''MUST''' have a ''unique'' 128×128 launcher icon with an alpha channel and a matching High Contrast icon.
* App launchers '''MUST''' have a ''unique''<ref name=unique /> 128×128 launcher icon with an alpha channel and a matching High Contrast icon.
** Unique: the same icon '''MUST NOT''' by used by more than one launcher in the default installation.
* App launchers '''MUST''' have a name that is either shorter than 15 characters or immediately recognizable even when elipsized.
* App launchers '''MUST''' have a name that is either shorter than 15 characters or immediately recognizable even when elipsized.
* App launchers '''MUST''' Have a comment field in the desktop file with a one line summary of what the app is.
* App launchers '''MUST''' Have a comment field in the desktop file with a one line summary of what the app is.
* App launchers '''MUST''' Be packaged separately (subpackages are okay) from other launchers - no more than one launcher per (sub)package<ref name=one />.
* App launchers '''MUST''' Be packaged separately (subpackages are okay) from other launchers - no more than one launcher per (sub)package<ref name=one />.
* App launchers '''MUST''' Have a 256×256 launcher icon.
* App launchers '''SHOULD''' Have a 256×256 launcher icon.
* An app launcher '''SHOULD''' Launch software that is an actual app - see the GNOME 3 HIG for the exact definition<ref name=hig />
* An app launcher '''SHOULD''' Launch software that is an actual app - see the GNOME 3 HIG for the exact definition<ref name=hig />
** If the launched app is not an actual app, the launcher '''SHOULD''' include <code>X-GNOME-Sundry</code> in it's launcher categories to be placed in the Sundry folder in GNOME Shell.
** If the launched app is not an actual app, the launcher '''SHOULD''' include <code>X-GNOME-Utilities</code> in its launcher categories to be placed in the Utilities folder in GNOME Shell.


====For applications:====
====For applications:====


* Apps '''MUST NOT''' depend on / pull in other apps OR app launchers<ref name=one />.
* Apps '''MUST NOT''' depend on / pull in other apps OR app launchers<ref name=one />.
** As such, apps '''MUST''' be packaged separately (subpackages are okay) form other apps OR launchers.
** As such, apps '''MUST''' be packaged separately (subpackages are okay) from other apps OR launchers.
* Apps '''MUST''' have exactly ''one'' app launcher - ie. two launchers to two separate parts of the same app is not allowed.
* Apps '''MUST''' have exactly ''one'' app launcher - ie. two launchers to two separate parts of the same app is not allowed.
* Apps '''MUST''' be installable<ref name=software-install /> and removable independently from within GNOME Software.
* Apps '''MUST''' be installable<ref name=software-install /> and removable independently from within GNOME Software.
** If an app is part of the agreed upon ''"core desktop experience"''<ref name=core />, it '''MUST NOT''' be removable from withing GNOME Software (eg. GNOME Software must not remove itself).
** If an app is part of the agreed upon ''"core desktop experience"''<ref name=core />, it '''MUST NOT''' be removable from within GNOME Software (eg. GNOME Software must not remove itself).
* Apps '''SHOULD''' have appdata<ref name=appdata /> metadata.
* Apps '''SHOULD''' have appdata<ref name=appdata /> metadata.
* Apps '''SHOULD''' have a good, documented reason for being included in the default set.
* Apps '''SHOULD''' have a good, documented reason for being included in the default set.
Line 49: Line 46:


Furthermore, if an app that doesn't follow this policy is included by default, it should be considered a Final Release blocker until the app is fixed to conform the policy or removed from the default install.
Furthermore, if an app that doesn't follow this policy is included by default, it should be considered a Final Release blocker until the app is fixed to conform the policy or removed from the default install.


=== Refrences and Footnotes ===
=== Refrences and Footnotes ===
Line 56: Line 52:
refs=
refs=
<ref name=purge>[[Design/F18 Launcher Purge|F18 Launcher Purge]]</ref>
<ref name=purge>[[Design/F18 Launcher Purge|F18 Launcher Purge]]</ref>
<ref name=hig>HIG link TBD when the HIG is officially published</ref>
<ref name=hig>[https://developer.gnome.org/hig/stable/application-basics.html.en GNOME Human Interface Guidelines: Application basics]</ref>
<ref name=unique>The same icon '''MUST NOT''' by used by more than one launcher in the default installation.</ref>
<ref name=one>To prevent cases in which the user tries to install one app from GNOME Software, and gets more apps than they asked for. Similarly, it also prevent cases where removing one app removes another, which is something a user will not expect</ref>
<ref name=one>To prevent cases in which the user tries to install one app from GNOME Software, and gets more apps than they asked for. Similarly, it also prevent cases where removing one app removes another, which is something a user will not expect</ref>
<ref name=software-install>For an app to be installable from Software it must adhere to [https://github.com/hughsie/appstream-glib/blob/master/README.md#what-is-an-application appstream-glib guidelines]</ref>
<ref name=software-install>For an app to be installable from Software it must adhere to [https://github.com/hughsie/appstream-glib/blob/master/README.md#what-is-an-application appstream-glib guidelines]</ref>
Line 62: Line 59:
<ref name=appdata>[http://people.freedesktop.org/~hughsient/appdata/ Appdata]</ref>
<ref name=appdata>[http://people.freedesktop.org/~hughsient/appdata/ Appdata]</ref>
}}
}}
[[Category:Workstation guidelines]]

Latest revision as of 15:09, 28 February 2019

Note: Officially Approved
This policy has been approved as a Fedora Workstation specific policy in the Workstation WG meeting on 2014-08-27.

In the past, we've had efforts[1] to clean up the default set of installed launchers in Fedora, but we never had a documented policy about what should stay and what should go.

Guidelines for applications and launchers

This policy is written with two facts in mind:

  1. Fedora's default desktop offering is Fedora Workstation.
  2. Fedora Workstation uses GNOME by default.

As such, should the WG would decide to switch away from GNOME, this policy will need to be re-evaluated.

Furthermore, this policy does not aim to apply to all applications in the distribution. It's meant to apply to anything we include by default in our default desktop product. Non default applications are welcome and encouraged to follow these guidelines to improve user experience, but will not be forced to follow them for the forseeable future.


Policy

The following policy differentiates between "app launcher" and "app":

  • An "app launcher" is a desktop file+icon that is shown in the application view.
  • An "app" is an application as defined by the GNOME 3 HIG[2].

Mandatory items are marked with "MUST" and "MUST NOT", the rest is nice-to-have.

For launchers:

  • App launchers MUST have a unique[3] 128×128 launcher icon with an alpha channel and a matching High Contrast icon.
  • App launchers MUST have a name that is either shorter than 15 characters or immediately recognizable even when elipsized.
  • App launchers MUST Have a comment field in the desktop file with a one line summary of what the app is.
  • App launchers MUST Be packaged separately (subpackages are okay) from other launchers - no more than one launcher per (sub)package[4].
  • App launchers SHOULD Have a 256×256 launcher icon.
  • An app launcher SHOULD Launch software that is an actual app - see the GNOME 3 HIG for the exact definition[2]
    • If the launched app is not an actual app, the launcher SHOULD include X-GNOME-Utilities in its launcher categories to be placed in the Utilities folder in GNOME Shell.

For applications:

  • Apps MUST NOT depend on / pull in other apps OR app launchers[4].
    • As such, apps MUST be packaged separately (subpackages are okay) from other apps OR launchers.
  • Apps MUST have exactly one app launcher - ie. two launchers to two separate parts of the same app is not allowed.
  • Apps MUST be installable[5] and removable independently from within GNOME Software.
    • If an app is part of the agreed upon "core desktop experience"[6], it MUST NOT be removable from within GNOME Software (eg. GNOME Software must not remove itself).
  • Apps SHOULD have appdata[7] metadata.
  • Apps SHOULD have a good, documented reason for being included in the default set.

An app or launcher that fails to complies with these guidelines MUST NOT be included in the default install.

Furthermore, if an app that doesn't follow this policy is included by default, it should be considered a Final Release blocker until the app is fixed to conform the policy or removed from the default install.

Refrences and Footnotes

  1. F18 Launcher Purge
  2. 2.0 2.1 GNOME Human Interface Guidelines: Application basics
  3. The same icon MUST NOT by used by more than one launcher in the default installation.
  4. 4.0 4.1 To prevent cases in which the user tries to install one app from GNOME Software, and gets more apps than they asked for. Similarly, it also prevent cases where removing one app removes another, which is something a user will not expect
  5. For an app to be installable from Software it must adhere to appstream-glib guidelines
  6. Core desktop experience is not "everything that is installed by default", and should be as minimal as possible.
  7. Appdata