Version
Created: 2014-06-25
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.
Rationale
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 stories
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
...
Versions
From channel
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
- device
labeled Device Image part
- ubuntu
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,
- device
labeled Device build description and it's value taken from the ro.build.display.id android build property
- ubuntu
labeled Ubuntu build description and it's value taken from /etc/media-info
- custom
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.
Viewing
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:
Issue Reporting
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.
Unresolved issues
This specification does not take consideration about the format of the displayed text string taken for displaying the image parts' version.
Touch/Version (last edited 2014-06-25 13:17:46 by sergiusens)