Frontend dev-team sprint report – Sprint 16

Here are the results the OBS frontend developer team has achieved in the last 2 weeks (2017-05-08 to 2017-05-19).

OBS 2.8.1 Release

We have pushed out version 2.8.1. You probably have already installed this new release last week right? If not check out the announcement about all the cool new things we rolled into our stable release and download it.


Let's start off with the maintenance tasks we did on our code base.

Migrating tests to RSpec

We continued moving tests to our new RSpec based test suite. This sprint we've migrated:

Refactoring Project Build Results

Earlier this year, in January, we have refactored how the build results of packages are gathered from the backend and displayed to you. This was necessary because the code was really horrible and difficult to maintain for us. With PR#3101 we also have done this for the build results of the projects. No more horrible code πŸ’ͺ

Refactoring Request Associations

Our *Request* system is using associations based on strings. So for instance a *Request Action* has an attribute :target_package that is a string for a package name (like "firefox") and *:target_project* that is a project name (like "openSUSE:Factory"). And then we have a 90 lines Class method (*BsRequest.collection*) for queries on those.

All of this feels very awkward to a rails developer, it makes the code kind of complicated and has the result that some queries are very pretty slow. So we started to look into refactoring this using activerecord associations and scopes. First results trickle in via associations between BsRequestAction and packages/project (PR#3100). User.declined_requests (PR#3107), User.involved_packages and User.involved_reviews (PR#3105). And by adding a polymorphic association to reviews (PR#3070). Chris is going wild on those πŸ…

RubyGem Package Cleanup

We have inspected the RubyGem packages of OBS:Server:Unstable for dangling dependencies and managed to remove 86 packages that we did not need anymore, πŸŽ‰ hooraayyyy πŸŽ‰


But of course we also introduced some new functionality for you 🎁!

Download GPG keys and SSL certificates

You can find a download link for both GPG key and SSL certificates at the project page now.

The OBS key dialog

Maintenance Page

A man re-painting the OBS logo The OBS now has its own maintenance page (HTTP status code 503 - Service Unavailable) and a way to enable "maintenance mode" it in the shipped Apache web server configuration. As soon as we introduced it you were able to see it for a whole weekend because of the problems with the openSUSE Login System. Shite happens…

Image Templates

Last week we released the new image templates page on the reference server. It was already included in the OBS 2.8 release, but not yet enabled. This sprint we enabled it and wrote two blog posts presenting that feature. Here is the release announcement. And there is a second blog post describing how you can create your own image templates.

Researching Message Queues

In PR#2592 Stephan Kulow, ex OBS hacker, ex openSUSE release manager and currently one of the developers of the awesome openQA, requested that we introduce a message queue for push notification to other tools. This sprint we have spent some time researching the current status of message queues with ruby integration. The results of this you can find in our sprint board. During this research we have also documented our Event sub-system in our developer wiki.


And believe it or not the OBS isn't perfect yet (close, but no cigar) so we had to fix some problems.

Last Success for Multibuilds

Some month ago we introduced the multibuild feature, which makes it possible to have multiple build descriptions in a package source and use so called flavors to filter them. Apparently we didn't integrate this into the build results API, which was reported by nilxam. With pull request #3106 this has been fixed.

Fix request wiping

osc rq wipe *id* crashed. This is fixed with PR#3074


We for sure are! What do you think? Let us know in the comments, on our mailing list or on IRC!

And don't forget to check out our previous sprint reports!