Highlights of the OBS frontend development - Sprint 45
People of the Builds! Another Sprint is over and here is what the OBS frontend team has achieved from 2018-08-13 to 2018-08-23.
Status report API
We are currently working on an API for reporting a status into the OBS. Let’s say you have a script/tool/continuous integration job that installs the three packages, that you build in your OBS project, and tests their functionality together. So you can be sure that if you change one, all three of them still play nice together. Depending on if that test has worked or not, you would decide if you release those changes to your users. Wouldn’t it be nice if the OBS could show you if that test was successful or not? That will be possible with the new OBS Status Report API. For certain events (a repository got published, a submit request got created, etc.) we will enable you to upload data so we can show it and base decisions on it. For instance, block merging of a submit request. Our first target is the staging workflow used in the openSUSE development process that integrates openQA. In this sprint we have build an API to create checks for repositories and show these repositories on the factory dashboard. We’ll let you know as soon as you can really make use of this.
Still moving forward on the Bootstrap front
Breadcrumbs are a navigational aid in OBS and they are a crucial part of the UI. They are now implemented for our Bootstrap views. We did it in a way which allows us to reuse code as much as possible. Each part of the breadcrumbs is a partial view, making it reusable for different scenarios. Some parts like project or package are benefiting the most from this since they are used to build the complete breadcrumbs for multiple pages.
In addition, we continued converting the package views to Bootstrap. This time, we finished converting the package requests tab. Here is how it looks like:
This is currently only enabled by default to a subset of the users. But for curious people, it is now possible for everybody to join the beta. If you want to do so you can join/leave our beta program on your user page at https://build.opensuse.org/home:
Do not allow accepted requests to change back to review
As it is explained in the issue #5594, a race condition was found while setting the state of a request to accepted (which is a final state), where an user could set the state back to review. Thanks to the @DimStar77 for the detailed report and support.
Improve test coverage
Since we are rewritting the package related views with a new technology, we also want to improve the test coverage to ensure nothing breaks in the process. We wrote a lot of tests for the PackageController this sprint thanks to the great collaboration within the team.
Adopt openQA test suite
Each time code is pushed to one of the three current branches of OBS (master, 2.9 and 2.8) smoke tests are run in openQA. Recently phantomjs was dropped in favor of headless chromium with selenium in our rspec test suite (see PR 5195). That was fine for our rspec test suite, but made our openQA tests fail. In this sprint our openQA tests were modified accordingly and again you can use one of our qcow2 OBS appliances being sure that it has already been tested.
Terms of service dialog
Admins of an OBS instance can now define Terms of Service for their instance. Managing Terms of Services is currently an API only feature.
For example this is how an admin would get a distinct ToS. And as you can see ToS support markdown
osc api /announcements/1 <announcement> <id>1</id> <title>New Terms of Service</title> <content>0. Sequi. 1. Modi. 2. Dolores. 3. Neque. 4. Et. 5. Nesciunt. </content> </announcement>
Once there are new Terms of Services a dialog is shown in a WebUI to any user that has not acknowledged them yet.
The Terms of Service itself can be viewed on the overview page:
Apart from being busy hacking, the OBS team travelled to some conferences as well.
EuRuKo is the biggest Ruby conference in Europe and the OBS team couldn’t miss it! Every year the conference takes place in a different European city. This time it was in Vienna and around 600 people (including 3 from OBS) travelled there for the 2 days conference. There was a single track and 13 speakers from all around the world with talks about Ruby, but also other topics like diversity and accessibility.
From all the talks our favourite is of course the one from Ana, who spoke about refactoring in Ruby showing examples taken from OBS. She did not only focus on the code, but also on what she learnt while working on OBS. The example which caught the most people’s attention was the one about the
union method she wants to add to the Ruby Array class because she found some concerns while discussing some OBS code with one of her colleagues. Ana wanted to know the audience opinion about her proposal and she made a standing voting, which result is in the PR and the issue in the Ruby core. It was a really fun talk where we learnt a lot about refactoring, Ruby code and working on open source. The talk was streamed with subtitles written live by people and you can watch the recording in Youtube: https://youtu.be/jUc8InwoA-E
There were two other talks we specially like:
- The case of the missing method — a Ruby mystery story by Nadia Odunayo who presented Ruby singleton classes in a really original and clear way.
- Tool belt of a seasoned bug hunter by Damir Zekić in which he explained how he debugged the problem of some spec running tremendously slow.
The conference was not only a chance to watch interesting talks, but also to meet new people and friends we meet at every Ruby conference. We hope that the OBS team can meet all of you again next year, this time in Rotterdam.
As Vienna was just too close, Ana also travelled to Taipei for the openSUSE.Asia Summit to support the great openSUSE community we have in Asia. She held a talk about starting as a new contributor in open source and mentoring: Why should you get involved in open source?.
You can read more about the conference in Ana’s openSUSE.Asia Summit blog post: https://news.opensuse.org/2018/09/05/opensuse-asia-summit
Next Sprint More
That was everything! Remember you can follow the work of the OBS team live in our Trello Board. Do not miss our next blog post!