8539
Comment:
|
13064
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.