Scopes backend for 13.10

Registered by Thomas Strehl

This blueprint outlines the work necessary to bring new scopes architecture (aka 100 scopes) to phablet in 13.10 time frame.

Main target for 13.10 is ensuring scopes working efficiently on phone, meaning optimizing the memory consumption, invocation of scopes (caching) and general life cycle management. When it comes to scopes we expect to include more of 100 scopes (or adding those to server) and adding two new master scopes primarily targeted for phone, the places and scope scope. The places scopes collects data related to a or the current location, like weather or yelp. The scopes scope retrieves information about currently installed/used and other available scopes.

For phone we aim to initially have four master scopes: home, app, music and places.

The other bigger item is about customization of dash and queried scopes. So, this is about allowing consumers to add/remove scopes from phone as well as pinning favorite categories in home scope. Analogously, enabling packagers (or operators) to add/remove (master) scopes for differentiation.

Blueprint information

Not started
Thomas Strehl
Needs approval
Michal Hruby
Series goal:
Accepted for saucy
Milestone target:

Related branches



TODO items:
* ensure i18n works

From Shell Requirements:
* per-row events (add, move, remove, change) rather than clear and populate the model again
* preview actions with arguments (phone number for "call" action etc.)
* sorting (via filters?)
* result count per-category
* per-category result limit
* separate models for surfacing and search?
* arbitrary number of categories per-scope in home


Work Items

Work items for ubuntu-13.05:
[stolowski] Port phablet tree to new UnityCore: DONE
[jamesh] Ensure app scope work on phone: DONE

Work items for ubuntu-13.06:
[stolowski] Port unity-lens-mock to new scopes API: DONE
[stolowski] Implement QML bindings for previews and activation: DONE
[stolowski] Full test coverage of shell facing API, enable mocking for independent shell development: TODO
[mhr3] Make master scope definition and related scopes configurable: DONE
[mhr3] Optimize result model handling in unity8 (per-category models): DONE
[stolowski] Implement separate model for surface mode: POSTPONED
[jamesh] Ensure home scope works on phone: DONE
[jamesh] Implement dynamic loaders to allow better scope lifecycle management: DONE

Work items for ubuntu-13.07:
[mhr3] Incremental result set updates: DONE
[mhr3] Consolidate new category renderers APIs after design and shell input: DONE
[mhr3] Provide how-to for operators on customizing scopes: INPROGRESS
[mhr3] Verify public scopes APIs: TODO
[jamesh] Introduce optimized scope life cycle management: DONE
[jamesh] Investigate applications scope subscopes on various form-factors: DONE
[mhr3] Merge/finsih app scope: INPROGRESS
[jpakkane] Ensure media-scanner works on phone and package it: INPROGRESS
[jpakkane] Create new music scope using media-scanner, U1 music store and other relevant sources/categories according to design: INPROGRESS
[jpakkane] Create new video scope using media-scanner, gallery for surface mode and other relevant sources/categories according to design: TODO
[stolowski] Implement QML bindings for filters: DONE
[stolowski] Send vendor string to smart scopes server: DONE

Work items for ubuntu-13.08:
[stolowski] Code fully profilable with LTTng: TODO
[jamesh] Group scopes on phone: INPROGRESS
[jamesh] Define scopes groups for desktop: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.