##(see the SpecSpec for an explanation) ## * '''Launchpad entry''': UbuntuSpec:foo * '''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 [[ImageBasedUpgrades|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: {{attachment:build_details.png}} A view with a customization image: {{attachment:build_details_custom.png}} == 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. ---- CategorySpec