CheckBox (based on PlainBox) in 14.04

Registered by Sylvain Pineau

We (the Hardware Certification Team) needs to deliver CheckBox improvements to Ubuntu. We need to ensure that PlainBox and the new PlainBox-based tools are properly packaged, can land in Ubuntu and can replace the old tools (where appropriate).
Finally we need an agreement about using dbus/c++ or PyQT for the client version.

Blueprint information

Status:
Complete
Approver:
Ara Pulido
Priority:
Undefined
Drafter:
Sylvain Pineau
Direction:
Approved
Assignee:
Sylvain Pineau
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Sylvain Pineau
Completed by
Sylvain Pineau

Related branches

Sprints

Whiteboard

ZK: I've added some work items below that end in PlainBox arriving in Ubuntu.
As a meta-work item we also need to add tasks that end in all the providers in Ubuntu and all the new CheckBox GUI ending up in Ubuntu. We've agreed (Ara, me) that we will use SEPARATE SOURCE PACKAGES so that we can freely upgrade any of the components of the new CheckBox stack without bundling that with upgrades to other parts. This has some implications on our monolithic, single-source-package development PPA but we can manage those.

SPI:Transitioning from CheckBox to PlainBox will result in a new packaging structure
(See https://docs.google.com/drawings/d/1PayxVkGOICZXlaaq1Cln0FcMW2LfiJOF-jTmIm6x79Q/edit?usp=sharing)
where providers will be a key element as since CheckBox exists tests (jobs and scripts)
were not separated from the pure python core.
For 14.04 candidates for Ubuntu are the plainbox core, the providers collection and
the different checkbox ui: cli and gui.

The command line interface will be based on checkbox-ng whereas the gui will use the Ubuntu ui-toolkit.

User stories proposal:

As a PlainBox developer I want plainbox tests not depending on checkbox-old so I can deliver a source distribution without any pieces of legacy checkbox
As a PlainBox developer I want to release a source distribution of PlainBox so I can start the inclusion process in the 14.04 archive
As a PlainBox developer I want PlainBox into universe so I can start the MIR process
As a PlainBox developer I want PlainBox in Main so I can still start CheckBox from a fresh Ubuntu installation

As a PlainBox developer I want to split the pool of checkbox jobs in to several providers so I can separate legacy tests and get a better dependency management
As a PlainBox developer I want the checkbox providers to include the necessary checkbox libraries so I can avoid depending on python3-checkbox
As a PlainBox developer I want to release a source distribution of PlainBox providers so I can start the inclusion process in the 14.04 archive
As a PlainBox developer I want PlainBox providers into universe so I can start the MIR process
As a PlainBox developer I want PlainBox providers in Main so I can still start CheckBox from a fresh Ubuntu installation

As a PlainBox developer I want to improve the C++/Dbus gui engine so I can query the service without any lags
As a PlainBox developer I want to release the gui code using the Ubuntu SDK to the checkbox-dev ppa so I can start getting feedback from the community
As a PlainBox developer I want to release a source distribution of Checkbox UI(s) so I can start the inclusion process in the 14.04 archive
As a PlainBox developer I want Checkbox UI(s) into universe so I can start the MIR process
As a PlainBox developer I want Checkbox UI(s) in Main so I can still start CheckBox from a fresh Ubuntu installation

As a downstream user I want a guide to migrate my tests to plainbox providers so I can continue my work

As a MOTU I want Plainbox to be proposed to Debian so I can get automatic sync to Ubuntu

Links:
https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages
https://wiki.ubuntu.com/MainInclusionProcess
https://wiki.ubuntu.com/UbuntuMainInclusionRequirements

(?)

Work Items

Work items:
[zyga] Fix outstanding plainbox bugs (finish multi-provider work): DONE
[zyga] Do preparations for plainbox source release: DONE
[zyga] Prepare Ubuntu 14.04 packaging for plainbox tarball: DONE
Figure out and follow the process to get plainbox into universe: DONE
Figure out and follow the process to get plainbox into main: DONE
Decide on where to put job providers support code (do we keep python3-checkbox or do something new that all providers depend on): DONE
Check if MIR has anything to do with feature freeze: DONE
Check who is using Go + DBus in production: POSTPONED
Check who is using Go + QML in production: POSTPONED
Consider removing ourselves from the CD seeds - CANCELLED: DONE
Organize the landing page of plainbox on readthedocs to describe the typical usecases: POSTPONED
Think about using askubuntu/Disqus to get feedback about our documentation: DONE