apt improvements/ordering verification

Registered by Michael Vogt

It appears that under some circumstance the apt ordering algorithm fails (e.g. bug #571030, #516727 or #566584). We should take the opportunity to write verification code that ensures we never violate the constrains.

Blueprint information

Status:
Not started
Approver:
Robbie Williamson
Priority:
High
Drafter:
Michael Vogt
Direction:
Approved
Assignee:
Michael Vogt
Definition:
Approved
Series goal:
Accepted for natty
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

Work items:
investigate order failures in LP: DONE
try to isolate test-case (best so far is #571030): INPROGRESS
add verification before processing: TODO
investigate if "unpack" could actually become --install: POSTPONED
investigate dontkults alternative ordering and add progress reporting for that: TODO
provide apt-get changelog: DONE
provide apt-get download: DONE
make changelogs.ubuntu.com updates quicker (see foundations-lucid-better-archive-crawler): DONE

Session notes about the core problem:
- write verifcation code that can read the input from "apt-get --simulate" or "apt-get -o Debug::DPkgPM=1" and verify that the ordering is correct - this requires that this verification tool understand something about the dependencies etc
- create a bunch of positive test cases with fixture data that can be used as regression test
- try to recreate the failure of the ordering so that we have it isolated
- add regression tests as part of the test suite
- with that, the fix can be worked on and tested
(- add dpkgpm::immediate-configure=always option and fix it for circular dependencies)

Nice to know:
- provide a apt binary (apt shell)
- look at the old apt-shell patch
- provide apt changelog
- provide apt download
- apt-get install auto-install-pkg should not mark it manual
- apt-mark mark should be folded into "apt mark"
- apt-get source ./pkg-1.0 should get get the build-dependencies from the directory

Harder, but still nice:
- download multiple packages in parallel (aptdaemon?)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.