Merge lp:~brian-murray/update-manager/phased-update-source-packages into lp:update-manager
Proposed by
Brian Murray
Status: | Merged |
---|---|
Merged at revision: | 2623 |
Proposed branch: | lp:~brian-murray/update-manager/phased-update-source-packages |
Merge into: | lp:update-manager |
Diff against target: |
157 lines (+69/-7) (has conflicts) 5 files modified
UpdateManager/Core/UpdateList.py (+9/-4) debian/changelog (+7/-0) tests/aptroot-update-list-test/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-amd64_Packages (+30/-0) tests/aptroot-update-list-test/var/lib/dpkg/status (+11/-0) tests/test_update_list.py (+12/-3) Text conflict in debian/changelog |
To merge this branch: | bzr merge lp:~brian-murray/update-manager/phased-update-source-packages |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Steve Langasek | Pending | ||
Review via email: mp+163360@code.launchpad.net |
Description of the change
As discussed we should be handling the phased update percentage for binary packages in their source package groups so that we don't end up in a situations where binary dependent packages are not installed or uninstallable due to the clients phasing luck.
To post a comment you must log in.
> self.random. seed("% s-%s-%s" % ( source_ name, pkg.candidate. version, uniq_id) )
> pkg.candidate.
> self.machine_
There's a buglet here; in some cases the binary package versions for packages from the same source package may not be the same, causing the binaries to be phased differently still. (Example: util-linux vs. bsdutils). I think this is probably ignorable for now, though.
+ if not is_security_update: phased_ updates: ignored_ phased_ update( pkg): phased_ updates. append( src_name) phased_ updates:
+ if src_name not in ignored_
+ if self._is_
+ ignored_
+ continue
+ elif src_name in ignored_
+ continue
So if the source package has already been marked as to-be-ignored, we don't check again; but if a previous binary from the source package has been seen and is *not* to be ignored, we do check again. Fortunately we'll get the same result either way, so checking again doesn't hurt us, but it seems inconsistent. We could simply do this as:
+ if not is_security_update: ignored_ phased_ update( pkg):
+ if self._is_
+ continue
and that should have the same effect.
It would, however, cause your test case to fail since your test case returns '50' as the random value for all inputs, and your test data has two different phased values for zsh vs. zsh-dev. I guess a more 'realistic' reproducible test case would check that the same random value is returned for both binary packages.