[ANN] obus 1.2.0

I’m pleased to announce a new obus release.

What is obus

A pure OCaml implementation of the D-Bus IPC protocol, heavily used in Freedesktop/linux world [1].

Notable changes

  • obus is being transitioned to ocaml-community

  • switched to dune

  • camlp4 parts were replaced with menhir

  • camlp4 syntax extension was replaced with the ppx-based ones

This release shouldn’t break anything (safe for the syntax extension).

Special thanks to @steinuil and @pukkamustard for doing most of the “dunification” work.

Thoughts about the future

So after pondering on obus refactoring I came to the following ideas, which I would like to discuss:

  1. IDL, an intermediate language used for the D-Bus interfaces’ description doesn’t worth the effort and is better to be dropped.

    D-Bus uses XML for such a purpose and there is no merit in having an additional language doing the same (with minor improvements like not being XML-abomination and the ability to define numeric types as OCaml variants). It makes sense to generate OCaml files from the XML directly and don’t use any obus-specific additional language.

  2. ppx syntax extensions could also be dropped since they don’t do much stuff. Also I haven’t seen anybody using them, but I could be wrong.

    So it’s better to either improve it (maybe turn IDL language into simple ppx annotations) or drop it completely. Personally, I like the idea of not using ppx because they are slowing things down making the project lag behind ocaml releases, and making things fragile in general.

  3. obus should be split into proper subpackages, like obus, obus-network-manager, obus-notifications etc

So since it’s a community project from now on, it would be great to hear what obus users and contributors are thinking about all forementioned. cast @diml @talex5 @perry @johnelse

[1] https://www.freedesktop.org/wiki/Software/dbus/

6 Likes

Thanks for the release - the build seems much faster now! I’m happy with all your proposed changes: I don’t use the IDL or the syntax extensions.

I agree about the IDL, I made an effort to keep it mostly because it’s needed to compile obus (hence the internals/idl/protocol separation in the source files).

Thanks a lot for this work and congratulation on the release! The proposed changes seems good to me as well. They should reduce the technical complexity of the project and make it easier to maintain, which is especially important for community maintained projects.

1 Like