Add support for hyper.sh via HyperLatentWorkerHyper is a CaaS solution for hosting docker container in the cloud, billed to the second.
It forms a very cost efficient solution to run your CI in the cloud.

new GitHub which correctly checkout the magic branch like refs/pull/xx/merge.

MailNotifier now supports a schedulers constructor argument that
allows you to send mail only for builds triggered by the specified list of
schedulers.

MailNotifier now supports a branches constructor argument that
allows you to send mail only for builds triggered by the specified list of
branches.

Optimization of the data api filtering, sorting and paging, speeding up a lot the UI when the master has lots of builds.

GerritStatusPush now accepts a notify parameter to control who gets emailed by Gerrit.

Add a format_fn parameter to the HttpStatusPush reporter to customize the information being pushed.

Latent Workers can now start in parallel.

The build started by latent worker will be created while the latent worker is substantiated.

Latent Workers will now report startup issues in the UI.

Workers will be temporarily put in quarantine in case of build preparation issues.

This avoids master and database overload in case of bad worker configuration.
The quarantine is implemented with an exponential back-off timer.

Master Stop will now stop all builds, and wait for all workers to properly disconnect.
Previously, the worker connections was stopped, which incidentally made all their builds marked retried.
Now, builds started with a Triggereable scheduler will be cancelled, while other builds will be retried.
The master will make sure that all latent workers are stopped.

The MessageFormatter class also allows inline-templates with the template parameter.

The MessageFormatter class allows custom mail’s subjects with the subject and subject_name parameters.

The MessageFormatter class allows extending the context given to the Templates via the ctx parameter.

The new MessageFormatterMissingWorker class allows to customize the message sent when a worker is missing.

The OpenStackLatentWorker worker now supports rendering the block device parameters.
The volume_size parameter will be automatically calculated if it is None.

New SharedService can be used by steps, reporters, etc to implement per master resource limit.

New HTTPClientService can be used by steps, reporters, etc to implement HTTP client.
This class will automatically choose between treq and txrequests, whichever is installed, in order to access HTTP servers.
This class comes with a fake implementation helping to write unit tests.

By default, non-distinct commits received via
buildbot.status.web.hooks.github.GitHubEventHandler now get recorded
as a Change. In this way, a commit pushed to a branch that is not
being watched (e.g. a dev branch) will still get acted on when it is later
pushed to a branch that is being watched (e.g. master). In the past, such a
commit would get ignored and not built because it was non-distinct. To disable
this behavior and revert to the old behavior, install a ChangeFilter
that checks the github_distinct property:

setup.py ‘scripts’ have been converted to console_scripts entry point.
This makes them more portable and compatible with wheel format.
Most consequences are for the windows users:

buildbot.bat does not exist anymore, and is replaced by buildbot.exe, which is generated by the console_script entrypoint.

buildbot_service.py is replaced by buildbot_windows_service.exe, which is generated by the console_script entrypoint
As this script has been written in 2006, has only inline documentation and no unit tests, it is not guaranteed to be working.
Please help improving the windows situation.

The user and password parameters of the HttpStatusPush reporter have been deprecated in favor of the auth parameter.

The template_name parameter of the MessageFormatter class has been deprecated in favor of template_filename.

setup.py ‘scripts’ have been converted to console_scripts entry point.
This makes them more portable and compatible with wheel format.
Most consequences are for the windows users:

buildbot_worker.bat does not exist anymore, and is replaced by buildbot_worker.exe, which is generated by the console_script entrypoint.

buildbot_service.py is replaced by buildbot_worker_windows_service.exe, which is generated by the console_script entrypoint
As this script has been written in 2006, has only inline documentation and no unit tests, it is not guaranteed to be working.
Please help improving the windows situation.

AbstractLatentWorker is now in buildbot.worker.latent instead of buildbot.worker.base.