Diff for "VersionThreeDotO/Foundations/Delivered"

Not logged in - Log In / Register

Differences between revisions 7 and 8
Revision 7 as of 2009-02-01 13:21:25
Size: 8539
Editor: flacoste
Comment:
Revision 8 as of 2009-02-25 20:30:43
Size: 13064
Editor: flacoste
Comment: Updated for 2.2.2
Deletions are marked like this. Additions are marked like this.
Line 79: Line 79:
<<Anchor(multi-hit-api)>>
=== Multi-Hit API ===

  **Story Points:**
  **Delivered:** Dropped during 2.2.1 because of no use cases

  As a webservice client,\\
  I want to be able to invoke a particular named operation or setting an
  attribute to a certain value on a set of objects;\\
  so that mass-change operation can be done efficiently.

  **Notes:**

<<Anchor(api-notification-of-server-changes-on-update)>>
=== API: Notification of Server Changes on Update ====

  **Story Points:** 3\\
  **Delivered:** 2.2.2

  As a Launchpad web service client,\\
  I want that when I do a PATCH or PUT request, the server notifies me when
  the data I specified was modified by the server;\\
  so that I don't have to make a separate GET request to update my local copy
  of the object.

  **Notes**:
   * Send updated version on failed conditional get.
   * Always send the representation back.


<<Anchor(api-html-representation)>>
=== API: HTML Representation ====

  **Story Points:**
  **Delivered:** 2.2.2

  As an AJAX client,\\
  I want to be able to specify in my request that I want an HTML rendition
  of the object I'm retrieving;\\
  so that I can update the page without having to make a separate request to a
  special fragment view.

  **Notes:**
    * Use a view lookup to find the rendition.
    * Should be available on update results also.
    * Available on collection and operation.
Line 209: Line 256:
<<Anchor(yuitest3)>>
=== Yuitest3 ===

  **Story Points:** 1
  **Delivered:** 2.2.1

  As a LAZR-JS developer,\\
  I want the Lazr-JS test suite to use the latest release of YUITest;\\
  so that I can use Mock objects in my unit tests.
Line 224: Line 281:
<<Anchor(inline-text-editing)>>
=== Inline text editing ===

  **Story Points:** 3
  **Delivered:** 2.2.2

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

  **Notes:**

    {{{
    view/bug_title_inlinet_widget
    bug_title_inline_widget = InlineTextWidget(self.context, 'title')
}}}

<<Anchor(lazr-popup)>>
=== LAZR Popup ===

  **Story Points:**
  **Delivered:** 2.2.2

  As a Launchpad developer,\\
  I want a pop-up widget in which I can add custom code;\\
  so that I have a common look and feel across all pop-up widgets.

  **Notes:**
   * Done during the Lazr-JS February sprint.

Line 271: Line 360:
  **Story Points:** 8   **Story Points:** 8\\
  **Delivered:** 2.1.12
Line 281: Line 371:

<<Anchor(buildbot-ec2slave)>>
=== Buildbot EC2 Slave ===

  **Story Points:** 5\\
  **Delivered:** 2.2.1

  As a LOSA,\\
  I want to deploy buildbot using on-demand slave running on EC2;
  so that we can host the 5-minutes-PQM infrastructure withing the
  data center.

  **Notes:**
    * Deploy on devpad running slave on demand in ec2.


<<Anchor(merge-ec2-latent-slave-upstream)>>
=== Merge EC2 latent slave upstream ===

  **Story Points:** ??
\
  **Delivered:** 2.2.1

  As a Launchpad developer,\\
  I want our ec2 latent slave code merged upstream;\\
  so that it can be maintained by the community.


<<Anchor(separate-db-branch)>>
=== Separate DB branch ===

  **Story Points:** 2\\
  **Delivered:** 2.2.2

  As the Launchpad release manager,\\
  I want features requiring DB changes to be landed on a separate branch;\\
  so that we can land DB-related changes earlier in the cycle and also keep edge updated during the whole cycle.

  **Notes:**
    * Pre-supposes the buildbot integration system.
    * Maintain the staging/rollout branch automatically (merging trunk in the DB branch).

<<Anchor(5-minutes-PQM-for-dependencies)>>
=== 5 minutes PQM for dependencies ===

  **Story Points:** ??
  **Delivered:** Dropped 2.2.2 because would be obsolete with zc.buildout

  As a Launchpad developer,\\
  I want all changes I make to LP dependant branches be merged without PQM running tests;\\
  so that changes to LP dependancies can be integrated as fast as changes to Launchpad itself.
Line 307: Line 449:

<<Anchor(continuous-integration-of-dependencies)>>
=== Continuous Integration of Dependencies ===

  **Story Points:** 3\\
  **Delivered:** 2.2.2

  As the Launchpad release manager,\\
  I want to have automatic regular test run of Launchpad against updated version of our dependencies;\\
  so that we can anticipate problems with newer upstream versions.

  **Notes:**
    * Pre-supposes the buildbot integration system.
    * Will be used for bzr, maybe twisted.

User Stories Delivered

API Track

Make API Cacheable

Story Points: 3
Delivered: 2.1.9

As a web service client,
I get a Last-Modified date with each representation I request. I can use that data later on to make conditional GET, PUT, or PATCH requests.
We do this because conditional GET saves bandwidth and often time, and conditional PUT/PATCH prevents clients from overwriting each others' work.

Notes:

  • Modify launchpadlib to use the new headers
  • Store Last-Modified
  • Calculate the headers for objects. No Last-Modified for collections.

Make API Cacheable - client side

Story Points: 3
Delivered: 2.1.9

As a launchpadlib user,
ll GET requests I send have their Last-Modified headers stored for later. Subsequent GET or PATCH requests are made conditional using the stored value.

API customized auto-generated adapter

Story Points: ?
Bug: #294858.

As a Launchpad developer,
I want to be able to customize the IEntry and ICollection adapters generated automatically by the annotations,
so that webservice-specific optimization might be made, while retaining the convenience of the annotated API.

Notes:

No real use cases was found for this feature.

Entry ETag

Story Points: 3
Delivered: 2.1.12 Bug: 273176

As a Launchpad web service client,
I want to see an entry's ETag in the representation of the entry itself;
so I can make conditional requests on objects that weren't obtained through an individual HTTP request.

Export mutators as writable attributes

Story Points: 3
Delivered: 2.1.12

As a developer,
I can annotate one of an interface's methods to be the method invoked when the client makes a PUT or PATCH request that modifies the value of a particular field;
so that the interface to modify most attributes is consistent.

Multi-Hit API

Story Points: Delivered: Dropped during 2.2.1 because of no use cases

As a webservice client,
I want to be able to invoke a particular named operation or setting an attribute to a certain value on a set of objects;
so that mass-change operation can be done efficiently.

Notes:

API: Notification of Server Changes on Update

Story Points: 3
Delivered: 2.2.2

As a Launchpad web service client,
I want that when I do a PATCH or PUT request, the server notifies me when the data I specified was modified by the server;
so that I don't have to make a separate GET request to update my local copy of the object.

Notes:

  • Send updated version on failed conditional get.
  • Always send the representation back.

API: HTML Representation

Story Points: Delivered: 2.2.2

As an AJAX client,
I want to be able to specify in my request that I want an HTML rendition of the object I'm retrieving;
so that I can update the page without having to make a separate request to a special fragment view.

Notes:

  • Use a view lookup to find the rendition.
  • Should be available on update results also.
  • Available on collection and operation.

AJAX Track

YUI Integration

Story Points: 1
Delivered: 2.1.10

As a Launchpad developer, I want to be able to use YUI from a page template, so that I can do cool UI.

Notes:

  • Build/Package YUI files
  • Add to main template, with switch for dev mode.

JavaScript Testing

Story Points: 5
Delivered: 2.1.10

As a Launchpad developer, I want to write a tests for my Javascript, be able to run it locally from the command line; so that I can detect regressions in Javascript code.

Notes:

  • Create YUI 2.5.2 bundle
  • Server the bundle from icing
  • Hook the window fire-up and results reading from test.py or make?
  • Presumed Rhino and Doh can do it (Dojo)

API JS Access

Story Points: 5
Delivered: 2.1.10

As a Launchpad developer, I want to be able to use the Launchpad web service API from JavaScript, so that I can use the standard API to manipulate the content from the UI.

Notes:

  • Somehow call the WebService publisher and Request for different vhosts.
  • Support canonical_url for API objects on other hosts.
  • Add the cookie-based authentication to WebServicePublication.

Initial API JavaScript Library

Story Points: 8
Delivered: 2.1.10

As a Launchpad developer, I want a JS library available that allow me to easily make API call to the Launchpad web service, so that I can access the Launchpad object model without having to write custom XHR request and interpret the resulting JSON.

Notes:

AJAX PATCH

Story Points: 2
Delivered: 2.1.11
Bug: #29645

As a Launchpad programmer,
I want to make the equivalent of a PATCH request through Ajax;
so I can modify an object without having a representation of it.

LAZR-JS Green Flash

Story Points: 2
Delivered: 2.1.12

As a Canonical JS developer,
I want to be able to use a standard green flash animation for
when data has been saved successfully.

Lazr-JS Project Bootstrap

Story Points: 1
Delivered: 2.1.12

As a Launchpad developer,
I want to develop, test, and publish JavaScript widgets in the lazr-js project,
so I can share JS components with the rest of Canonical.

Lazr-JS Reference Widget

Story Points: 5 Delivered: 2.1.12

As a Canonical JS developer,
I want to have a reference implementation of a inline text editing widget;
so that I have an example on how to write widgets.

Lazr-JS Error Widget

Story Points: 5 Delivered: no use cases

As a Launchpad user,
I want AJAX errors to be reported to a single widget;
so that I can navigate and retry errors.

Notes:

  • See beuno's screenshot.
  • Must be available to all widgets.
  • Event-driven.
  • The use cases where such a widget would realy be useful weren't clear. Back to the design board.

Yuitest3

Story Points: 1 Delivered: 2.2.1

As a LAZR-JS developer,
I want the Lazr-JS test suite to use the latest release of YUITest;
so that I can use Mock objects in my unit tests.

Prepopulating AJAX cache

Story Points: 3
Delivered: 2.2.1 Bug: #296456

As a Launchpad programmer,
I want to be able to add objects in the view that will be available from within JavaScript;
so I can present that data or modify it without to have to make an HTTP request.

Inline text editing

Story Points: 3 Delivered: 2.2.2

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

Notes:

{{{ view/bug_title_inlinet_widget bug_title_inline_widget = InlineTextWidget(self.context, 'title') }}}

LAZR Popup

Story Points: Delivered: 2.2.2

As a Launchpad developer,
I want a pop-up widget in which I can add custom code;
so that I have a common look and feel across all pop-up widgets.

Notes:

  • Done during the Lazr-JS February sprint.

Infrastructure Track

Zope 3.4 Upgrade

Story Points: 8
Delivered: 2.1.10

As a Launchpad developer, I want to have zope 3.4 available in my tree, so that I can take advantage of the latest changes in it.

Notes:

EC2 Test Runner

Story Points: 3

As a Launchpad developer,
I want an easy way to run the test suite on EC2;
so that I can submit a branch to PQM with confidence that the test suite will pass.

lazr.config

Story Points: 3 Delivered: 2.1.12

As a python developer,
I want to download lazr.config from the Cheeseshop;
so that I can use it for process configuration in my project.

Notes:

  • Why not brand it as canonical? Find a top-level package name.
  • Missing some documentation.
  • Convert setup tools.
  • Reorganize project directory structure.
  • License? For all of lazr?

5 minutes PQM merge

Story Points: 8
Delivered: 2.1.12

As a Launchpad developer,
I want a continuous integration system that will notify me when a commit I made breaks the test suite;
so that I can merge to PQM without running tests.

Notes:

  • Need to deploy only known good branch.
  • Uses buildbot.

Buildbot EC2 Slave

Story Points: 5
Delivered: 2.2.1

As a LOSA,
I want to deploy buildbot using on-demand slave running on EC2; so that we can host the 5-minutes-PQM infrastructure withing the data center.

Notes:

  • Deploy on devpad running slave on demand in ec2.

Merge EC2 latent slave upstream

Story Points: ?? \ Delivered: 2.2.1

As a Launchpad developer,
I want our ec2 latent slave code merged upstream;
so that it can be maintained by the community.

Separate DB branch

Story Points: 2
Delivered: 2.2.2

As the Launchpad release manager,
I want features requiring DB changes to be landed on a separate branch;
so that we can land DB-related changes earlier in the cycle and also keep edge updated during the whole cycle.

Notes:

  • Pre-supposes the buildbot integration system.
  • Maintain the staging/rollout branch automatically (merging trunk in the DB branch).

5 minutes PQM for dependencies

Story Points: ?? Delivered: Dropped 2.2.2 because would be obsolete with zc.buildout

As a Launchpad developer,
I want all changes I make to LP dependant branches be merged without PQM running tests;
so that changes to LP dependancies can be integrated as fast as changes to Launchpad itself.

OpenID Track

Login-freshness OpenID extension

Story Points: 2
Delivered: 2.1.11

As a Relying Party,
I want to specify the maximum time since the user entered his password on the Launchpad OpenID Provider,
so that I can minimize the possibility of somebody just reusing an already authenticated session.

Configure access to private teams in +rpconfig

Story Points: 1
Bug: #192867

As a Launchpad administrator,
I want to be able to configure if a trust root can query private
team memberships, so that we can offer the team membership functionality
to arbitrary RP.

Continuous Integration of Dependencies

Story Points: 3
Delivered: 2.2.2

As the Launchpad release manager,
I want to have automatic regular test run of Launchpad against updated version of our dependencies;
so that we can anticipate problems with newer upstream versions.

Notes:

  • Pre-supposes the buildbot integration system.
  • Will be used for bzr, maybe twisted.

VersionThreeDotO/Foundations/Delivered (last edited 2009-04-21 13:20:28 by flacoste)