= 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 * A mechanism for taking metadata provided by a package uploader and making it available to the Software Center application == 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 == We'll know we're done when * the Software Centre is able to browse available applications * the billing system is able to activate P3A subscriptions for users * the Software Centre can query existing subscriptions Ultimately though, the whole software center will be successful: * When a new Ubuntu user can buy an application, download it and use it. * When a user who has bought applications can re-install their computer and easily refetch their purchased applications == Thoughts? == == High-level work items == Can be broadly split into two separate pieces of work: 1. P3A webservice control 1. 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.