Introducing: OBS Master, app frontend/GUI for Open Build Service

Hey everyone, especially those of you who use the Community OBS!

I have spent the last few days on a new tool to potentially help with interacting with the OBS:

OBS Master, an OBS GUI and osc frontend

OBS Master is basically a wrapper around the osc utility with some additional functionality.

It is currently on very very Alpha/PoC state, and announced here to request feedback about it.

Most importantly I would be interested in your “use cases”, or workflow with OBS, and what you would like to have in a GUI app like OBS Master, that would improve your workflow compared to using osc or the OBS web page.

NOTE: if you do not have an OBS account, this tool will be of very little use. Also, if you do, you will have to have osc installed on your device, and configured login.

Supported Features:

  • Loading package and project information from a local obs working directory
  • Viewing, editing, updating Project and Package, PrjConf Meta information
  • Viewing Build Results and ongoing build processes (worker/repository status)
  • Triggering rebuilds (if a _service file is in use)
  • Viewing Build Logs
  • Viewing Build result (package) information
  • Downloading binary packages
  • Adding OBS repos to the local system
  • Checking out a project from OBS
  • Checking out a package from OBS
  • Creating a new project remotely
  • Creating a new package remotely
  • Creating a new package locally
  • DBus-interface for remote controlling some functions (setting local work dir)

Planned Features (no promises):

  • Interacting with local and remote source files (update, check-in, …) #27
  • Creating, editing _foo files (like _service, _multibuild etc) #28
  • Branching, Linking projects and packages #14
  • Supporting the Request/Submission system #13
  • Caching of remote data to have less trips to the API
  • Online-only support MS, #17
  • Offline-only support MS
  • Chum specialties: compare chum and chm:testing packages, report differences #30
  • Chum specialties: .spec metadata editor #29

Issues:

  • very steam-of-consciousness code base (QML)
  • probably not very intuitive GUI, ugliness
  • slow and inefficient: the internal usage of Python and calling the osc utility
  • some features unreliable, very little edge case/error handling

Hacking:

Pull requests of any kind are always welcome.

I’m sure there are many areas of improvement, but one ugly design flaw right now is how the app used its python interface, and the osc utility. Because Python is basically only used to do os.subprocess, calling osc, and returning the results.
Now, this works, and isn’t really an issue - but osc also comes as a Python module, so that should be used natively instead of the way it is done now.

Progress on this issue can be managed at Issue 12


  • Packages: Binary Alpha packages are available from OBS.
  • Source Code: at Codeberg. Languages used: very bad QML, very bad Javascript, terrible Python
  • Documentation (WiP): at Codeberg
14 Likes

I do believe you don’t even remotely approach my level of awful. :slight_smile:

3 Likes

Having some past experience working with the osc python module, I think it might be worth considering using the OBS HTTP API directly. The osc internals are in some cases a bit difficult to work with, imho. Probably due to legacy reasons and it not being exactly designed to be used as an API, but rather just for the command line tool.

The HTTP API is quite simple to interact with something like python requests library. I have simple wrapper for requests library that does some boilerplate stuff like, XML handling, and oscrc parsing and such. Hopefully I’ll get to cleaning up and publishing that soon.

4 Likes

@Keto, please publish soon (i.e. “now”) rather denoting that it is work-in-progress and in the process of being cleaned up than forcing @nephros to either stall his project or write his own solution.

1 Like

Actually I am already using http Api in some parts, either directly or via osc api.

Thank a lot for the heads-up though @Keto and a module would be much appreciated.

For now, osc does the job as a PoC solution and we can gradually move to something else.

3 Likes
Here are screenshots








1 Like

Indeed there are, but these links will break Real Soon^TM :smiley:

Challenge accepted, and tracked in issue 26.

1 Like

My massively auto-regressive RNN, FORBAO is trained on ALL my bad code. That is, it is also over-fitting on a particular kind of bad code. So, we could address this slight shortcoming by feeding it all YOUR bad code. It’ll still over-fit, but less blatantly, poetically. Oh, and, no, it is not a useful code assistant. But, then, neither are any of the others.

see: #26 - Code is not awful enough for some - obs-master - Codeberg.org and it’s near sibling.