What is a spec and how do I write one?

A spec (specification) is a clear description of an issue you are trying to solve, how a solution for this would benefit Linaro and how you plan to solve it. It usually follows a standard template borrowed from the Ubuntu wiki. The SpecTemplate has more information on the template and its contents.

On top, in order to help the linaro platform team, each spec of the working group should explicitly list its platform requirements. This includes software produced as part of a spec for showcasing and contiuous integration/validation as well as development and test tools required for delivering the spec; this info will then be used to assemble special WG images that contain all the important bits on a daily basis.

It is expected that the spec will remain more or less unchanged during the course of the cycle. Contrast this with the blueprint page that will be constantly updated as the work progresses.

Where should I put my spec?

The placement of your spec depends on what area you work in:


URL Base





Graphics WG




Kernel WG


Multimedia WG




Power Management WG


Toolchain WG




OCTO - Office of CTO


What should I put in a blueprint?

The blueprint should contain a short description of what you are trying to achieve and a link to the more verbose spec that is associated with it. The blueprint whiteboard area should contain the work items for this blueprint.

Work items are small (both time- and effort-wise eg 2 days work) and independent work units that are used to better organize the work required for implementing a blueprint.

They are normally "extracted" from the implementation part of the spec.

Automated tools periodically scan the the work items of all linaro specs and produce reports and burn-down charts to help track blueprint progress.

For more information see: Process/Blueprints

What is the format of the work items in the blueprint whiteboard?

A work item consists of a single line description of the item followed by ':' and the work item status. Valid status strings are TODO, INPROGRESS, POSTPONE, BLOCKED and DONE.

For example:

Package a build of Mesa with EGL/OpenGL support: DONE

Work items are grouped together according to the milestone they are targeted at. Each group starts with a header string (discussed below) and is directly followed by lines containing work items. An empty line marks the end of the group. The header string can either be Work items: which targets items against the default milestone (the one in the blueprint) or Work items (milestone): to target items against a different milestone.

A typical situation is:

Work items (11.06):
Do task B: DONE

Work items (11.07):
Do task C: TODO
Do task D: TODO

Work items (11.08):
Do task A: TODO
Do task B: TODO

Work items:
Do task X: TODO
Do task Y: TODO

For more information see: Process/WorkItemsHowto

What are the valid milestones for the work items?

Working Groups with a monthly release cycle use milestones of the form: 11.06, 11.07, 11.08, 11.09, 11.10, 11.11

How do I assign work items to other people?

By default all work items belong to the assignee of a blueprint. To assign a work item to another person prefix it with "[launchpad-id]":

[mr.foo] Organize party: TODO


Resources/HowTo/BlueprintSpecFAQ (last modified 2011-05-27 13:51:27)