LEP/PackagingService

Not logged in - Log In / Register

Packaging Service

The packaging service would aid developers in creating the packaging for their project, such that they could get it in to a PPA for distribution to users.

Contact: JamesWestby
On Launchpad: Nothing yet

As a software developer
I want package my software
so that Ubuntu users can more easily install it

This is not about getting the package in to Ubuntu, or even generating packaging that would be suitable for that. It is about going from the unpackaged code to a package in a PPA.

Link this from LEP

Rationale

Launchpad is a great codehosting platform and provides PPAs, which are a great way to distribute software. Recipes have bought these two domains closer together, allowing PPA packages to be built from branches by Launchpad. However that still relies on someone creating the packaging files for the project. This step is seen as a significant hurdle to many developers, and is currently often handled by people familiar with packaging, requiring co-ordination.

Making is easy for project authors to create the packaging and get their project in a PPA will mean that it is easier for them to distribute it to Ubuntu users, and take care of one step in the process of getting the project in to the software center.

Stakeholders

Constraints and Requirements

Must

Nice to have

Must not

Out of scope

Workflows

Project owner packaging their project

The owner of an unpackaged project goes to the project page on Launchpad. The panel which shows links to Ubuntu packages cannot show such a link, so it offers to create the link. There is an option to specify that the project is not packaged. If there are no recipes for any branches of the project (trunk of the project?), and the trunk (no branches?) does not contain any packaging files, then there is an additional link alongside this option with the text "(package this project)" (text?)

package-this-link.png

(Should this be the owner, or anyone, or anyone that owns a branch in the project?)

If the trunk contains packaging files, but there are no recipes (and no packages in PPAs?) then there should be a link to create a recipe and trigger it to build in to a PPA(?).

Branch owner packaging a branch

Any branch that does not have any packaging files and has no associated recipe can also have a link on it to package it.

(Should there be a link for recipes and a link for packaging, or one link with a later choice between simply creating a recipe using another packaging branch and creating the packaging files?)

TODO: mockup

Creating the packaging

When the user triggers the start of the process they enter a series of pages that lead them through this process.

Firstly they are presented a page that explains the process, tells them that all changes are reversible, explains that the process will take some time, and asks them if they would like to proceed.

confirmation-scren.png

(This should be more fun. It should also tell them more about what to expect. Perhaps even making it more like a tour would be good)

If the user cancels they are returned to the previous page.

If they choose to continue then they are shown a page with a progress bar that updates as parts of the process complete. (Should this start to show artefacts that are being produced, e.g. embedding an MP showing the packaging that is added?)

If the process is completely successful then they are redirected to the PPA that the package was built in, with the package highlighted. (should they go to a page specific to this process so that they can deal with the other artefacts too?) Wherever they end up there should be instructions for them to try out their package (or that they can pass on to others to try.)

If there is an error at any stage of the process then they will be shown a page that details the error and instructs the user how to make changes and restart the process. The user is able to restart the process from the appropriate point from the page itself as well. (This will be tricky to make as useful as we would want.)

(What names do we want to give the created branch, PPA, etc?)

Success

How will we know when we are done?

How will we measure how well we have done?

Thoughts?

Put everything else here. Better out than in.

This doesn't yet say anything about how all this will be achieved.

LEP/PackagingService (last edited 2011-01-17 23:13:27 by james-w)