Launchpad Entry: package-supportedness-ui
Packages affected: apt, synaptic, gnome-app-install
Whether a package is maintained by Canonical, and for how long, should be conveyed using a searchable flag and a default custom filter in Synaptic, small print at the end of the description display in Synaptic and Add/Remove Programs, and new lines in the output of apt-cache show and aptitude show. This software, and Ubuntu’s Web site, should be updated to distinguish “maintenance” from “support”. Future work may involve showing the maintenance lifecycle in an area graph in Synaptic.
Canonical maintains packages in the Ubuntu archive for different periods, and “maintains” means different things depending on whether the package is Free Software (as currently represented by Main vs. Restricted). Ubuntu’s package management tools do not make it clear how long each package is maintained for, and what this means. They also confuse maintenance with support, and disambiguating this is important for explaining future support plans from Canonical and other support providers. It is also possible that ArchiveReorganisation will mean we can no longer use a package’s presence in “Main” to determine whether Canonical provides updates for it.
- packages that are part of Ubuntu Server for five years in LTS releases, and three years in non-LTS releases;
- other packages in the Main repository for three years in LTS releases, and 18 months in non-LTS releases.
“Maintains”, in this sense, means:
- If Canonical is able to modify and redistribute modified versions of the package (currently represented by the package being in “Main”), it provides fixes for security problems and other critical defects.
- If Canonical does not have the source code and permission to redistribute modified versions (currently represented by the package being in “restricted”), it seeks fixes from the vendor for security problems and other critical defects.
“Maintains” should not be confused with “supports”, which is about tech support from Canonical’s support team or other providers. It is possible that we may advertise supported for software in package management tools in future, but for now we will not.
- Some server administrators want to be sure that all packages they install are maintained by Canonical. These admins use apt-get or aptitude, not Synaptic or Add/Remove Programs.
We have no other known use cases. However, we currently present maintainedness ambiguously in Synaptic and Add/Remove Programs, and we should at least present it unambiguously.
In the “Filters” dialog, in addition to “Status”, “Section”, and “Properties”, there should be a new tab labelled “Maintenance”. This tab should have checkboxes (both checked by default) for “Currently maintained by Canonical” and “Not maintained by Canonical”. “Currently maintained” should mean that the Canonical maintenance period has not expired.
Upon upgrading to a version of Synaptic that implements this specification, a “Not Canonical-maintained” filter should be added to the Custom Filters, using the “Not maintained by Canonical” criterion. If there is a “Community Supported (installed)” filter, and that filter still has its default settings (returning all packages with “Ubuntu” origin that are not from “main” or “restricted” components), the “Not Canonical-maintained” filter should replace the “Community Supported (installed)” filter.
A package’s maintenance status should be presented in small grey print at the end of its description, after a grey horizontal rule. (This text should replace the Ubuntu logo column previously present in package listings, as well as the seal, heart, and Synaptic icons previously used in package descriptions.)
The text should be in this format:
If expires today or in the future
Canonical-maintained (Free Software)
Canonical provides critical updates for fontforge in Ubuntu 8.04 until 28 April 2011.
Canonical no longer provides updates for fontforge in Ubuntu 8.04. Updates may be available in a newer version of Ubuntu.
Canonical provides critical updates supplied by the developers of linux-restricted-modules-2.6.24-19-generic in Ubuntu 8.04 until 28 April 2013.
Canonical no longer provides updates for linux-restricted-modules-2.6.24-19-generic in Ubuntu 8.04. Updates may be available in a newer version of Ubuntu.
Community (Free or non-Free)
Canonical does not provide updates for alien-arena. Some updates may be provided by the Ubuntu community.
Other (e.g. Partner)
Canonical does not provide updates for opera. Some updates may be provided by the vendor.
The date should be presented in the long format specified by the current locale.
In the “Show” menu, “Supported applications” should be renamed to “Canonical-maintained applications”. Like the rest of the items in the menu, it should not have a tooltip.
The maintenance status for an application should be presented in exactly the same way as for packages in Synaptic, except that the application name should be used throughout instead of the package name.
“apt-cache show package-name” should include information about how long Canonical will provide critical updates for the package. For example:
> apt-cache show fontforge Package: fontforge Priority: optional Section: x11 Installed-Size: 12004 Maintainer: Ubuntu Core Developers <email@example.com> Original-Maintainer: Kęstutis Biliūnas <firstname.lastname@example.org> Canonical provides critical updates until: 2011-04-28 Architecture: i386 Version: 0.0.20071110-1build2 Depends:...
The date should be presented in YYYY-MM-DD format.
“aptitude show package-name” should include information about how long Canonical will provide critical updates for the package. For example:
> aptitude show fontforge Package: fontforge State: not installed Version: 0.0.20071110-1build2 Priority: optional Section: x11 Maintainer: Ubuntu Core Developers <email@example.com> Canonical provides critical updates until: 2011-04-28 Uncompressed Size: 12.3M Depends:...
The date should be presented in YYYY-MM-DD format.
Current and future pages on the Ubuntu Web site, when referring to software updates, should use “maintained” instead of “supported“ and “maintenance” instead of “support” (except for the phrase “Long-Term Support”, which is now too well-known to change).
The implementation should be done with debtags. We add a debtag "Facet" that does not use the word "support", and add tags like "canonical-5years" or "canonical-3years".
For the maintenance status based on the installed version of ubuntu we add tags that match the meta-packages, e.g. "part-of::ubuntu-desktop", "part-of::ubuntu-studio-desktop" etc. This way the packaging tools can check for the installed meta packages and then figure out the maintenance status based on that information. This way it can rank packages that are part of this group higher in e.g. searches.
The synaptic lp:~mvo/synaptic/ept branch has some support for debtags and with "debtags::getItemsHavingTag()" and "getItemsHavingTags()" it should straightforward to implement the required views and emblems. The tag information needs to be added to the debtags package, this includes the new facet in the vocabulary and the new tags.
For the python based applications the maintenance text can be displayed based on the information that is available via the python-debian debtags interface.
For the CLI tools we should modify apt-ftparchive so that the maintenance time is added to the package record by apt-ftparchive
These pages should be updated to use the correct terminology:
http://www.ubuntu.com/products/ubuntu/release-cycle (“LTS Server” section only)
Past-dated pages (such as news releases) need not be changed.
The ubuntu.com style guide should also be updated, to clarify when to use “maintained” vs. “supported“ and “maintenance” vs. “support”.
It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release.
This need not be added or completed until the specification is nearing beta.
Synaptic (or its successor) should have a “Maintained software” pane that shows an area graph of packages maintained over time. The graph should have a slider for selecting a date, so that you can examine which installed packages will be maintained on that date in a list following the graph.
The X axis should start from the current date, and extend for six years. The only dates shown on the X axis should be “Now”, the dates on which any installed packages stop being maintained, and the date currently selected in the slider. The default value of the slider should be “Now”. If the currently selected date is equal to any of the other dates (as it is by default), it should be displayed in bold. And whenever the currently selected date overlaps any other date, that other date should temporarily be hidden.
Should there also be light grooves for calendar years?
The Y axis should not have any tick marks or labels. The exact number or percentage of packages involved is not relevant; what is relevant on the Y axis is seeing that there has been a change from one value to another.
The graph area should be shaded in a moderately dark color to show the proportion of currently-installed packages that will be maintained by Canonical on that date. Any date on which packages stop being maintained should be shown not just by the presence of the date on the X axis, but also by a hairline vertical line in the same color as the graph area.
The list of packages should have a “Maintained until” column that shows the date on which Canonical stops/stopped maintaining the package. The list should be sorted by this column by default. Packages that Canonical did not maintain at all should be indicated by “—”, and sorted first in the default order. For packages that are not maintained on the selected date, the “Maintained until” cell should begin with a red cross; for packages that are maintained, the cell should begin with a green checkmark. The list should also have a “Latest update” column giving the date of the most recent update to that package.
- We need to get the list of supported packages for the various support levels for each release. It needs to be discussed if this should be done via germinate or via a different method.
- Where will “critical” be defined?