Merge lp:~javier.collado/checkbox/bug990075-2 into lp:checkbox
Status: | Rejected |
---|---|
Rejected by: | Marc Tardif |
Proposed branch: | lp:~javier.collado/checkbox/bug990075-2 |
Merge into: | lp:checkbox |
Diff against target: |
222 lines (+123/-29) 3 files modified
checkbox/job.py (+0/-15) debian/changelog (+3/-0) plugins/jobs_info.py (+120/-14) |
To merge this branch: | bzr merge lp:~javier.collado/checkbox/bug990075-2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Marc Tardif (community) | Disapprove | ||
Brendan Donegan (community) | Needs Information | ||
Review via email: mp+110257@code.launchpad.net |
Description of the change
This is a new merge request for the whitelist ordering changes. The reason a new merge request has been created is that the work started before the python3 changes and the original branch is no longer easy to merge (besides this, the old branch has been used also to create a merge request against 0.13 which is unfortunate on my side).
Hence, a new branch in which the changes from the old one have been rebased has been created so that changes now are easy to review and merge in trunk.
For a detailed explanation of the changes, please have a look at:
https:/
Unmerged revisions
- 1446. By Javier Collado
-
Fixed dependency ordering check
- 1445. By Javier Collado
-
Added text to make clear what is related to the old/new whitelist
- 1444. By Javier Collado
-
Removed custom code to provide readable output and replaced with difflib
Instead of keeping track of broken dependencies, difflib is used against the
original whitelist and the new whitelist after the job reordering to provide a
diff style output that is much more readable to the user. - 1443. By Javier Collado
-
Updated whitelist error message to display detailed information properly
This change needs the fix for bug1012052 to work fine.
- 1442. By Javier Collado
-
Added message to let the user know what's the final ordering being used
- 1441. By Javier Collado
-
Implemented new algorithm to order jobs
The new algorithm no longer uses a standard topological ordering algorithm
because of the lack of information available in job descriptions. For example,
most of the jobs are expected to be executed before suspend/suspend_ advanced,
but they are not listed as a dependency for this job. Instead, just the jobs
that are expected to be executed after suspend depend on
suspend/suspend_ advanced. To address this problem, it's assumed that the whitelist is already almost
fine, but there are just a few test cases that are out of order (if this is not
the case, the final ordering will probably not be valid). After that, a list of
dependencies and reverse dependencies is created and an attempt to order all
the messages in the whitelist one by one is made. If the order in the whitelist
is fine, then the messsage is added to the list of sorted jobs, if that's not
the case, the message is cached and added as soon as the missing dependencies
have been added as well. - 1440. By Javier Collado
-
Make sure that jobs are topologically ordered (LP: #990075)
- 1439. By Javier Collado
-
Removed unused code to delete duplicates from job store
jobs_info.py plugin now takes care of the duplicates by updating the message
list before any message is added to the store. Hence, the code to remove files
from store for duplicated message is no longer needed. - 1438. By Javier Collado
-
Fixed report-message callback to update existing messages
In the past messages for the same job were added multiple times and it looks
like the store took care of removing duplicates. Now, given that jobs are
already ordered, they can be updated in place before adding them to the store. - 1437. By Javier Collado
-
Added topological sort implementation
Unfortunately, this breaks the selection dialog and the test cases
are no long displayed under their test suites.
Same question as for the merge request against 0.13...