Caution
Buildbot no longer supports Python 2.7 on the Buildbot master.
5.39. Release Notes for Buildbot 0.9.0b8¶
The following are the release notes for Buildbot 0.9.0b8 This version was released on April 11, 2016.
See Upgrading to Buildbot 0.9.0 for a guide to upgrading from 0.8.x to 0.9.x
5.39.1. Master¶
5.39.1.1. Features¶
- GitPollernow has a- buildPushesWithNoCommitsoption to allow the rebuild of already known commits on new branches.
- Add GitLab authentication plugin for web UI.
See buildbot.www.oauth2.GitLabAuth.
- DockerLatentWorkernow has a- hostconfigparameter that can be used to setup host configuration when creating a new container.
- DockerLatentWorkernow has a- networking_configparameter that can be used to setup container networks.
- The DockerLatentWorkervolumesattribute is now renderable.
- CMakebuild step is added. It provides a convenience interface to CMake build system.
- MySQL InnoDB tables are now supported.
- HttpStatusPushhas been ported to reporter API.
- StashStatusPushhas been ported to reporter API.
- GithubStatusPushhas been ported to reporter API.
- summaryCB of GerritStatusPushnow gets not only pre-processed information but the actual build as well.
- EC2LatentWorker supports VPCs, instance profiles, and advanced volume mounts.
5.39.1.2. Fixes¶
- Fix loading LdapUserInfoplugin and its documentation (bug #3371).
- Fix deprecation warnings seen with docker-py >= 1.4 when passing arguments to docker_client.start().
- GitHubEventHandlernow uses the- ['repository']['html_url']key in the webhook payload to populate- repository, as the previously used- ['url']and- ['clone_url']keys had a different format between push and pull requests and GitHub and GitHub Enterprise instances.
- Fix race condition where log compression could lead to empty log results in reporter api
- Error while applying db upgrade is now properly reported in the buildbot upgrade-master command line.
- Made Interpolatesafe for deepcopy or serialization/deserialization
- Optimized UI REST requests for child builds and change page.
- Fix DockerLatentWorkeruse of volume parameter, they now properly manage src:dest syntax.
- Fix DockerLatentWorkerto properly create properties so that docker parameters can be renderable.
- Lock down autobahn version for python 2.6 (note that autobahn and twisted are no longer supporting 2.6, and thus do not receive security fixes anymore).
- Fix docs and example to always use port 8020 for the web ui.
5.39.1.3. Deprecations, Removals, and Non-Compatible Changes¶
- Deprecated - workdirproperty has been removed,- builddirproperty should be used instead.
- To support MySQL InnoDB, the size of six VARCHAR(256) columns - changes.(author, branch, category, name); object_state.name; user.identifierwas reduced to VARCHAR(255).
- StatusPushhas been removed from buildbot.
- Please use the much simpler - HttpStatusPushinstead.
 
5.39.1.4. Changes for Developers¶
Worker changes described in below worker section will probably impact a buildbot developer who uses undocumented ‘slave’ API. Undocumented APIs have been replaced without failover, so any custom code that uses it shall be updated with new undocumented API.
5.39.2. Worker¶
Package buildbot-slave is being renamed buildbot-worker. As the work is not completely finished, neither buildbot-slave==0.9.0b8 or buildbot-worker==0.9.0b8 have been released.
You can safely use any version of buildbot-slave with buildbot==0.9.0b8, either buildbot-slave==0.8.12 or buildbot-slave==0.9.0b7.
5.39.3. Transition to “worker” terminology¶
Since version 0.9.0 of Buildbot “slave”-based terminology is deprecated in favor of “worker”-based terminology.
For details about public API changes see Transition to “worker” terminology in BuildBot 0.9.0.
API changes done without providing fallback:
| Old name | New name | 
|---|---|
| buildbot.buildslave.manager | buildbot.worker.manager | 
| buildbot.buildslave.manager.BuildslaveRegistration | buildbot.worker.manager.WorkerRegistration | 
| buildbot.buildslave.manager.BuildslaveRegistration.buildslave | buildbot.worker.manager.WorkerRegistration.worker | 
| buildbot.buildslave.manager.BuildslaveManager | buildbot.worker.manager.WorkerManager | 
| buildbot.buildslave.manager.BuildslaveManager.slaves | buildbot.worker.manager.WorkerManager.workers | 
| buildbot.buildslave.manager.BuildslaveManager.getBuildslaveByName | buildbot.worker.manager.WorkerManager.getWorkerByName | 
| buildbot.buildslave.docker.DockerLatentBuildSlave | buildbot.worker.docker.DockerLatentWorker | 
| buildbot.buildslave.local.LocalBuildSlave | buildbot.worker.local.LocalWorker | 
| buildbot.buildslave.local.LocalBuildSlave.LocalBuildSlaveFactory | buildbot.worker.local.LocalWorker.LocalWorkerFactory | 
| buildbot.buildslave.local.LocalBuildSlave.remote_slave | buildbot.worker.local.LocalWorker.remote_worker | 
| buildbot.buildslave.basemodule with all contents | buildbot.worker.base | 
| buildbot.buildslave.AbstractBuildSlave.updateSlave | buildbot.worker.AbstractWorker.updateWorker | 
| buildbot.buildslave.AbstractBuildSlave.slavebuilders | buildbot.worker.AbstractWorker.workerforbuilders | 
| buildbot.buildslave.AbstractBuildSlave.updateSlaveStatus | buildbot.worker.AbstractWorker.updateWorkerStatus | 
| buildbot.buildslave.AbstractLatentBuildSlave.updateSlave | buildbot.worker.AbstractLatentWorker.updateWorker | 
| buildbot.buildslave.BuildSlave.slave_status | buildbot.worker.Worker.worker_status | 
| buildbot.config.MasterConfig.load_slaves | load_workers | 
| buildbot.master.BuildMaster.buildslaves | buildbot.master.BuildMaster.workers | 
| buildbot.process.build.Build.slavebuilder | workerforbuilder | 
| buildbot.process.build.Build.setSlaveEnvironment | setWorkerEnvironment | 
| buildbot.process.build.Build.slaveEnvironment | workerEnvironment | 
| buildbot.process.build.Build.getSlaveCommandVersion | getWorkerCommandVersion | 
| buildbot.process.build.Build.setupSlaveBuilder | setupWorkerForBuilder | 
| buildbot.process.builder.Build.canStartWithSlavebuilder | canStartWithWorkerForBuilder | 
| buildbot.process.slavebuilder.AbstractSlaveBuilder.getSlaveCommandVersion | buildbot.process.workerforbuilder.AbstractWorkerForBuilder.getWorkerCommandVersion | 
| buildbot.process.slavebuilder.AbstractSlaveBuilder.attachedmethod argumentslavewas renamed | worker | 
| buildbot.buildslave.AbstractBuildSlave.slave_commands | buildbot.worker.AbstractWorker.worker_commands | 
| buildbot.buildslave.AbstractBuildSlave.slave_environ | buildbot.worker.AbstractWorker.worker_environ | 
| buildbot.buildslave.AbstractBuildSlave.slave_basedir | buildbot.worker.AbstractWorker.worker_basedir | 
| buildbot.buildslave.AbstractBuildSlave.slave_system | buildbot.worker.AbstractWorker.worker_system | 
| buildbot.buildslave.AbstractBuildSlave.buildslaveid | buildbot.worker.AbstractWorker.workerid | 
| buildbot.buildslave.AbstractBuildSlave.addSlaveBuilder | buildbot.worker.AbstractWorker.addWorkerForBuilder | 
| buildbot.buildslave.AbstractBuildSlave.removeSlaveBuilder | buildbot.worker.AbstractWorker.removeWorkerForBuilder | 
| buildbot.buildslave.AbstractBuildSlave.messageReceivedFromSlave | buildbot.worker.AbstractWorker.messageReceivedFromWorker | 
| buildbot.process.slavebuilder.LatentSlaveBuilderconstructor positional argumentslavewas renamed | worker | 
| buildbot.process.buildrequestdistributor.BasicBuildChooser.nextSlave | nextWorker | 
| buildbot.process.buildrequestdistributor.BasicBuildChooser.slavepool | workerpool | 
| buildbot.process.buildrequestdistributor.BasicBuildChooser.preferredSlaves | preferredWorkers | 
| buildbot.process.buildrequestdistributor.BasicBuildChooser.rejectedSlaves | rejectedSlaves | 
| buildbot.steps.shell.ShellCommand.slaveEnvironment(Note: this variable is renderable) | buildbot.steps.shell.ShellCommand.workerEnvironment | 
| buildbot.status.slave | buildbot.status.worker | 
| buildbot.status.slave.SlaveStatus | buildbot.status.worker.WorkerStatus | 
| buildbot.interfaces.IStatusReceiver.slaveConnectedwith all implementations | buildbot.interfaces.IStatusReceiver.workerConnected | 
| buildbot.interfaces.IStatusReceiver.slaveDisconnectedwith all implementations | buildbot.interfaces.IStatusReceiver.workerDisconnected | 
| buildbot.status.master.Status.slaveConnected | buildbot.status.master.Status.workerConnected | 
| buildbot.status.master.Status.slaveDisconnected | buildbot.status.master.Status.workerDisconnected | 
| buildbot.status.master.Status.slavePaused | buildbot.status.master.Status.workerPaused | 
| buildbot.status.master.Status.slaveUnpaused | buildbot.status.master.Status.workerUnpaused | 
| buildbot.status.master.Status.buildslaves | buildbot.status.master.Status.workers | 
| buildbot.status.base.StatusReceiverBase.slavePaused | buildbot.status.base.StatusReceiverBase.workerPaused | 
| buildbot.status.base.StatusReceiverBase.slaveUnpaused | buildbot.status.base.StatusReceiverBase.workerUnpaused | 
| buildbot.interfaces.IStatus.getSlaveNameswith all implementations | buildbot.interfaces.IStatus.getWorkerNames | 
| buildbot.interfaces.IStatus.getSlavewith all implementations | buildbot.interfaces.IStatus.getWorker | 
| buildbot.interfaces.IBuildStatus.getSlavenamewith all implementations | buildbot.interfaces.IBuildStatus.getWorkername | 
| buildbot.status.build.BuildStatus.setSlavename | buildbot.status.build.BuildStatus.setWorkername | 
| buildbot.status.build.BuildStatus.slavename | buildbot.status.build.BuildStatus.workername(also it was moved from class static attribute to instance attribute) | 
| buildbot.interfaces.IBuilderStatus.getSlaveswith all implementations | buildbot.interfaces.IBuilderStatus.getWorkers | 
| buildbot.status.builder.BuilderStatus.slavenames | buildbot.status.builder.BuilderStatus.workernames | 
| buildbot.status.builder.BuilderStatus.setSlavenames | buildbot.status.builder.BuilderStatus.setWorkernames | 
| buildbot.process.botmaster.BotMaster.slaveLost | buildbot.process.botmaster.BotMaster.workerLost | 
| buildbot.process.botmaster.BotMaster.getBuildersForSlave | buildbot.process.botmaster.BotMaster.getBuildersForWorker | 
| buildbot.process.botmaster.BotMaster.maybeStartBuildsForSlave | buildbot.process.botmaster.BotMaster.maybeStartBuildsForWorker | 
| buildbot.locks.RealSlaveLock | buildbot.locks.RealWorkerLock | 
| buildbot.locks.RealSlaveLock.maxCountForSlave | buildbot.locks.RealWorkerLock.maxCountForWorker | 
| buildbot.protocols.base.Connectionconstructor positional argumentbuildslavewas renamed | worker | 
| buildbot.protocols.base.Connection.buidslave | buildbot.protocols.base.Connection.worker | 
| buildbot.protocols.base.Connection.remoteGetSlaveInfo | buildbot.protocols.base.Connection.remoteGetWorkerInfo | 
| buildbot.protocols.pb.Connectionconstructor positional argumentbuildslavewas renamed | worker | 
Other changes done without providing fallback:
- Functions argument - buildslaveNamerenamed to- workerName.
- Loop variables, local variables, helper functions: - Old name - New name - s- wor- worker- sl- wor- worker- bs(“buildslave”)- w- sb- wfb(“worker for builder”)- bs1(),- bs2()- w1(),- w2()- bslave- worker- BS1_NAME,- BS1_ID,- BS1_INFO- W1_NAME,- W1_ID,- W1_INFO
- In - buildbot.config.BuilderConfig.getConfigDictresult- 'slavenames'key changed to- 'workernames';- 'slavebuilddir'key changed to- 'workerbuilddir';- 'nextSlave'key changed to- 'nextWorker'.
- buildbot.process.builder.BuilderControl.pingnow generates- ["ping", "no worker"]event, instead of- ["ping", "no slave"].
- buildbot.plugins.util.WorkerChoiceParameter(previously- BuildslaveChoiceParameter) label was changed from- Build slaveto- Worker.
- buildbot.plugins.util.WorkerChoiceParameter(previously- BuildslaveChoiceParameter) default name was changed from- slavenameto- workername.
- buildbot.status.builder.SlaveStatusfallback was removed.- SlaveStatuswas moved to- buildbot.status.builder.slavepreviously, and now it’s- buildbot.status.worker.WorkerStatus.
- buildbot.status.status_push.StatusPushevents generation changed (this module will be completely removed in 0.9.x):- instead of slaveConnectedwith dataslave=...now generatedworkerConnectedevent with dataworker=...;
- instead of slaveDisconnectedwith dataslavename=...now generatedworkerDisconnectedwith dataworkername=...;
- instead of slavePausedwith dataslavename=...now generatedworkerPausedevent with dataworkername=...;
- instead of slaveUnpausedwith dataslavename=...now generatedworkerUnpausedevent with dataworkername=...;
 
- instead of 
- buildbot.status.build.BuildStatus.asDictreturns worker name under- 'worker'key, instead of- 'slave'key.
- buildbot.status.builder.BuilderStatus.asDictreturns worker names under- 'workers'key, instead of- 'slaves'key.
- Definitely privately used “slave”-named variables and attributes were renamed, including tests modules, classes and methods. 
5.39.3.1. Database¶
Database API changes done without providing fallback.
| Old name | New name | 
|---|---|
| buildbot.db.buildslaves.BuildslavesConnectorComponent.getBuildslaves(rewritten in nine) andbuildbot.db.buildslaves.BuildslavesConnectorComponent.getBuildslave(introduced in nine) results uses instead of'slaveinfo'key | 'workerinfo'key | 
| buildbot.db.model.Model.buildslaves | buildbot.db.model.Model.workers | 
| buildbot.db.model.Model.configured_buildslaves | buildbot.db.model.Model.configured_workers | 
| buildbot.db.model.Model.connected_buildslaves | buildbot.db.model.Model.connected_workers | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.findBuildslaveId(introduced in nine) | buildbot.db.workers.WorkersConnectorComponent.findWorkerId | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.deconfigureAllBuidslavesForMaster(introduced in nine, note typoBuidslaves) | buildbot.db.workers.WorkersConnectorComponent.deconfigureAllWorkersForMaster | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveConfigured(introduced in nine) | buildbot.db.workers.WorkersConnectorComponent.workerConfigured | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveConfiguredmethod argumentbuildslaveidwas renamed (introduced in nine) | workerid | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.getBuildslave | buildbot.db.workers.WorkersConnectorComponent.getWorker | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.getBuildslavesmethod argument_buildslaveidwas renamed (introduced in nine) | _workerid | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveConnected(introduced in nine) | buildbot.db.workers.WorkersConnectorComponent.workerConnected | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveConnectedmethod argumentslaveinfowas renamed (introduced in nine) | workerinfo | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveConnectedmethod argumentbuildslaveidwas renamed (introduced in nine) | workerid | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveDisconnected(introduced in nine) | buildbot.db.workers.WorkersConnectorComponent.workerDisconnected | 
| buildbot.db.buildslaves.BuildslavesConnectorComponent.buildslaveDisconnectedmethod argumentbuildslaveidwas renamed (introduced in nine) | workerid | 
| buildbot.db.builds.BuildsConnectorComponent.getBuildsmethod argumentbuildslaveidwas renamed (introduced in nine) | workerid | 
| buildbot.db.builds.BuildsConnectorComponent.addBuildmethod argumentbuildslaveidwas renamed (introduced in nine) | workerid | 
| buildbot.reporters.message.MessageFormattertemplate variableslavename | workername | 
5.39.3.2. Data API¶
Python API changes:
| Old name | New name | 
|---|---|
| buildbot.data.buildslaves | workers | 
| buildbot.data.buildslaves.BuildslaveEndpoint | WorkerEndpoint | 
| buildbot.data.buildslaves.BuildslavesEndpoint | WorkersEndpoint | 
| buildbot.data.buildslaves.Buildslave | Worker | 
| buildbot.data.buildslaves.Buildslave.buildslaveConfigured | workerConfigured | 
| buildbot.data.buildslaves.Buildslave.findBuildslaveId | findWorkerId | 
| buildbot.data.buildslaves.Buildslave.buildslaveConnected | workerConnected | 
| buildbot.data.buildslaves.Buildslave.buildslaveDisconnected | workerDisconnected | 
| buildbot.data.buildslaves.Buildslave.deconfigureAllBuidslavesForMaster | deconfigureAllWorkersForMaster | 
| buildslaveidin function arguments and API specification | workerid | 
| slaveinfoin function arguments and API specification | workerinfo | 
Changed REST endpoints:
| Old name | New name | 
|---|---|
| /buildslaves | /workers | 
| /buildslaves/n:buildslaveid | /workers/n:workerid | 
| /buildslaves/n:buildslaveid/builds | /workers/n:workerid/builds | 
| /buildslaves/:buildslaveid/builds/:buildid | /workers/:workerid/builds/:buildid | 
| /masters/n:masterid/buildslaves | /masters/n:masterid/workers | 
| /masters/n:masterid/buildslaves/n:buildslaveid | /masters/n:masterid/workers/n:workerid | 
| /masters/n:masterid/builders/n:builderid/buildslaves | /masters/n:masterid/builders/n:builderid/workers | 
| /masters/n:masterid/builders/n:builderid/buildslaves/n:buildslaveid | /masters/n:masterid/builders/n:builderid/workers/n:workerid | 
| /builders/n:builderid/buildslaves | /builders/n:builderid/workers | 
| /builders/n:builderid/buildslaves/n:buildslaveid | /builders/n:builderid/workers/n:workerid | 
Changed REST object keys:
| Old name | New name | 
|---|---|
| buildslaveid | workerid | 
| slaveinfo | workerinfo | 
| buildslave | worker | 
| buildslaves | workers | 
data_module version bumped from 1.2.0 to 2.0.0.
5.39.3.3. Web UI¶
In base web UI (www/base) and Material Design web UI (www/md_base) all “slave”-named messages and identifiers were renamed to use “worker” names and new REST API endpoints.
5.39.3.4. MQ layer¶
buildslaveid key in messages were replaced with workerid.
5.39.4. Details¶
For a more detailed description of the changes made in this version, see the git log itself:
git log v0.9.0b7..v0.9.0b8