This is mostly so we don't have to pass around common parameters like "db" and "config", and we don't have to check for the existence of methods.
A plugin now looks like this:
package Hydra::Plugin::TwitterNotification;
use parent 'Hydra::Plugin';
sub buildFinished { my ($self, $build, $dependents) = @_; print STDERR "tweeting about build ", $build->id, "\n"; # Send tweet… # Hydra database is $self->{db}. }
BLVQGJ4LITFCIR3KAUX3GWAHMYH3XXFC4BDXUSXUVEJFEJ7IMM4AC