ubuntu-phone team mailing list archive

system-image: Renumbering of all the images and some details about versioning and channels

To : ubuntu-phone@xxxxxxxxxxxxxxxxxxx

: ubuntu-phone@xxxxxxxxxxxxxxxxxxx From : Stéphane Graber <stgraber@xxxxxxxxxx>

: Stéphane Graber <stgraber@xxxxxxxxxx> Date : Wed, 4 Sep 2013 23:06:10 -0400

: Wed, 4 Sep 2013 23:06:10 -0400 User-agent: Mutt/1.5.21 (2010-09-15)

Hello everyone, TL&DR: If you're just a system-image user and haven't reflashed with phablet-flash since Tuesday, you'll want to run "adb shell system-image-cli -b 0" to get you to the latest image. == System image version number change == Quite a few people who tried the system images reported being confused by the way those were versioned as the main version number was of format YYYYDDXX (with XX starting at 00 at the beginning of the month and incrementing with each image). In order to clear that confusion as well as give us more room to spare for images (the version number is a 16bit unsigned integer so putting a date in it was tricky and wasteful) we decided to reset all the channels to version number "1" and simply increment it from there. This happened on Tuesday and now both the daily and daily-proposed channels are using these version numbers (current image is 3 current proposed image is 4). Anyone who's testing system image using phablet-flash shouldn't see a different, "phablet-flash ubuntu-system" will keep on working as it used to. However anyone who was already on the system images, will have to force a full update to get from the old to the new numbering (as it's essentially a version downgrade). To achieve this, simply run "adb shell system-image-cli -b 0" and wait for your phone/tablet to grab a full image from the server and flash it. == Clarification on version number == One question I often get is why do we have a different version number for the system images than for the "standard" flipped images. Well, that's because system-image has been designed to be way more clever about that whole image publishing business. Basically your average system-image is made of 3 bits: - A device-independent Ubuntu rootfs - A device-dependent bundle (boot partition, recovery partition, firmware, android, kernel modules, ...) - A unique version number representing that set of files. We'll also soon have special images that include OEM/carrier customization bits which will lead to a 4th entry to be part of the image. Each of those bits evolve on their own, each have their own version numbers, some change daily, some don't, some are shared across devices, some are shared across channels, some are shared across a carrier/OEM. The system-image infrastructure knows about that and is designed never to publish something that's bit for bit identical to something that's already in the system. As a result, build "4" for mako in daily may have: - Ubuntu: 20130902 - Mako: 20130830 - Custom: 20130903.1 And, build "4" for grouper in daily-proposed may have: - Ubuntu: 20130902 - Grouper: 20130902 - Custom: 20130904 You can never assume that the same version number for different channel+device combination will contain the same thing. The system-image version number exists so that the upgrader doesn't have to be clever about this, it has one unique version number which is a simple integer and needs to update to something that's higher than its current value using the minimum amount of bandwidth and the minimum amout of reboots. All the code we have on the device is completely oblivious to what an Ubuntu rootfs or Android even are. All it deals with is a series of candidate image numbers each containing a bunch of files to download and unpack. It finds those it needs, grabs them and gets the upgrader to unpack them. We could perfectly re-architecture Ubuntu touch entirely or even apply this to another operating system without having to do any grand redesign of the system. Anyway, to make things hopefully a bit simpler, we are now working to change the various bits showing the system-image version number to instead show an expanded one which should be easier for people to understand. The format for the mako build above would be something like: daily/mako/4 (ubuntu=20130902,mako=20130830,custom=2010903.1) == daily-proposed update channel == A week or so ago, I introduced a new update channel called "daily-proposed". This channel is only meant for automated testing and isn't meant to be used by humans. If you however choose to ignore this warning, note that this channel gets rebased (version numbers are re-used) every time a new image is published. As a result, the only way to consistently use it is to run "phablet-flash ubuntu-system --channel=daily-proposed" every single time a new image is proposed (at least twice a day). There are plans to make this channel slightly more useful for developers, but that's going to come in the next few weeks. For now, please try to stay away from it (unless you're running the automated testing infrastructure obviously). I realize all this may be hard for people to wrap their head around, it's arguably complex but it's also flexible and I believe the right way of dealing with the plethora of devices, channels, providers, ... that we'll need to support. Should you have any specific questions or suggestions, please don't hesitate to contact me! -- Stéphane Graber Ubuntu developer http://www.ubuntu.com

Attachment: signature.asc

Description: Digital signature

Follow ups