Build Service/Concepts/Maintenance
From openSUSE
Revision as of 19:16, 1 November 2009
This Concept is in Draft state and describes the mechanisms and osc usage for creating and submitting maintainance packages. Some of this is already implemented.
Maintainance packages are official package updates for a product, like openSUSE 11.2. Beside the usual packages in a repository, there is additional information needed. These additional information describes the set of packages and the problem it tries to solve.
This concept relies heavily on the lately implemented [Build_Service/Concepts/AttributeStorage|attribute system].
Contents |
What are maintained packages ?
Mark packages as maintained
The OBS shall know the currently official maintained packages. This happens by creating the "OBS:Maintained" attribute. We set this currently only in the projects openSUSE:11.0, openSUSE:11.1 and openSUSE:11.2 and their :NonFree pendants. This means all packages inside of them are maintained. But we could also set single ones in any other package sources.
Find maintained packages
The frontend search by attribute function allows use to search for maintained packages fast. The XPath "attribute/@name='OBS:Maintained'" search term may be used together with a package source name to find all package instances in all projects.
The osc command
# osc maintained <PACKAGE>
is aimed to do this. An alternative search method is
# osc search --package <PACKAGE> --exact --limit-to-attribute='OBS:Maintained' --bugowner libqt4
Create your branch project to prepare your submission
The api allows to create one branch project, which hosts all instances of one or multiple packages for one or multiple projects (aka distributions). The api call to do this is:
-X POST https://api.opensuse.org/source?cmd=branch&package=glibc&attribute="OBS:Maintained"
The api call can be extended with a "target_project=..." parameter, if you want to prepare multiple package sources in one project for one submission. For example binutils and gcc, because a problem needs fixes in both package sources.
Of course there will be an easier osc command for this:
osc mbranch glibc
Submit your maintainence update
Write your patchinfo informations
The OBS can't take 100% over the writing of patchinfo informations, but it can help. After having all packages successfully building, please call
osc patchinfo -e
It requests a patchinfo file template from the server. The server extends informations inside of it already with all informations it has. After editing it, it will be stored in _patchinfo package and can get submitted.
Submit your changes
A usual osc submitrequest call is used for submitting your changes. It is currently undecided if osc will create multiple or one submitrequest call.
Sample workflow
Simple Case
A update for a single packages, lets say glibc.
osc mbranch --checkout glibc ... fix your packages, build them all and hopefully you test them also :) osc patchinfo -e osc sr
done. So these are three simple steps and afterwards you have submitted your packages for all distros.

