Python-based continuous integration testing framework; your pull requests are more than welcome!
BuildSetCombinedStatusGenerator
) that can access complete information about a buildset.get_sourcestamps_for_buildset
to get source stamps for a buildset. "/buildsets/:buildsetid/sourcestamps" endpoint has been added to access this from the Data API.extra_info_cb
argument to MessageFormatter
for this use case.GerritStatusPush
.reviewCB
, reviewArg
, startCB
, startArg
, summaryCB
, summaryArg
, builders
, wantSteps
, wantLogs
arguments of GerritStatusPush
have been deprecated.buildbot.changes.bitbucket.BitbucketPullrequestPoller
has been updated to emit the change files.EXCEPTION
build results when build steps that are about to end are cancelled.uploadDirectory
instead of throwing an exception when directory is not available. (#5878)parent_buildid
and parent_relationship
keys to the buildset completion event in the Data API.MailNotifier
now works correctly when SSL packages are installed but useTls=False
and auth (smtpUser
, smtpPassword
) is not set. (#5609)P4
now reports the correct got_revision
when syncing a changelist that only delete filesP4
step now use the rev-spec format //{p4client}/...@{revision}
when syncing with a revision--proxy-connection-string
into buildbot.tac when creating new Worker.Nightly
scheduler by upgrading croniter
code.isRaw
and isCollection
attributes of the Endpoint
type have been deprecated. Endpoint
is used to extend the Buildbot API. As a replacement use the new kind
attribute.AbstractLatentWorker.check_instance()
now accepts error message being supplied in case instance is not good. The previous API has been deprecated.The new React-based web frontend is no longer experimental. To enable please see the documentation on upgrading to 4.0 for more information. The new web frontend includes the following improvements compared to legacy AngularJS web frontend:
www["theme"]
key.Workers can now be created to use connection string
right out of the box when new option --connection-string=
is used.
Docker Latent workers will now show last logs in Buildbot UI when their startup fails.
Added EndpointKind.RAW_INLINE
data API endpoint type which will show the response data inline in the browser instead of downloading as a file.
Implemented a way to specify volumes for containers spawned by KubeLatentWorker
.
Nightly
scheduler now supports forcing builds at specific times even if onlyIfChanged
parameter was true and there were no important changes.
buildbot.steps.source.p4.P4
can now take a p4client_type
argument to set the client type (More information on client type here)
Added data and REST APIs to retrieve only projects with active builders.
Improved step result reporting to specify whether step failed due to a time out.
Added tags
option to the Git
source step to download tags when updating repository.
Worker now sends failure_reason
update when the command it was running timed out.
Legacy AngularJS web frontend will be removed in Buildbot 4.0. Fixes to React web frontend that are regressions from AngularJS web frontend will be backported to 3.x Buildbot series to make migration easier.
Buildbot Master now requires Python 3.8 or newer. Python 3.7 is no longer supported.
buildbot.util.croniter
module has been deprecated in favor of using Pypi croniter
package.
master.data.updates.setWorkerState()
has been deprecated. Use master.data.updates.set_worker_paused()
and master.data.updates.set_worker_graceful()
as replacements.
Buildbot now requires docker
of version v4.0.0 or newer for Docker support.
BuildStep instances are now more strict about when their attributes can be changed. Changing attributes of BuildStep instances that are not yet part of any build is most likely an error. This is because such instances are only being used to configure a builder as a source to create real steps from. In this scenario any attribute changes are ignored as far as build configuration is concerned.
Such changing of attributes has been deprecated and will become an error in the future release.
For customizing BuildStep after an instance has already been created set_step_arg(name, value)
function has been added.
copy-db
script.copy-db
script which sometimes lead to no data being copied.create-worker
that are converted to numbers are now also checked to be valid Python literals. This will prevent creating invalid worker configurations, e.g.: when using option --umask=022
instead of --umask=0o022
or --umask=18
(#7047)Git
source step with mode="incremental"
, shallow=True
, submodules=True
(regression since Buildbot 3.9.0) (#7054).shallow
option for the Git
source step is also supported in incremental
mode.util.debounce
when debouncer was being stopped under certain conditions. This caused step and build state string updates to be sometimes missed.GerritChangeSource
. GerritChangeSource
will instruct the ssh client to send periodic keepalive messages and will reconnect if the server does not reply for 45 seconds (default). GerritChangeSource
now has ssh_server_alive_interval_s
and ssh_server_alive_count_max
options to control this behavior.onlyIfChanged
is set to true and there is version upgrade from v3.4.0 (#6793)./auth/login
endpoint is accessed when using RemoteUserAuth
authentication plugin.Introduce a way to group builders by project. A new projects
list is added to the configuration dictionary. Builders can be associated to the entries in that list by the new project
argument.
Grouping builders by project allows to significantly clean up the UI in larger Buildbot installations that contain hundreds or thousands of builders for a smaller number of unrelated codebases. This is currently implemented only in experimental React UI.
Added support specifying the project in GitHubPullrequestPoller
. Previously it was forced to be equal to GitHub's repository full name.
Reporter BitbucketServerCoreAPIStatusPush
now supports BuildRequestGenerator
and generates build status for build requests (by default).
Buildbot now has copy-db
script migrate all data stored in the database from one database to another. This may be used to change database engine types. For example a sqlite database may be migrated to Postgres or MySQL when the load and data size grows.
Added cron features like last day of month to Nightly
Scheduler.
Buildrequests can now have their priority changed, using the /buildrequests
API.
The force scheduler can now set a build request priority.
Added support for specifying builder descriptions in markdown which is later rendered to HTML for presentation in the web frontend.
Build requests are now sorted according to their buildrequest. Request time is now used as a secondary sort key.
Significantly improved performance of reporters or reporters with slower generators which is important on larger Buildbot installations.
Schedulers can now set a default priority for the buildrequests that it creates. It can either be an integer or a function.
Implement support for shallow submodule update using git.
GerritChangeSource
will now log a small number of previous log lines coming from ssh
process in case of connection failure.
projectName
and projectURL
configuration dictionary keys.env
when calling ShellMixin.makeRemoteShellCommand
cheap_copy=True
(default).#
)
symbol to be compatible with what React web UI supports.WarningCountingShellCommand
parser.LdapUserInfo
.custom_class
change hook checks to allow hook without a plugin.ChangeFilter
filtering capabilities:
<attribute>_not_eq
parameters to require no match<attribute>_re
now support multiple regexes<attribute>_not_re
parameters to require no match by regexproperty_<match_type>
parameters to perform filtering on change properties.OldBuildCanceller
. This is useful in Version Control Systems such as Gerrit that have multiple branch names for the same logical branch that should be tracked by the canceller.p4port
argument of the P4
step has been marked renderable.buildbot-www-react
package and 'base_react': {}
key-value to www plugins. Currently no web UI plugins are supported. The existing web UI will be deprecated on a subsequent Buildbot release and eventually replaced with the React-based web UI on Buildbot 4.0.