Contributors: Sergio Schvezov
Packages affected: ubuntu-system-settings, ubuntu-bug, whoopsie
This spec describes versioning for Ubuntu Touch's specific case, based on the fact that it is using Image Based Upgrades as the general purpose way to track down a specific version installed on a specific device.
In general this would not be needed unless an image based upgrade system is not used to assemble the images that make up the operating system as a whole.
When using image based upgrades there is a versions.*.tar.xz assembled that contains the proper channel information and versions for each of the image parts that compose the system.
In the event of not taking advantage of this backend there needs to be a way to expose the versions of the parts independently from the bits they provide for individuals to be able to figure out what version of the system they are running that leads to better issue reporting.
User wants to report an issue:
- Opens settings application
- Goes to the "About" panel
- Expands the information on OS
- Takes note of the versions being run
The versions composed by the channel, if available, shall be taken by quering the system-image daemon running on the device by quering it's Info method on the com.canonical.SystemImage service with object path of /Service on the com.canonical.SystemImage interface.
This call returns a dictionary in one of it's out arguments which are the versions of the parts; from this dictionary, of interest are
labeled Device Image part
labeled Ubuntu Image part
If these keys are not available, these parts shall be hidden from the user interface.
Additionally, the simplified version shall be exposed and if not available, it shall display that it is not a proper image based server composed image. It shall be labeled OS build number.
From image parts
There are three parts of interest,
labeled Device build description and it's value taken from the ro.build.display.id android build property
labeled Ubuntu build description and it's value taken from /etc/media-info
labeled Customization build description and it's value taken from /custom/build-id
If any of these keys are empty or not available, they shall not be displayed.
TODO: design sign off
Accessing the build details shall be accomplished by reaching changing the OS entry in the About panel into a progressive one and pushing a page stack onClick.
Composing all the keys and their values, the case where there is no customization shall look like:
A view with a customization image:
For automated issue reports and better tracking for the individual that needs to triage it the afformentioned items shall be added to the payload when creating either new bugs through ubuntu-bugs or automated ones through whoopsie.
This specification does not take consideration about the format of the displayed text string taken for displaying the image parts' version.