We need statistical analysis and key performance indicators to describe the lifetime of maintenance and release requests in IBS, for example:

  • How long does an update take starting from the time the first maintenance request is created and stopping at the time the update is released to customers?

  • How long does it take for a maintenance request to pass all required reviews?

  • How often do reviews succeed or fail, respectively?

  • How long does it take to create a release request after a maintenance incident has been created?

  • How do these values look, on average, across different code streams?

  • What is the absolute number of requests opened (or closed) in a given time period (per code stream)?

This information is particularly important for the Emergency Updater Team, which defines success and failure partly through the time it takes to release an update to customers.

Almost all of that information is available in IBS (OBS) in one way or another, but it is hard to retrieve the data in a format that's easy to analyze.

The aim of this Hackweek project is to remedy that issue by writing one or several tools that query IBS/OBS and generate a relational database in Sqlite3 or MySQL that contains all necessary information for further analysis with standard tools, like R, scripting languages, or spread sheets in a simple format (schema). The focus of this effort would be to support build.suse.de (IBS), but we assume that supporting build.opensuse.org (OBS) as well will be feasible, if not even trivial.

There is a relevant FATE issue at https://fate.suse.com/319971 that we'll need to take into consideration.

This project was initially discussed during the MaintSec 2016 workshop, and most of the original notes are still available at https://etherpad.nue.suse.com/p/TeamSaturn. Since then, some research and experimentation has taken place under the umbrella of https://redmine.nue.suse.com/issues/5785 and https://redmine.nue.suse.com/issues/4276.

Looking for hackers with the skills:

obs buildservice

This project is part of:

Hack Week 15

Activity

  • about 8 years ago: vitezslav_cizek liked this project.
  • about 8 years ago: tgoettlicher joined this project.
  • about 8 years ago: tgoettlicher liked this project.
  • about 8 years ago: osukup joined this project.
  • about 8 years ago: hennevogel liked this project.
  • about 8 years ago: hurhaj liked this project.
  • about 8 years ago: osukup liked this project.
  • about 8 years ago: psimons added keyword "obs" to this project.
  • about 8 years ago: psimons added keyword "buildservice" to this project.
  • about 8 years ago: pluskalm liked this project.
  • about 8 years ago: psimons started this project.
  • about 8 years ago: psimons originated this project.

  • Comments

    • hennevogel
      about 8 years ago by hennevogel | Reply

      Nice project! You are aware that the BS-Team has implemented the data gathering part of this feature? It's not yet in production but it's on the way -> Pull Request #2507

      BTW if you want to do this inside the OBS and not with an external tool I would be interested in introducing you to OBS development and helping you during hackweek. Let me know :-)

    • leonardocf
      about 8 years ago by leonardocf | Reply

      You might find https://gitlab.suse.de/maintenance/pymaint useful

    Similar Projects

    Implement a full OBS api client in Rust by nbelouin

    Description

    I recently started to work on tooling for OBS using rust, to do so I started a Rust create to interact with OBS API, I only implemented a few routes/resources for what I needed. What about making it a full fledged OBS client library.

    Goals

    • Implement more routes/resources
    • Implement a test suite against the actual OBS implementation
    • Bonus: Create an osc like cli in Rust using the library

    Resources

    • https://github.com/suse-edge/obs-tools/tree/main/obs-client
    • https://api.opensuse.org/apidocs/


    Fix RSpec tests in order to replace the ruby-ldap rubygem in OBS by enavarro_suse

    Description

    "LDAP mode is not official supported by OBS!". See: config/options.yml.example#L100-L102

    However, there is an RSpec file which tests LDAP mode in OBS. These tests use the ruby-ldap rubygem, mocking the results returned by a LDAP server.

    The ruby-ldap rubygem seems no longer maintaned, and also prevents from updating to a more recent Ruby version. A good alternative is to replace it with the net-ldap rubygem.

    Before replacing the ruby-ldap rubygem, we should modify the tests so the don't mock the responses of a LDAP server. Instead, we should modify the tests and run them against a real LDAP server.

    Goals

    Goals of this project:

    • Modify the RSpec tests and run them against a real LDAP server
    • Replace the net-ldap rubygem with the ruby-ldap rubygem

    Achieving the above mentioned goals will:

    • Permit upgrading OBS from Ruby 3.1 to Ruby 3.2
    • Make a step towards officially supporting LDAP in OBS.

    Resources


    Explore the integration between OBS and GitHub by pdostal

    Project Description

    The goals:

    1) When GitHub pull request is created or modified the OBS project will be forked and the build results reported back to GitHub. 2) When new version of the GitHub project will be published the OBS will redownload the source and rebuild the project.

    Goal for this Hackweek

    Do as much as possible, blog about it and maybe use it another existing project.

    Resources


    New features in openqa-trigger-from-obs for openQA by jlausuch

    Description

    Implement new features in openqa-trigger-from-obs to make xml more flexible.

    Goals

    One of the features to be implemented: - Possibility to define "VERSION" and "ARCH" variables per flavor instead of global.

    Resources

    https://github.com/os-autoinst/openqa-trigger-from-obs


    obs-service-vendor_node_modules by cdimonaco

    Description

    When building a javascript package for obs, one option is to use https://github.com/openSUSE/obs-service-node_modules as source service to get the project npm dependencies available for package bulding.

    obs-service-vendornodemodules aims to be a source service that vendors npm dependencies, installing them with npm install (optionally only production ones) and then creating a tar package of the installed dependencies.

    The tar will be used as source in the package building definitions.

    Goals

    • Create an obs service package that vendors the npm dependencies as tar archive.
    • Maybe add some macros to unpack the vendor package in the specfiles

    Resources