Size: 3634
Comment:
|
Size: 3636
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 53: | Line 53: |
1. P3A webservice control 2. Acquiring additional meta-data and publishing thereof |
1. P3A webservice control 1. Acquiring additional meta-data and publishing thereof |
Ubuntu Software Center Support In Launchpad
Launchpad will support the Software Center by maintaining a registry of pay-for applications and providing an API to manage private PPA subscriptions.
As an Ubuntu user
I want to browse pay-for software
so that I can buy cool new applications
As an Ubuntu user
I want to browse browse my existing Software Center subscriptions
so that I can see which software I've already bought
Rationale
The Ubuntu Platform Team has a target of selling something through the Software Center in Maverick 10.10.
This feature does not directly benefit Launchpad users in general. It is rather a change to Launchpad to facilitate improving Ubuntu.
Stakeholders
- Ubuntu Platform Team
Constraints
- A webservice API for getting the list of applications that the user has bought, accessible from anywhere in the world
- A webservice API for giving a user access to an application, accessible from the Canonical data centre
XXX: We need to add some kind of performance / reliability constraint here.
Workflows
See the workflows here: https://wiki.canonical.com/Ubuntu/SoftwareCenter/10.10/Roadmap
The only probable UI change is something on the PPA admin form to mark a PPA as commercial for use in the Software Centre, so there's no point doing mockups here.
Success
How will we know when we are done?
- When the Software Centre is able to browse available applications
- When the billing system is able to activate P3A subscriptions for users
- When the Software Centre can query existing subscriptions
- When a new Ubuntu user can buy an application, download it and use it.
Thoughts?
High-level work items
Can be broadly split into two separate pieces of work:
- P3A webservice control
- Acquiring additional meta-data and publishing thereof
P3A webservice
We need to be able to:
Query existing P3As that the user has access to
This is already done in that we have something that returns all sources.list entries for a person's subscribed P3As.
- The billing system will act on behalf of the P3A owner to add a new subscription for the user
- It will then claim the "token" for the user and return a sources.list entry to the Software Centre
Note:
The SC client will have some way of doing authentication with no web popup. It will talk to the billing system in the data centre, which should have a celeb user in LP that can activate new subscriptions *only* on P3As that are flagged as "commercial".
PPA meta-data
- Meta-data will be files that are uploaded with the source package, akin to the existing custom upload features Soyuz has. These files will be published somewhere that the SC can download them with regards to the fact that the private P3A repo is protected by HTTP basic auth.
Distinguish between commercial (software centre) P3As and general P3As (schema change on IArchive).
- Define new custom file types for meta-data and icons.
- The PPA source file expiration needs to be extended to cover custom file uploads.
Note:
- The format of the meta-data file is not an issue for Soyuz because it won't parse it. The file is simply copied to a file area when it gets uploaded, however it will live in the librarian for the life of the package.
- One of the custom files will be the application icon.
- We need a way of referring to an existing custom file to avoid re-uploading them unnecessarily.