Opened 5 years ago

Last modified 2 years ago

#2460 assigned enhancement

Build a plugin architecture

Reported by: dustin Owned by: sa2ajj
Priority: minor Milestone: 0.9.+
Version: Keywords: plugins
Cc: hithwen@…, rutsky.vladimir@…

Description (last modified by dustin)

It should be possible for users to add extra functionality to Buildbot by installing additional packages from pypi. The extra functionality should include

  • change sources
  • build steps
  • status plugins
  • web UI components
  • utility scripts (#1828)

The setuptools entry-points support can help here.

Once this is complete, long-term unmaintained code currently distributed with Buildbot should be moved to external projects (still in the Buildbot github organization) where it can be maintained - or not - by its users.

We should produce simple "hello-world" templates for each type of plugin, so that users have somewhere to start.

scope

This project will involve understanding how Python packages are built, tested, documented, and distributed.

related bugs

Change History (13)

comment:1 Changed 5 years ago by dustin

  • Description modified (diff)

comment:2 Changed 5 years ago by hithwen

  • Cc hithwen@… added

comment:3 Changed 5 years ago by rutsky

  • Cc rutsky.vladimir@… added

comment:4 Changed 4 years ago by dustin

  • Description modified (diff)

comment:5 Changed 4 years ago by sa2ajj

  • Keywords plugins added

comment:6 Changed 4 years ago by sa2ajj

  • Owner set to sa2ajj
  • Status changed from new to assigned

I did some coding in https://github.com/sa2ajj/buildbot/tree/plugins (documentation is still needed as well as some tests, though I have no clue how to provide mock data for pkg_resources).

Any candidates for "long-term unmaintained code"?

comment:7 Changed 4 years ago by dustin

BitKeeper? is a decent example of long-term-unmaintained. Also, stuff from contrib/.

As for testing, if you moved the pkg_resources stuff into wrapper functions, you could mock out those functions. Does that help?

comment:8 Changed 4 years ago by sa2ajj

  • Type changed from project-idea to enhancement

For the record, the code (docs is a bit behind) is available in https://github.com/buildbot/buildbot/pull/1179

In that PR utility scripts are not going to be implemented (that's gonna be next step together with one more utilty script to show plugins available for Buildbot).

comment:9 Changed 4 years ago by sa2ajj

There could be some nits for the documentation, otherwise I think it's complete.

comment:10 Changed 3 years ago by sa2ajj

  • Milestone changed from 0.9.+ to 0.9.0

What do we do with this ticket?

comment:11 Changed 3 years ago by sa2ajj

  • Priority changed from major to minor

The main part is done, the rest is not that major (and part of that activity is to review sub-tickets).

comment:12 Changed 3 years ago by dustin

  • Version 0.8.7p1 deleted

comment:13 Changed 2 years ago by dustin

  • Milestone changed from 0.9.0 to 0.9.+
Note: See TracTickets for help on using tickets.