← 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