Selection window only shows tree one level deep
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Checkbox |
Fix Released
|
Critical
|
Marc Tardif |
Bug Description
If you replace the optical/read job with this composite job:
plugin: local
name: optical/read
requires:
device.category == 'CDROM'
description: foo
command:
cat <<EOF
plugin: manual
name: optical/read_foo
command: optical_read_test /dev/cdrom
description:
PURPOSE:
This test will check your optical devices ability to read CD media
STEPS:
1. Insert appropriate non-blank media into your optical drive(s). Movie and Audio Disks may not work. Self-created data disks have the greatest chance of working.
2. If a file browser window opens, you can safely close or ignore that window.
3. Click "Test" to begin the test.
VERIFICATION:
This test should automatically select "Yes" if it passes, "No" if it fails.
EOF
And then run this command from the trunk of the project:
rm -fr store messages checkbox.xsl checkbox.log plugins.bpickle* sub* ; ./bin/checkbox-qt -W <(cat <<EOF
`head -n 32 ../../checkbox/
__optical__
optical/detect
optical/read
optical/read_foo
EOF
)
Then, you get the attached checkbox-before.png screenshot. If you revert to revision 1471, then you get the attached checkbox-after.png screenshot. The problem is that the contract of the resolver was changed when the sorting was fixed.
Related branches
- Jeff Marcom (community): Approve
-
Diff: 33 lines (+9/-1)2 files modifieddebian/changelog (+1/-0)
plugins/suites_prompt.py (+8/-1)
- Daniel Holbach (community): Approve
- Micah Gersten (community): Needs Fixing
- Ubuntu branches: Pending requested
-
Diff: 4032 lines (+691/-1663)52 files modifiedbackend (+7/-3)
checkbox/parsers/udevadm.py (+8/-1)
data/whitelists/default.whitelist (+1/-0)
debian/changelog (+56/-0)
debian/control (+7/-2)
debian/po/ast.po (+2/-2)
debian/po/cs.po (+2/-2)
debian/po/de.po (+2/-2)
debian/po/en_AU.po (+2/-2)
debian/po/en_GB.po (+2/-2)
debian/po/es.po (+4/-3)
debian/po/fr.po (+13/-13)
debian/po/he.po (+2/-2)
debian/po/hu.po (+2/-2)
debian/po/id.po (+2/-2)
debian/po/it.po (+2/-2)
debian/po/ja.po (+2/-2)
debian/po/nl.po (+2/-2)
debian/po/oc.po (+2/-2)
debian/po/pl.po (+2/-2)
debian/po/pt_BR.po (+2/-2)
debian/po/ro.po (+2/-2)
debian/po/ru.po (+2/-2)
debian/po/tr.po (+2/-2)
debian/po/uk.po (+2/-2)
debian/po/zh_CN.po (+2/-2)
debian/po/zh_TW.po (+2/-2)
jobs/cpu.txt.in (+1/-0)
jobs/esata.txt.in (+0/-6)
jobs/firewire.txt.in (+0/-6)
jobs/mediacard.txt.in (+0/-48)
jobs/optical.txt.in (+90/-52)
jobs/resource.txt.in (+1/-1)
jobs/usb.txt.in (+7/-19)
jobs/wireless.txt.in (+17/-3)
plugins/apport_prompt.py (+0/-280)
plugins/backend_info.py (+60/-21)
plugins/suites_prompt.py (+8/-1)
po/POTFILES.in (+0/-1)
po/ar.po (+13/-12)
po/fi.po (+28/-14)
po/fr.po (+131/-109)
po/pt_BR.po (+5/-5)
qt/checkbox-qt.ui (+0/-935)
qt/frontend/qtfront.cpp (+2/-1)
qt/frontend/qtfront.ui (+8/-5)
scripts/display_resource (+84/-0)
scripts/graphics_driver (+81/-50)
scripts/network_info (+15/-2)
scripts/network_wireless_test (+0/-25)
scripts/optical_write_test (+3/-4)
setup.py (+1/-1)
Changed in checkbox: | |
status: | In Progress → Fix Committed |
Changed in checkbox: | |
status: | Fix Committed → Fix Released |
The problem is that the get_dependencies method used to return all the dependencies from root node to current one. For example, this would be the list of dependencies for the optical/read_foo test created above:
['__optical__', 'optical/read', 'optical/read_foo']
Now, the same method only returns the dependencies from the previous node to the current one. For example, this is the list for the same test:
['optical/read', 'optical/read_foo']
Instead of fixing the resolver, at the risk of introducing a regression, the suites_prompt can be modified to recursively rebuild the dependencies all the way to the root.