VersionThreeDotO/Foundations

Not logged in - Log In / Register

Revision 30 as of 2009-02-26 17:14:13

Clear message

Priorities for the Foundations team

SP Track Feature Delivered
3 api Make API Cacheable 2.1.9
3 api Make API Cacheable - client side 2.1.9
1 ajax YUI Integration 2.1.10
5 ajax JavaScript Testing 2.1.10
5 ajax API JS Access 2.1.10
8 ajax Initial API JavaScript Library 2.1.10
8 infrastructure Zope 3.4 Upgrade 2.1.10
2 openid Login-freshness OpenID extension 2.1.11
2 api AJAX PATCH 2.1.11
1 openid Configure access to private teams in +rpconfig 2.1.11
3 ajax Prepopulating AJAX cache 2.2.1
3 api Entry ETag 2.1.12
8 intrastructure 5 minutes PQM merge 2.1.12
3 infrastructure EC2 Test Runner 2.1.12
1 ajax Lazr-JS Project Bootstrap 2.2.1
5 ajax Lazr-JS Reference Widget 2.1.12
2 ajax Lazr-JS Green Flash 2.1.12
3 infrastructure lazr.config 2.1.12
3 api Export mutators as writable attributes 2.1.12
3 openid SSO Authentication available during upgrade in-progress
3 infrastructure Buildbot EC2 Slave 2.2.1
5 ajax Lazr Error Widget no use case
3 ajax Inline text editing 2.2.2
? api API customized auto-generated adapter no use cases
? api Multi-hit API's no use cases
2 infrastructure Separate DB branch 2.2.2
1 ajax Yuitest3 2.2.1
3 api API: Notification of Server Changes on Update 2.2.2
3 openid Read-only Launchpad
5 openid Account Creation in-progress
? api API: HTML Representation 2.2.2
? ajax LAZR Popup 2.2.2
api Field Resource
api Field Resource Vocabulary
api Field Resource Vocabulary Search
ajax Inline status editing
infrastructure Merge EC2 latent slave upstream 2.2.1
infrastructure 5 minutes PQM for dependencies obsolete
8 infrastructure Use zc.buildout for deployment
5 ajax Inline multi-line editing
3 infrastructure Initial tree layout
? api API: Factory Optimization
2 infrastructure Sanitized DB Dump
openid UbuntuOne OpenID Server
ajax Inline autocomplete widget
3 infrastructure Continuous Integration of Dependencies
3 infrastructure Two-way buildbot communication
3 infrastructure ec2run
5 ajax Automatic JavaScript test running
openid Launchpad Uses UbuntuOne OpenID
openid Launchpad OpenID
infrastructure Support Privacy in Batch Navigator
infrastructure Security Cache API
infrastructure Page Inventory
13 infrastructure lazr.oops
3 api DELETE resource
1 api delete() method in launchpadlib
8 infrastructure Site-wide notifications
infrastructure XXX ZCML-less views (Martian integration)
infrastructure XXX Kill pagetitles.py
5 infrastructure Nominating spam by users
infrastructure XXX Update pagetests helpers to use lxml2
1 openid Export GPG keys through OpenId
infrastructure XXX Automatic decorator pattern (for performance)
infrastructure XXX Batch navigation to specific pages
infrastructure XXX Base tabular view
infrastructure XXX Librarian generation of OOPSes
infrastructure XXX Easily set up logging for scripts into a logfile
infrastructure XXX Include log information in OOPS reports
infrastructure XXX Include currently running queries in OOPS reports
infrastructure XXX Include machine process status in OOPS reports
infrastructure XXX Design for content class split into facets
infrastructure XXX Upgrade to Python 2.5
infrastructure Easy A-B Testing
20 api API Versioning
8 api Expose factory methods for scoped collections
5 api Expose factories as POST to collection
5 api Make it possible for the default GET on a collection to take optional arguments
infrastructure XXX lazr.testing.pages
infrastructure Spam control (via qualification mechanisms)
8 infrastructure Simple graphing/plotting framework
infrastructure LP Connection Limiting
infrastructure GPG-activated accounts
20 infrastructure Wiki markup engine
infrastructure Providing an API to update karma events with the object they operate on (Bug:ID, Branch:ID, etc)

User Stories

This section contains the story cards for the above.

AJAX Track

Inline status editing

Story Points:

As a Launchpad developer,
I want a way to associate an inline widget with the rendered element of a status field in view;
so that I can easily add inline editing to any enum field.

Notes:

Inline multi-line editing

Story Points: 5

As a Launchpad developer,
I want a way to associate an inline widget with the rendered element of a multi-line text field in view;
so that I can easily add inline editing to text field.

Notes:

Inline autocomplete widget

Story Points:

As a Launchpad developer,
I want a way to associate an inline widget with the rendered element of a vocabulary field in view;
so that I can easily add inline editing to any Choice field using a HugeVocabulary.

Automatic JavaScript test running

Story Points: 5

As a Launchpad developer,
I want my Javascript tests automatically run by PQM on merge;
so that I can prevent regressions in Javascript code.

Notes:

Widget Instrumentation API

Story Points:

As a Launchpad developer,
I want a standard API to record user behavior;
so that usability metric can be recorded for the widget I write.

API Track

API: Field Resource

Story Points:

As an AJAX webservice client,
I want to be able to retrieve the HTML representation of field of a resource;
so that I can selectively update a page content dynamically.

API: Field Resource Vocabulary

Story Points:

As a webservice client,
I want to be able to the valid values of field vocabulary;
so that I present the list of valid values to the client.

Story Points:

As a webservice client,
I want to be able to make queries on a field resource vocabulary;
so that I can present a search form to select valid values in an AJAX client.

API: Factory Optimization

Story Points:

As webservice client,
I want the server to send me the created object representation when I use a factory operation;
so that I don't have to make another request to retrieve the created object.

DELETE resource

Story Points: 3

As a developer,
I can annotate one of an interface's methods to be the method invoked when the client makes a DELETE request to the appropriate kind of resource;
so that the way to delete resources is consistent.

Notes:

delete() method in launchpadlib

Story Points: 1

As a launchpadlib user,
I can delete a resource by calling the delete() method on the appropriate object.

Notes:

Expose factory methods for scoped collections

Story Points: 8

As a developer,
I can annotate a method of an interface to be the method invoked when the client makes a POST request to a scoped collection;
so that the way to use a factory is consistent across resources.

Notes:

Expose factories as POST to collection

Story Points: 5

As a developer,
I can annotate one of a FooSet interface's methods to be the method invoked when the client makes a POST request;
so that the way to use a factory is consistent across resoureces.

Notes:

Make it possible for the default GET on a collection to take optional arguments

Story Points: 5

As a developer,
I want operation parameters to be supported in the default GET method for a collection;
so that users can use the same HTTP operation to retrieve all of the collection or a filtered subset.

Notes:

API Versioning

Story Points: 20

As a developer,
I want to be able to annotate certain aspects of the API as being removed from a particular version onward;
so that I can make backward incompatible change.

Notes:

{{{ @export_factory_method_as('new_team', version=3) def new_team_all(...): }}}

OpenID Track

SSO Authentication available during upgrade

Story Points: 3

As a Launchpad SSO user,
I want to be able to log in when Launchpad is going through maintenance;
so that my other services aren't affected by the monthly Launchpad down-time.

Account Creation

Story Points: 5

As a Landscape User,
when I registered an account on the SSO service, I don't want a Launchpad profile page created for me,
so that my anonimity is preserved.

Notes:

Read-only Launchpad

Story Points: 3

As a Launchpad user,
I want to be able to browse launchpad during an upgrade;
so that I can continue to read information.

Notes:

UbuntuOne OpenID Server

Story Points:

As a UbuntuOne manager,
I want to run a separate Launchpad OpenID server;
so that I can use OpenID for my applications using a consistent brand.

Launchpad Uses UbuntuOne OpenID

Story Points:

As a Canonical sysadmin,
I want Launchpad to use openid to authenticate its users through UbuntuOne;
so that there is a single authentication system in Canonical.

Launchpad OpenID

Story Points:

As a Launchpad user,
I want to be able to register OpenID accounts I own in Launchpad and uses it to log in Lauchpad for non-privileged operation;
so that I can uses Launchpad without having to create an account on UbuntuOne.

Export GPG keys through OpenId

Story Points: 1

As a relaying party,
I want to be able to retrieve GPG keys associated with the user during openid authentication;
so that I can pre-populate their account information.

Notes:

Infrastructure Track

Use zc.buildout for deployment

Story Points: 8

As a Launchpad developer,
I want to be able to add a CheeseShop python library by adding a simple dependency to our configuration;
so that I can use and deploy easily non-packaged python library without involving IS.

Notes:

Initial Tree layout improvements

Story Points: 3

As a Launchpad developer,
I want to be able to find the files related to a particular application in a common directory;
so that I can easily see the boundaries of each application.

Notes:

ec2run

Story Points: 3

As a Launchpad developer,
I want a script that will fire an EC2 instance with a running instance of Launchpad based on a specified branch;
so that reviewers can preview the branch without downloading the branch.

Notes:

Sanitized DB Dump

Story Points: 2

As a Launchpad developer,
I want a sanitized production DB dump available;
so that I can preview my branches using real-world data and do more sensible performance testing.

Notes:

Two-way buildbot communication

Story Points: 3

As a LOSA,
I want the buildbot slave to accept connection from the master instead of contacting the master;
so that the network rules are safer to configure.

lazr.webservice

Story Points: 13

As BIS developer,
I want to download lazr.webservice from the Cheeseshop;
so that I can add easily a REST webservice to my Zope application.

Notes:

lazr.oops

Story Points: 13

As python web developer,
I want to download lazr.oops from the Cheeseshop;
so that I can have detailed diagnostic reports of problems on my web application.

Notes:

Support Privacy in Batch Navigator

Story Points:

As a Launchpad developer,
I want the BatchNavigator to filter out objects that the user doesn't have permission to;
so that it gives a coherent view of the set and that I don't have to filter out the objects in the view.

Notes:

Security Cache API

Story Points:

As a Launchpad developer,
I want an API to declare to the security policy that the user has a specific permission on a set of objects;
so that it doesn't need to check for the permission again and improve performance.

Notes:

Page Inventory

Story Points:

As a Launchpad developer,
I want an automatic inventory of the pages published by Launchpad;
so that I can track pages that needs updating or that I want to get rid of.

Site-wide notifications

Story Points: 8

As a Launchpad administrator,
I want to be able to post notifications to users that they will see on every page and can acknowledge;
so that I can announce downtime and other general service-related announcement.

Notes:

Simple graphing/plotting framework

Story Points: 8

As a mailing list user,
I want to see the number of mailing list posts over time in a graph;
so that I can have an idea of the number of emails I might get when subscribing to the list.

Notes:

Wiki markup engine

Story Points: 20

As a Launchpad user,
I want to be able to enter wiki-like syntax to have rich-text formatting in project description (as well as bug, questions, and comments);
So that I can use typography to convey emphasis and format code-samples properly

Notes:

Nominating spam by users

Story Points: 5

As a Launchpad user,
I want to be able to report any user-editable content as SPAM;
so that Launchpad admins can remove it.

Notes:

Spam control (via qualification mechanisms)

Story Points: ??

As Launchpad,
I ask every new non-qualified users to enter a captcha on every form;
so that robots cannot post SPAM automatically.

Notes:

LP Connection Limiting

Story Points: ??

As a XXX,
I want XXX;
so that XXX.

Notes:

GPG-activated accounts

Story Points: ??

As a XXX,
I want XXX;
so that XXX.

Notes:

Easy A-B Testing

Story Points:

As a launchpad developer,
I want to be able to configure two different views to be served from the same URL, each user receiving a random one;
so that I can easily do A-B testing.

Notes: