Announce: Gentoo Build Publisher 3.0.0

I have released Gentoo Build Publisher 3.0.0. The reason for the major version bump is due to backwards-incompatible changes, which include:

  • Support for "old-style" plugins has been dropped. The original multi-entrypoint way of declaring plugins has been removed. None of the "official" plugins use this method anymore so there should be no problems there. Plugins must therefore declare themselves using the gentoo_build_publisher.plugins entrypoint, which should be a dictionary matching the PluginDef schema.

  • The event subsystem now uses blinker instead of python-disptach. While an adapter has been implemented and there should be no required changes, there is a difference in that signal handlers can no longer send or receive positional arguments. None of Gentoo Build Publisher's signal handlers, or any of its "official" plugins, did this anyway, but nevertheless this is a backwards-incompatible change.

Ok, now that we're done with backwards-incompatible changes, let's get to other changes in 3.0.0:

  • gbp-testkit, the dev library useful for writing tests for GBP and its plugins, added a few features and fixtures. Most notably is the gbpcli fixture which allows you to pass a command-line argument directly to the fixture and have it run within the test environment as if it were run from the command line, including making virtual GraphQL calls to the API. This allows us, for example, to not have to mock many of the responses from the gbpcli test suite.

  • The web UI now uses the Bootstrap --bs-primary CSS variable instead of hard-coding the value everywhere. This is helpful for plugins that extend the UI as well as not having to hard-code colors in the 404 and 500 templates.

  • The GraphQL subsystem gained a new query, plugins, which lists all the installed plugins for the system being queried.

  • Speaking of plugins, plugin declarations no longer require the app attribute, which means server plugins no longer have to expose a Django app. Among other things, this now means that gbp-archive can now be prominently displayed in the "About" page.

  • In the web UI when packages are listed, the package listed now links to its page on packages.gentoo.org.

  • Also in the web UI, we've changed the order of the "stats circles" so that the numbers (typically) increase from left to right.

  • Other UI internal changes were made to assist plugins that intend to extend the UI.

  • Other miscellaneous changes throughout.

It was a lot of fun working on the changes to this release, especially the changes that enable the UI additions to the gbp-fl plugin, which I will write about in another article.