Merge lp://qastaging/~barry/ubuntu-system-image/lp1383539 into lp://qastaging/~registry/ubuntu-system-image/client
Proposed by
Barry Warsaw
Status: | Merged |
---|---|
Merge reported by: | Barry Warsaw |
Merged at revision: | not available |
Proposed branch: | lp://qastaging/~barry/ubuntu-system-image/lp1383539 |
Merge into: | lp://qastaging/~registry/ubuntu-system-image/client |
Diff against target: |
2144 lines (+861/-400) 24 files modified
.bzrignore (+1/-1) NEWS.rst (+14/-0) cli-manpage.rst (+7/-2) systemimage/config.py (+15/-0) systemimage/helpers.py (+11/-18) systemimage/index.py (+1/-4) systemimage/main.py (+12/-1) systemimage/scores.py (+29/-13) systemimage/state.py (+4/-1) systemimage/testing/controller.py (+7/-5) systemimage/testing/helpers.py (+10/-0) systemimage/testing/service.py (+8/-0) systemimage/tests/data/index_22.json (+2/-3) systemimage/tests/data/index_26.json (+245/-0) systemimage/tests/test_candidates.py (+16/-24) systemimage/tests/test_config.py (+23/-0) systemimage/tests/test_helpers.py (+51/-43) systemimage/tests/test_index.py (+0/-42) systemimage/tests/test_main.py (+180/-195) systemimage/tests/test_scores.py (+83/-10) systemimage/tests/test_state.py (+130/-36) systemimage/tests/test_winner.py (+1/-1) systemimage/version.txt (+1/-1) tools/runme.sh (+10/-0) |
To merge this branch: | bzr merge lp://qastaging/~barry/ubuntu-system-image/lp1383539 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Steve Langasek | Pending | ||
Michael Vogt | Pending | ||
Registry Administrators | Pending | ||
Review via email: mp+239135@code.qastaging.launchpad.net |
To post a comment you must log in.
Code-wise, +1 on these changes.
First, 2 usability concerns, variations of the same issue:
system-image will compute which build should be the target of the update, and then fail to update if the phased updates don't allow that; this prevents:
1/ switching channels -- this might fail if the phased updates score doesn't permit upgrading
2/ forcing a specific revision in the current channel -- again, might fail if score doesn't allow
Three ways to cope with 1/ and 2/: phased- updates flag to force processing if phased updates check fails
a) change the whole upgrade selection algorithm
b) compute two upgrade pathes, one with just the 100% builds and one with all builds; prefer the latter one if possible
c) add a --ignore-
Second, 2 operational concerns:
3/ I'm getting a phone coming with a factory version 10 from a store; stable channel's latest build has version 20 with a phased update score of 100%, and candidate build with version 21 with a phased update scores of 1%, I am very unlikely to get the latest and greatest stable update... until version 21 reaches 100% -- bad IMO
4/ Using build id in phased update computations seems bad.
The build id is used to compute device's phased score, which means that if we publish multiple images in quick succession (typical if we are trying to address issues) with 10% phased score, a *different set of 10% of devices* is going to get each image, resulting in a larger part of our user base getting on board for the latest images; that is, the number of publications impacts the number of phased testers. Also, having multiple builds with different phased updates scores would have no meaning.
Instead, consider we dont use the same build id. Then the same users get new images first (function of machine id and channel only) every release, but we can publish as many of them as we want in quick successions or even have multiple images with different percentages in the pipe, and that still makes sense.