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:

Team

URL Base

Android

Platform/Android/Specs

DevPlatform

Platform/DevPlatform/Specs

Graphics WG

WorkingGroups/Middleware/Graphics/Specs

Infrastructure

Platform/Infrastructure/Specs

Kernel WG

WorkingGroups/Kernel/Specs

Multimedia WG

WorkingGroups/Middleware/Multimedia/Specs

Platform

Platform/Specs

Power Management WG

WorkingGroups/PowerManagement/Specs

Toolchain WG

WorkingGroups/ToolChain/Specs

Validation

Platform/Validation/Specs

OCTO - Office of CTO

OfficeofCTO/Specs

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 A: INPROGRESS
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


CategoryHowTo

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