# 5.108. Release Notes for Buildbot v0.8.8

The following are the release notes for Buildbot v0.8.8 Buildbot v0.8.8 was released on August 22, 2013

## 5.108.1. Master

### 5.108.1.1. Features

- The `MasterShellCommand` step now correctly handles environment variables passed as list.

- The master now poll the database for pending tasks when running buildbot in multi-master mode.

- The algorithm to match build requests to slaves has been rewritten pull request 615. The new algorithm automatically takes locks into account, and will not schedule a build only to have it wait on a lock. The algorithm also introduces a `canStartBuild` builder configuration option which can be used to prevent a build request being assigned to a slave.

- `buildbot stop` and `buildbot restart` now accept `--clean` to stop or restart the master cleanly (allowing all running builds to complete first).

- The `IRC` bot now supports clean shutdown and immediate shutdown by using the command ‘shutdown’. To allow the command to function, you must provide allowShutdown=True.

- `CopyDirectory` has been added.

- `BuildslaveChoiceParameter` has been added to provide a way to explicitly choose a buildslave for a given build.

- default.css now wraps preformatted text by default.

- Slaves can now be paused through the web status.

- The latent buildslave support is less buggy, thanks pull request 646.

- The `treeStableTimer` for `AnyBranchScheduler` now maintains separate timers for separate branches, codebases, projects, and repositories.

- `SVN` has a new option preferLastChangedRev=True to use the last changed revision for `got_revision`

- The build request DB connector method `getBuildRequests` can now filter by branch and repository.

- A new `SetProperty` step has been added in `buildbot.steps.master` which can set a property directly without accessing the slave.

- The new `LogRenderable` step logs Python objects, which can contain renderables, to the logfile. This is helpful for debugging property values during a build.

- ‘buildbot try’ now has an additional option –property option to set properties. Unlike the existing option –properties option, this new option supports setting only a single property and therefore allows commas to be included in the property name and value.

- The `Git` step has a new `config` option, which accepts a dict of git configuration options to pass to the low-level git commands. See `Git` for details.

- In `ShellCommand` ShellCommand now validates its arguments during config and will identify any invalid arguments before a build is started.

- The list of force schedulers in the web UI is now sorted by name.

- OpenStack-based Latent Buildslave support was added. See pull request 666.

- Master-side support for P4 is available, and provides a great deal more flexibility than the old slave-side step. See pull request 596.

- Master-side support for Repo is available. The step parameters changed to camelCase. `repo_downloads`, and `manifest_override_url` properties are no longer hardcoded, but instead consult as default values via renderables. Renderable are used in favor of callables for `syncAllBranches` and `updateTarball`.

- Builder configurations can now include a `description`, which will appear in the web UI to help humans figure out what the builder does.

- GNUAutoconf and other pre-defined factories now work correctly (bug #2402)

- The pubDate in RSS feeds is now rendered correctly (bug #2530)

### 5.108.1.2. Deprecations, Removals, and Non-Compatible Changes

- The `split_file` function for `SVNPoller` may now return a dictionary instead of a tuple. This allows it to add extra information about a change (such as `project` or `repository`).

- The `workdir` build property has been renamed to `builddir`. This change accurately reflects its content; the term “workdir” means something different. `workdir` is currently still supported for backwards compatibility, but will be removed eventually.

- The `Blocker` step has been removed.

- Several polling ChangeSources are now documented to take a `pollInterval` argument, instead of `pollinterval`. The old name is still supported.

- StatusReceivers’ checkConfig method should no longer take an errors parameter. It should indicate errors by calling `error`.

- Build steps now require that their name be a string. Previously, they would accept anything, but not behave appropriately.

- The web status no longer displays a potentially misleading message, indicating whether the build can be rebuilt exactly.

- The `SetProperty` step in `buildbot.steps.shell` has been renamed to `SetPropertyFromCommand`.

- The EC2 and libvirt latent slaves have been moved to `buildbot.buildslave.ec2` and `buildbot.buildslave.libirt` respectively.

- Pre v0.8.7 versions of buildbot supported passing keyword arguments to `buildbot.process.BuildFactory.addStep`, but this was dropped. Support was added again, while still being deprecated, to ease transition.

### 5.108.1.3. Changes for Developers

- Added an optional build start callback to `buildbot.status.status_gerrit.GerritStatusPush` This release includes the fix for bug #2536.

- An optional `startCB` callback to `GerritStatusPush` can be used to send a message back to the committer. See the linked documentation for details.

- bb:sched:ChoiceStringParameter has a new method `getChoices` that can be used to generate content dynamically for Force scheduler forms.

## 5.108.2. Slave

### 5.108.2.1. Features

- The fix for Twisted bug #5079 is now applied on the slave side, too. This fixes a perspective broker memory leak in older versions of Twisted. This fix was added on the master in Buildbot-0.8.4 (see bug #1958).

- The `--nodaemon` option to `buildslave start` now correctly prevents the slave from forking before running.

### 5.108.2.2. Deprecations, Removals, and Non-Compatible Changes

## 5.108.3. Details

For a more detailed description of the changes made in this version, see the git log itself:

    git log v0.8.7..v0.8.8