Implementing new apps post release

There are two separate blueprints for this feature:

Scope

The scope of the feature is to deliver new application to end users with minimal risk of regression. To minimize the risk of regression all new new application are reviewed by a team of reviewers to ensure the packaging is ok and to do checks of the source (similar to what is done for a MIR). Given that the ubuntu-backports project has a similar goal and scope (with a slightly different focus) it makes sense to work closely together or even have the same reviewer team for both.

To prevent breaking existing functionality only new applications (leaf-node apps) are allowed into the repository, no backports of system libraries, drivers, kernels etc. If the later is required the backports component is more suitable.

Stability is key because we want this feature to be enabled by default so that new applications can show up in software-center.

Implementation

The scope of this feature is similar to the backports project. There is a important difference however. Backports can have anything backported (including system libs and existing packages), not just leaf-node applications.

There are different way of implementing this feature:

Using backports

Just using the backports pocket is a simple way to enable this feature. It would mean that we need to enable -backports for all users (to satisfy the goal that they show up in software-center). To do this we need to use the "NotAutomatic: yes" flag for -backports or use apt pinning to ensure that for existing packages the version in -backports is not choosen by default. This is a useful for backports as well and a goal in the longer term.

Before this can be done we need to solve the following problems:

Using a PPA

Using a PPA is conceptually similar to using a new pocket. The advantage is that it does not need changes to soyuz. The disadvantage is that the PPA is not mirrored (and goes down when launchpad goes down for maintenance?) and the packages do not get a bugpage in LP automatically (like they do when a pocket is used). If that is not a concern a PPA is fine.

Using a new pocket

Using a new pocket eliminates most of the code changes needed outlined in the "Using backports" section (no need to modify update-manager, apt or synaptic to get better support for multiple versions).

All we need is some UI in software-center to highlight applications coming from the "-new-apps" pocket. For the other package management tools apps would automatically show up as "new" (in synaptic or aptitude). So they would get a certain level of exposure even from people who do not use software-center.

Enabling this new pocket by default is very little risk of regression as it will only get new packages. The worst that can happen (if the maintainer scripts are not broken and we check for file conflicts) is that the app will not install or work.

A new pocket needs communication with the mirror community to ensure they know about it. The ACL for uploading into -new-apps would be similar -backports.

Handling of updates

The policy of updates for -new-apps needs to be discussed. There are some options:

Option 3+4 sounds like a reasonable solution if we require a review process for each update and if a test install/upgrade is required as part of the review. The risk of regression is relatively low as only a single app can break (unless maintainer scripts go bad). The extra testing it gets from the PPA (option 4) is a bonus.

UI changes

The exact design will done by mpt. There needs to be some UI that highlights new applications so that we show the user that the content stays fresh. It can be a new category, a special place in the main category screen or a side panel.

The goal is to generate excitement, similar to ratings and reviews

QA

Good QA is key. Use the tools we have to ensure it:

Open questions

Risks

Notes

Workflow

POR

PostReleaseApps/Implementation (last edited 2010-06-07 10:57:25 by p5B09D924)