Build Service/Roadmap
From openSUSE
Contents |
The openSUSE Build Service development team roadmap
This is the current plan what will be done by the current build service development team. Please understand the dates as target estimations, but not as guaranteed dates. Some functionality might arrive earlier, while other features may need some more time.
We are also to happy to help anyone to start working on any of these functionalities, if you would like to see it earlier available. Please drop a mail in that case to mailto:opensuse-buildservice@opensuse.org (preferred) or a private mail if needed to mailto:adrian@suse.de .
The roadmap covers the next year and has the following important milestones, which are explained in more detail below.
Milestone Poinsettia (Version 0.5), end of 2007
This milestone collects a number of urgent needed implementations to increase the stability of our service. This is esp. needed because openSUSE 10.3 makes more use of the OBS services.
The following items are missing features or bugfixes which are causing the most trouble currently.
- Improved repository generation. The repositories get generated out of process of the scheduler. This makes the scheduler faster and more reliable. (Status: done)
- Improved signing for repositories. Each project will get its individual gpg key for the repositories. So it will become possible to distinguish between the projects for increasing security and trust aspects. (Status: done)
- Implement convenient project deletion. Make the api call for project deletion work completely, also removing repositories on the public servers. (Status: done)
- Bugzilla linkage. Add a link to create new Bugzilla reports for certain projects or packages. We need to use iChain email addresses for this first. (Status: done)
- Improve statistic collection performance. We do not update the download statistics data because of performance problems atm. A small redesign is needed to get this performing better. ( Status: WIP )
- Stabelize code. Stabelize esp. the backend code and make it more robust against bugs or hardware problems.
Milestone Crocus (Version 0.9), April 2008
This milestone brings the implementation to provide code changes for non-writable projects via branching and submitting the change. In addition, the Inter Build Service connectivity will allow an easy setup of an own instance and in addition also to grow the Build Service instances to a connected world wide network.
- Submit request mechanism. In case the user has no direct write premissions for the package, a way to request a merge of the owner of the package is needed. This is basically the way autobuild submissions work right now with a different implementation (not suitable for externals) and this is needed to keep certifications like EAL. This should not be limited to package source changes, but also work for pattern, image configuration and even project/package meta data changes. (done)
- Creating interface for viewing existing submit requests and select them. Also refusal reasons should be possible to state. (done)
- Submission handling. For accepting and doing a merge, additionally also for refusing a merge request with reason statement. (done)
- Inter build service connection functionality to connect multiple instances of the build service. We can grow a network of instances all over the world, which can reuse project resources from others directly. This increases the size of the system and makes it highly scalable. (done)
- Support the build of all current distribution packages. Multiarchitecture handling to reuse packages from other architecture and automated base libs package building. (done)
- Automated Image Creation. The Build Service will be able to build automatically images using KIWI descriptions. (done)
- Signing key handling. The OBS will handled different gpg keys per project. Keys can get reused from upper projects and offers an interface to create and delete them. (done).
- QEMU support in build script. The build script can be used to build packages on different hardware architectures. (done)
- Integrate rpmlint check support. For validating basic requirements for accepted packages in openSUSE distributions. (done)
Milestone Daffodil (Version 1.0), May 2008
Development of packages for openSUSE Factory distribution should be really transparent and should enable everybody to join the development. It should be easy to make source submissions to any project, including openSUSE:Factory which is the base for the next upcoming openSUSE release.
We have to improve source handling in the Build Service for that. The goal is improve the code submission between projects. From now on it will be no difference anymore, if an external or internal community member (employee for internal case) does a submission to our distribution.
Real community development gets enabled by this, for next openSUSE distribution, for creating official updates for existing openSUSE releases or any OBS project in general.
The Factory tree will be built within the OBS from now on, this will require also some cleanup inside of our distribution.
Another important plan is to allow other Build Service instances hosted somewhere to reuse resources from the opensuse.org instance.
Details:
- enable openSUSE:Factory contributions. The OBS running at opensuse.org will be enabled to accept contributions for openSUSE:Factory.
- Easy patch generation (branching) of existing packages. This means a user should be able to just start working on any package, but the tools will store only the difference in his own project over the link to the original package. (Status: design exists, partly implemented)
- Factory ftp tree generation. Build the official FTP tree of openSUSE:Factory with the OBS. (WIP)
- "Devel Project" support. Packages, esp in openSUSE:Factory can define in which other project they get developed for participation. This was known as "maintainedin" feature before. (WIP)
- Basic quota handling. Default and individual repository size quotas, only configurable on the backend without api access. (Status: Design lacking)
- Automatic debuginfo generation. Backend creates debuginfo packages based on build flags.
- Automated Media Image builds. Images like the LiveCD isos get build automated within the OBS.
Milestone Aster (Version 1.5), Q3 2008
The End User interface got launched in an initial version. Future plans are to involve the end users more, to give them a feeling to be part of the openSUSE community. This can be done to allow simple contributions like comments or rating for certain software, but we should make it also easy to allow them real contributions, maybe just starting with package description changes. The Build Service developer interface should be only one click away ...
Features are collected at
http://en.opensuse.org/Build_Service/End_User_Frontend
Milestone Hippeastrum (Version 2.0), Q4 2008
Getting the openSUSE distribution built and released in the openSUSE Build Service.
The major goal is to use the packages build from the OBS to master the distribution. This requires work on the imaging technology, but also on the infrastructure to support maintenance updates later on. A real community involvement for providing official updates for released distributions will be possible from now on.
This is needed to fulfill our promise to make openSUSE a real open source project. It is also needed to make our process transparent, so that developers get direct feedback and can join also our core development.
We have the chance to get lots of distro variations based on openSUSE distro, if we can make this easy doable at "home". An openSUSE fork distribution policy is needed for this as well to handle esp trademark issues.

