← Back to team overview

launchpad-dev team mailing list archive

Blueprint work items as first class objects, and a bit more

 

Hi there,

Most of you probably know that Linaro and Ubuntu would love to have a separate form for entering blueprint work items[1], with proper user input validation and all that, but unfortunately that's never been a priority so we're still abusing the whiteboard. That situation may be about to change...
In Linaro we've been discussing a new report that would show the 
upcoming work assigned to a given team, aggregating work items from 
blueprints and bugs (see the attached mockup for an example; just ignore 
the roadmap cards line at the top), but for that we do need to have work 
items as first class objects, as well as the history of changes made to 
them.
We believe doing it in Launchpad instead of 
launchpad-work-items-tracker[2] has many benefits (to ourselves and to 
other Launchpad users, who might find that kind of report useful), but 
just having work items as first class objects would make it possible to 
implement many other things (user input validation when 
creating/modifying them, ability to generate reports and see the 
progress of a blueprint, etc), so we'd like to know if this is something 
that would be accepted into Launchpad.
We have been thinking about a plan to migrate all work items from 
whiteboards into the new tables, as well as a UI which allows editing 
all work items at once, and we look forward to discussing that in more 
detail in case you think this report can be implemented in LP.
Oh, I'm also attaching the SQL for the new tables we think would be 
necessary for this.
[1] https://bugs.launchpad.net/launchpad/+bug/578263
[2] https://launchpad.net/launchpad-work-items-tracker

Cheers,

--
Guilherme Salgado <https://launchpad.net/~salgado>

Attachment: engineering-view-v3.png
Description: PNG image

-- Copyright 2012 Canonical Ltd.  This software is licensed under the
-- GNU Affero General Public License version 3 (see the file LICENSE).

SET client_min_messages=ERROR;

CREATE TABLE specificationworkitem (
    id SERIAL PRIMARY KEY,
    title text NOT NULL,
    specification integer NOT NULL REFERENCES specification,
    assignee integer REFERENCES person,
    milestone integer REFERENCES milestone,
    date_created timestamp without time zone DEFAULT 
        timezone('UTC'::text, now()) NOT NULL,
    status integer NOT NULL,
    deleted boolean NOT NULL DEFAULT FALSE);

CREATE TABLE specificationworkitemchange (
    id SERIAL PRIMARY KEY,
    work_item integer NOT NULL REFERENCES specificationworkitem,
    new_status integer NOT NULL,
    new_milestone integer REFERENCES milestone,
    new_assignee integer REFERENCES person,
    date date NOT NULL);

CREATE TABLE specificationworkitemstats (
    specification integer REFERENCES specification,
    date date NOT NULL,
    status integer NOT NULL,
    assignee integer REFERENCES person,
    milestone integer REFERENCES milestone,
    count integer NOT NULL);

-- TODO: Add security.cfg entries for the new tables
-- TODO: Add comments.sql entries for the new tables

-- FIXME: The patch number here is bogus.
INSERT INTO LaunchpadDatabaseRevision VALUES (2209, 13, 0);


Follow ups