4. Release Notes

4.1. Buildbot 0.9.9 ( 2017-06-29 )

4.1.1. Bug fixes

  • Fixed a regression inn UserPasswordAuth where a list would create an error.
  • Fix non ascii payload handling in base web hook (issue # 3321).
  • Fixed default buildrequest collapsing (issue # 3151)
  • _wait_for_request() would fail to format a log statement due to an invalid type being passed to log.msg (resulting in a broken build)
  • Fix Windows compatibility with frontend development tool gulp dev proxy (issue # 3359)

4.1.2. Features

  • New Grid View UI plugin.
  • The Change Hooks system is now integrated in the Plugin Infrastructure in Buildbot system, making it easier to subclass hooks. There is still the need to re- factor hook by hook to allow better customizability.
  • The GitHubAuth now allows fetching the user team membership for all organizations the user belongs to. This requires access to a V4 GitHub API(GraphQL).
  • GitLab merge request hook now create a change with repository to be the source repository and branch the source branch. Additional properties are created to point to destination branch and destination repository. This makes GitLabStatusPush push the correct status to GitLab, so that pipeline report is visible in the merge request page.
  • The GitHubEventHandler now allows the inclusion of white-listed properties for push events.
  • Allow sending a comment to a pull request for Bitbucket Server in BitbucketServerPRCommentPush
  • Implement support for Bitbucket Server webhook plugin in BitbucketServerEventHandler

4.2. Buildbot 0.9.8 ( 2017-06-14 )

4.2.1. Core Bug fixes

  • Fix incompatibility issue of UserPasswordAuth with python 3.
  • Fix issue with oauth sequence not working with Firefox (issue # 3306)
  • Update old addChange method to accept the new chdict names if only the new name is present. Fixes issue # 3191.
  • fix bytes vs string issue on python3 with authorization of rest endpoints.

4.2.2. Core Features

  • doStepIf is now renderable.
  • Source step codebase is now renderable.
  • Step names are now renderable.
  • Added giturlparse utility function to help buildbot components like reporters to parse git url from change sources.
  • Factorized the mail reporter to be able to write new message based reporters, for other backend than SMTP.
  • The class Property now allows being used with Python built in comparators. It will return a Renderable which executes the comparison.

4.2.3. Components Bug fixes

  • GitLab reporter now correctly sets the status to running instead of pending when a build starts.
  • GitLab reporter now correctly works when there are multiple codebase, and when the projects names contain url reserved characters.
  • GitLab reporter now correctly reports the status even if there are several sourcestamps. Better parsing of change repository in GitLab reporter so that it understands ssh urls and https url. GitLab reporter do not use the project field anymore to know the repository to push to.

4.2.4. Components Features

  • GitLab hook now supports the merge_request event to automatically build from a merge request. Note that the results will not properly displayed in merge_request UI due to https://gitlab.com/gitlab-org/gitlab-ce/issues/33293
  • Added a https://pushjet.io/ reporter as buildbot.reporters.pushjet.PushjetNotifier
  • New build step Assert Tests a renderable or constant if it evaluates to true. It will succeed or fail to step according to the result.

4.3. Buildbot 0.9.7 ( 2017-05-09 )

4.3.1. Core Bug fixes

4.3.2. Components Bug fixes

  • Allow renderables in options and definitions of step CMake. Currently only dicts and lists with renderables inside are allowed.
  • OAuth Authentication are now working with RolesFromEmails.
  • DockerLatentWorker: _image_exists does not raise anymore if it encounters an image with <none> tag
  • Fix command line parameters for Robocopy step verbose option

4.3.3. Core Features

  • Builds state_string is now automatically computed according to the BuildStep.getResultSummary, BuildStep.description and updateBuildSummaryPolicy from Common Parameters. This allows the dashboards and reporters to get a descent summary text of the build without fetching the steps.
  • New configurators section, which can be used to create higher level configuration modules for Buildbot.
  • New JanitorConfigurator which can be used to create a builder which save disk space by removing old logs from the database.

4.3.4. Components Features

4.4. Buildbot 0.9.6 ( 2017-04-19 )

4.4.1. Core Bug fixes

  • buildbot.www.authz.endpointmatchers.AnyControlEndpointMatcher now actually doesn’t match GET requests. Before it would act like an AnyEndpointMatcher since the GET had a different case.
  • Passing unicode builderNames to ForceScheduler no longer causes an error.
  • Fix issue with :bb:sched::Nightly change classification raising foreign key exceptions (issue # 3021)
  • Fixes an exception found buildbot_net_usage_data._sendWithUrlib when running through the tutorial using Python 3.
  • usePTY configuration of the ShellCommand now works as expected with recent version of buildbot-worker.

4.4.2. Components Bug fixes

  • pollAtLaunch of the GitHubPullrequestPoller now works as expected. Also the author email won’t be displayed as None
  • GerritChangeSource and GerritStatusPush now use the master’s environment including PATH variable to find the ssh binary.
  • SlaveDirectoryUploadCommand no longer throws exceptions because the file “is used by another process” under Windows

4.4.3. UI Bug fixes

  • Fix waterfall scrolling and zooming in current browsers
  • console_view now properly uses revlink metadata to link to changes.
  • Fixed Console View infinite loading spinner when no change have been recorded yet (issue # 3060).

4.4.4. Core Features

  • new Virtual Builders concept for better integration of frameworks which store the build config along side the source code.

4.4.5. Components Features

  • BitBucket now sets the event property on each change to what the X-Event-Key header contains.
  • GitHubPullrequestPoller now adds additional information about the pull request to properties. The property argument is removed and is populated with the repository full name.
  • GitHub now sets the event property on each change to what the X-GitHub-Event header contains.
  • Changed GitHubAuth now supports GitHub Enterprise when setting new serverURL argument.
  • GitLab now sets the event property on each change to what the X-GitLab-Event header contains.
  • GitHub now process git tag push events
  • GitHub now adds more information about the pull request to the properties. This syncs features with GitHubPullrequestPoller
  • GitLab now process git tag push events
  • GitLab now supports authentication with the secret token

4.4.6. UI Features

4.5. Buildbot 0.9.5 ( 2017-03-18 )

4.5.1. Bug fixes

  • Fix issue with compressing empty log
  • Fix issue with db being closed by wrong thread
  • Fix issue with buildbot_worker not closing file handles when using the transfer steps
  • Fix issue with buildbot requesting too many permissions from GitHub’s OAuth
  • Fix HTTPStep to accept json as keyword argument.
  • Updated OpenStackLatentWorker to use keystoneauth1 so it will support latest python-novaclient packages.
  • Include RpmLint step in steps plugins.

4.5.2. Core Features

  • Experimental support for Python 3.5 and 3.6. Note that complete support depends on fixes to be released in Twisted 17.2.0.
  • New experimental Secret Management framework, which allows to securely declare secrets, reusable in your steps.
  • New Writing Dashboards with Flask or Bottle plugin, which allows to write custom dashboard with traditional server side web frameworks.
  • Added AnyControlEndpointMatcher and EnableSchedulerEndpointMatcher for better configurability of the access control. If you have access control to your Buildbot, it is recommended you add AnyControlEndpointMatcher at the end of your access control configuration.
  • Schedulers can now be toggled on and off from the UI. Useful for temporarily disabling periodic timers.

4.5.3. Components Features

  • FileUpload now supports setting the url title text that is visible in the web UI. FileUpload now supports custom description and descriptionDone text.
  • EC2LatentWorker now provides instance id as the instance property enabling use of the AWS toolkit.
  • Add GitHub pull request Poller to list of available changesources.
  • OAuth2LoginResource now supports the token URL parameter. If a user wants to authenticate through OAuth2 with a pre- generated token (such as the access_token provided by GitHub) it can be passed to /auth/login as the token URL parameter and the user will be authenticated to buildbot with those credentials.
  • New reporter GitHubCommentPush can comment on GitHub PRs
  • GitPoller now supports polling tags in a git repository.
  • MultipleFilUpload now supports the glob parameter. If glob is set to True all workersrcs parameters will be run through glob and the result will be uploaded to masterdest
  • Changed OpenStackLatentWorker to default to v2 of the Nova API. The novaclient package has had a deprecation warning about v1.1 and would use v2 anyway.

4.5.4. Deprecations and Removals

4.6. Buildbot 0.9.4 ( 2017-02-08 )

4.6.1. Database upgrade

A database upgrade is necessary for this release (see upgrade-master).

4.6.2. Bug fixes

  • Like for buildbot start, buildbot upgrade-master will now erase an old pidfile if the process is not live anymore instead of just failing.
  • Change properties ‘value’ changed from String(1024) to Text. Requires upgrade master. (bug #3197)
  • When using REST API, it is now possible to filter and sort in descending order at the same time.
  • Fix issue with HttpStatusPush raising datetime is not JSON serializable error.
  • Fix issue with log viewer not properly rendering color codes.
  • Fixed log viewer selection and copy-paste for Firefox (bug #3662).
  • Fix issue with DelayedCalled already called, and worker missing notification email never received.
  • schedulers and change_source are now properly taking configuration change in account with buildbot reconfig.
  • setuptools is now explicitly marked as required. The dependency was previously implicit.
  • buildbotNetUsageData now uses requests if available and will default to HTTP if a bogus SSL implementation is found. It will also correctly send information about the platform type.

4.6.3. Features

  • Buildbot now uses JWT to store its web UI Sessions. Sessions now persist upon buildbot restart. Sessions are shared between masters. Session expiration time is configurable with c['www']['cookie_expiration_time'] see www.

  • Builders page has been optimized and can now be displayed with 4 http requests whatever is the builder count (previously, there was one http request per builder).

  • Builder and Worker page build list now have the numbuilds= option which allows to show more builds.

  • Masters page now shows more information about a master (workers, builds, activity timer)

  • Workers page improvements:

    • Shows which master the worker is connected to.
    • Shows correctly the list of builders that this master is configured on (not the list of buildermaster which nobody cares about).
    • Shows list of builds per worker similar to the builders page.
    • New worker details page displays the list of builds built by this worker using database optimized query.

4.6.4. Deprecations and Removals

  • Some deprecated broken Contrib Scripts were removed.
  • buildbot.www.hooks.googlecode has been removed, since the Google Code service has been shut down.
  • buildbot.util.json has been deprecated in favor of the standard library json. simplejson will not be used anymore if found in the virtualenv.

4.7. Buildbot 0.9.3 ( 2017-01-11 )

4.7.1. Bug fixes

  • Fix BitbucketStatusPush ep should start with / assertion error.
  • Fix duplicate worker use case, where a worker with the same name would make the other worker also disconnect (bug #3656)
  • GitPoller: buildPushesWithNoCommits now rebuilds for a known branch that was updated to an existing commit.
  • Fix issue with log viewer not staying at bottom of the log when loading log lines.
  • Fixed addBuildURLs in Trigger to use results from triggered builds to include in the URL name exposed by API.
  • Fix Wamp mq support by removing debug, debug_amp and debug_app from the mq config, which is not available in latest version of Python Autobahn. You can now use wamp_debug_level option instead.
  • fix issue with factory.workdir AttributeError are not properly reported.

4.7.2. Features

  • Optimize the memory consumption of the log compression process. Buildbot do not load the whole log into memory anymore. This should improve a lot buildbot memory footprint.
  • Changed the build page so that the preview of the logs are shown in live. It is a preview means the last lines of log. How many lines is configurable per user in the user settings page.
  • Log viewer line numbers are no longer selectable, so that it is easier to copy paste.
  • DockerLatentWorker accepts now renderable Dockerfile
  • Renderer function can now return IRenderable objects.
  • new SetProperties which allows to generate and transform properties separately.
  • Handle new workers in windows_service.py script.
  • Sort the builders in the waterfall view by name instead of ID.

4.8. Buildbot 0.9.2 ( 2016-12-13 )

4.8.1. Bug fixes

  • Fix GitHubAuth to retrieve all organizations instead of only those publicly available.
  • Fixed ref to point to branch instead of commit sha in GitLabStatusPush
  • IRC maybeColorize is able to highlight single words and stop colorization at the end. The previous implementation only stopped colorization but not boldface.
  • fix compatibility issue with mysql5 (do not set default value for TEXT column).
  • Fixed addChange in Change to use the revlink configuration option to generate the revlink.
  • fix threading issue in DockerLatentWorker

4.8.2. Features

  • Implement BitbucketAuth.
  • New GerritEventLogPoller poller to poll Gerrit changes via http API.
  • New GerritVerifyStatusPush can send multiple review status for the same Gerrit change.
  • IRC appends the builder URL to a successful/failed build if available
  • MailNotifier now accepts useSmtps parameter for initiating connection over an SSL/TLS encrypted connection (SMTPS)
  • New support for Mesos and Marathon via MarathonLatentWorker. Marathon is a production-grade container orchestration platform for Mesosphere’s Data- center Operating System (DC/OS) and Apache Mesos.
  • password in DockerLatentWorker and HyperLatentWorker, can be None. In that case, they will be auto-generated from random number.
  • BitbucketServerStatusPush now accepts key, buildName, endDescription, startDescription, and verbose parameters to control the JSON sent to Stash.
  • Buildbot can now be configured to deny read access to REST api resources based on authorization rules.