openSUSE:Build Service Roadmap
The Open Build Service development 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:firstname.lastname@example.org.
The roadmap covers the next year and has the following important milestones, which are explained in more detail below.
Please check also the open feature requests in FATE for OBS.
More detailed feature list can found at OBS Roadmap
OBS 2.7, Early 2016
- reworked download on demand support
(Monitoring changing repositories and webui support) [DONE]
- Incremental storage of SCM trees, tar balls will get created at build time. [WIP]
- buildtime source services [DONE]
OBS 2.6, February 2015
A smaller release, head line was the package tracking
- Released binary tracking support. This includes a search interface and history of past releases. Target are maintenance releases.
- Product channel support
- Debian Live Media support
- Request priorization
- Improved user group handling
- Request history refactored
- EXPERIMENTAL: Entire projects can be linked now with frozen source revisions.
OBS 2.5, March 2014
The headline is to support multiple products from one code stream for maintenance.
- Product tracking support: Which products are currently actively maintained, which packages do they include. Which updates went out.
- Support multiple products per code stream
- Get maintained status data of packages
- automatic source update via token mechanism
- used by github.com OBS support
- Integrated comment and notification system
- Autodesctruct sequence for ancient branches
On the technical side
- webui and api gets merged
- configuration settings are centralized
OBS 2.4, March 2013
- Arch Linux package format support got added.
- Build Job Constraints handling. It can be used to define build instance requirements for certain build jobs. Either for defined package sources or for all repositories. Documentation about this can be found here: http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_job_constraints.html
- Support of preinstall images, which can be used to speed up build jobs. They need to be build manually, but get automatically used for creating a build instance base in a faster way than just with installing packages.
- Static links (without version and release numbers) for binary results in the published repositories can be configured now. This can be done via the "staticlinks" keyword in Repotype: definition.
- Data about used resources of build jobs get collected. However it gets not yet used for build job assignment
- Requests can be listed also for given groups now.
- Checkout of delete packages does not require a srcmd5 sum anymore.
- Delete Requests can be used to request deletion of repositories from a project.
- Support of creation of application data xml which can be used for app stores for application centric browsing versus package browsing.
- Support hugetable memory usage for kvm workers.
- Support building cross build formats, eg. building an rpm with a kiwi build description or an deb package via a .spec file.
- Efficient transport of product build results from worker to backend.
- aarch64 architecture added (aka armv8 or arm64)
- New generic "emulator" virtualization support. Can be used to build inside of system emulators (for foreign hardware for example)
Milestone (Version 2.3), released 3rd March 2012
The two features which are mandatory are:
- openSUSE distribution maintenance support.
- Reworked Qemu Cross Build support
- Read access permission control (as planned for 2.2 release).
All other features are optional.
The goal of this release is to get the complete maintenance handling for openSUSE into OBS. This includes:
- Update repository generation with patch data.(done)
- Maintenance patch request and creation(done)
- (Bugzilla) issue tracking
- Release management features which allows to release binary packages without a change to move to their final destination. (From one repository to another one).
- delta package generation (done)
- Read permission support
- Protect binary packages
- Hide entire package or project
- Better XSS protection
openSUSE maintenance is using OBS 2.3 functionality now
Milestone (Version 2.1), released 19 October 2010
Head line is improve source handling.
- Source handling improvements
- webui can be used for editing openSUSE:Factory submissions. This includes:
- Support of editing linked packages
- Submit request creation
- Request review support
- webui shows the history of package sources:
- show commit history
- show commit diffs
- show old source versions
- Optional protection of sources packages
- Tracking of linked projects and packages and show them in webui
- Source Service editor in webui
- server side snapshoting of svn or git repositories, doing version upgrade and automatic rebuild.
- webui can be used for editing openSUSE:Factory submissions. This includes:
- other webui improvements
- Driver update disk editor
- Quality! The test suite is way more complete then before and covers a big part of the api functionality.
Milestone Cajun Sunrise (Version 2.0), released 10 June 2010
Headline of this release is the new, improved webui interface. All other features will come in if they are ready in time.
- Revised webui, driven by openSUSE Booster Team
- Better overview about outstanding submissions
- Better overview about distribution state
- Project source linking
- Open web interface to anonymous users to some degree (FATE #306381)
- Source Services as stable feature
- server side download and validation of sources, to get sure that tar balls come from listed upstream project.
- Review mechanism improvements
- Auto adding reviewers for projects or packages
- Mass approval of reviewed submissions
- Project linking support
- Scheduler strategies are configurable
- User group handling as stable feature
- History for project config and meta data
- Undelete function for projects or packages
- Add user role request (to request to become reviewer, maintainer or bugowner)
- Driver Update Disk support via kiwi
- Build Dependency Cycles are visible via the api
- Patchinfo editor webui
Milestone MeeGo (Version 1.8), released 10 June 2010
This release is driven by the developer groups from the MeeGo project and will provide the following features:
- Group handling support for permissions (api part done, backported from 2.0, webui part to be backported)
- Read permission control settings to hide projects
Note: 1.8 was not an official release from OBS crew and is not compatible!
Milestone (Version 1.7), 9 February 2010
- Allow full management of Factory distro packages (obsolete SUSE internal package data base). (done)
- Attribute system (API will be able to store key/values for each binary package). (done)
- Add missing requests
- DELETE request (done)
- Update devel informations in a package (done)
- Support for package description translations, needed for product creation. (DROPPED, will be done via packages)
- Allow review mechanism for requests (partly done)
- api and osc enhancements for the following usecases:
- "osc maintainer" shall output a list of people responsible for a certain package. (done)
- "osc whatdependson" shall output which packages get triggered by a certain package. (done)
- Repository state reporting shows the state as calculated by the scheduler. The state may be marked as dirty, so the user knows that a re-calculation will happen. (done)
- api side tar ball download support to improve source review. This will get implemented via the Source Services. (done, declared as experimental feature for 1.7)
- Build trigger reporting, the reason why a package got triggered to build is stored now and requestable. (done)
- The web interface is themeable now. (done)
- Clean product builds, using the packages (kiwi,...) from the projects (done)
- maintenance support aka patchinfo (partly implemented)
- General smaller improvements and bugfixes all over the place.
Milestone (Version 1.6), June 2009
- Cross Development support. Other architectures are handled with a combination of emulation and optional cross compilation. Can handle existing native distros. This time as official feature. Uses emulator technology, but can also be combined with cross compilation for performance reasons. Working implementation is available in the OBS developer packages, documentation is also available. A first version is supplied with OBS 1.5. (Implemented)
- Factory Build Optimizations.
- Drop unchanged package builds (Implemented)
- Support creation of delta rpms (Might get postponed)
Milestone Aster (Version 1.5), March 2009
The feature head line is to provide everything, what you need, to build your own distribution. openSUSE 11.1 is build with this functionality and can be used as base for own variations.
- Factory ftp tree generation. Build the official FTP tree of openSUSE:Factory with the OBS. (done)
- Basic quota handling. Default and individual repository size quotas, only configurable on the backend without api access. (partly done, rest moved to later milestone)
- Automated Media Image builds.
- Product Image build support. This creates medias to be used for installation, like the openSUSE 11.1 DVD. (done)
- Live Image build support. Images like the LiveCD ISOs get build automated within the OBS. (WIP)
- Offline image build support. Enable everybody to build an iso, with or without variation on own workstation. (not yet).
- Provide Build Informations:
- Offer interface for scheduler data.
- Project build history.
- Handling of Power Build Hosts. To be able to build single large and time critical packages fast. This has the status of nice-to-have.
- Cross Development support. Other architectures are handled with a combination of emulation and optional cross compilation. Can handle existing native distros. EXPERIMENTAL FEATURE !
- Download on Demand of external binary packages. With fast and easy steps, existing distros for type .deb or type .rpm can be added as build targets.
Milestone Daffodil (Version 1.0), June 2008
Development of packages for openSUSE Factory distribution will be really transparent and enables 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.
- 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.
- "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.
- Automatic debuginfo generation. Backend creates debuginfo packages based on build flags.
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 permissions 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. Multi-architecture 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 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 )
- Stabilize code. Stabilize esp. the backend code and make it more robust against bugs or hardware problems.
The End User interface got launched in an initial version. Future plans are to involve the end users more, to give them a feeling of being a part of the openSUSE community. This can be done to allow simple contributions like comments or rating for certain software, but we should also make it easy to allow them to submit real contributions, maybe just starting with package description changes. The Build Service developer interface should be only one click away ...
Features are collected at