OpenSuse Build Service/Application QA Process

Contents

Application QA Process Goals

  • to allow freedom for developers to develop;
  • to provide a build service and SDK
  • to provide excellent quality assured applications for our "app store";

Individual Homes and PPAs

You'll start by uploading and building a package in your "home" directory (which can have a structure underneath it for multiple projects). This will allow you to build against any of the main distros; any group/community projects or even any other community member home projects. Oh, and they can use your code as a baseline too. Once built your code is automatically published to a repo on the community downloads server.

This is a lot like the Ubuntu PPA solution.

At that point you can stop if you want. You have a complete set of repositories (1/subproject). No painful QA processes. No 'fragmentation'. But equally your repo(s) will needed to be manually added to a device in order for it to appear in any apt-get/zypper/yum etc.


A huge benefit here is that to get at a development version of an application you use a specific repository, not a mishmash of randomly unstable packages like Extras-devel.


Community QA'ed Repository - Extras

If you'd like your application to appear in the Extras repo which is pre-installed on devices then you can submit to the QA process.


First you register for the package name (a thought occurs... should this namespace be the same as the distro package namespace?), then submit your code to the distro promoter; there it is QA checked, copied to Extras:Testing, built, QA'ed again and becomes available in the Testing repository.


<here be dragons> The community testers then approve your code. </dragons>


Once approved the code is built or copied to the Extras:Stable repository a final time.

This may be done using a single Extras:Testing project with multiple build targets or a suite:

Extras:MeeGo:name-number
Extras:Maemo:Fremantle
Extras:Maemo:Harmattan


General Building

First off we need to build against releases of vanilla distros; these all support both i586 & arm :

MeeGo:name-number
Maemo:Fremantle
Maemo:Harmattan

I anticipate that there will be a community library around MeeGo (like MUD for Maemo or Universe for Ubuntu). These would cover that:

Surrounds:MeeGo:name-number
Surrounds:Maemo:Fremantle
Surrounds:Maemo:Harmattan

(note that Surrounds is 'just' another top-level project...

Or, for more platform oriented users we may need to build against bleeding edge codesets:

MeeGo:Trunk
MeeGo:snap:latest
MeeGo:snap:w13
Maemo:Harmattan:alpha1