Removed support for Python 2.7 in the buildbot master code.
Buildbot worker remains compatible with python2.7, and interoperability tests are run continuously.

APIs that are not documented in the official Buildbot documentation have been
made private. Users of these undocumented APIs are encouraged to file bugs to
get them exposed.

Removed support of old slave APIs from pre-0.9 days. Using old APIs may fail
silently. To avoid weird errors when upgrading a Buildbot installation that
may use old APIs, first upgrade to to 1.8.0 and make sure there are no
deprecated API warnings.

Remove deprecated default value handling of the keypair_name and
security_name attributes of EC2LatentWorker.

Support for Hyper.sh containers cloud provider has been removed as this
service has shutdown.

Restricted groups added by GitHubAuth’s
getTeamsMembership option to only those teams to which the user belongs.
Previously, groups were added for all teams for all organizations to which
the user belongs.

GitHub teams added to a user’s groups by
GitHubAuth’s getTeamsMembership option
are now added by slug as well as by name. This means a team named “Bot
Builders” in the organization “buildbot” will be added as both buildbot/BotBuilders and buildbot/bot-builders.

Make urlText renderable for the
FileUpload build step.

Added noticeOnChannel option to IRC to send notices
instead of messages to channels. This was an option in v0.8.x and removed in
v0.9.0, which defaulted to sending notices. The v0.8.x default of sending
messages is now restored.

Reverted: Fix git submodule support when using sshPrivateKey and sshHostKey because it broke other use cases (issue # 4316)
In order to have this feature to work, you need to keep your master in 1.4.0, and make sure your worker buildbot.tac are installed in the same path as your master.

Fixed a bug in MailNotifier’s
createEmail method when called with the default builds value which
resulted in mail not being sent.

Fixed a Github crash that happened on Pull Requests, triggered by Github
Web-hooks. The json sent by the API does not contain a commit message. In
github.py this causes a crash, resulting into response 500 sent back to
Github and building failure.

Speed up generation of api/v2/builders by an order of magnitude. (issue # 3396).

Allow the remote ref to be specified in the GitHub hook configuration (issue # 3998)

Added callable to p4 source that allows client code to resolve the p4 user
and workspace into a more complete author. Default behaviour is a lambda that
simply returns the original supplied who. This callable happens after the
existing regex is performed.

LDAP bytes/unicode handling has been fixed to work with Python 3. This means
that LDAP authentication, REMOTE_USER authentication, and LDAP avatars now
work on Python 3. In addition, an of bounds access when trying to load the
value of an empty LDAP attribute has been fixed.

Removing `no-select` rules from places where they would prevent the user
from selecting interesting text. (issue # 3663)

fix `Maximumrecursiondepthexceeded when lots of worker are trying to
connect while master is starting or reconfiguring (issue # 4042).

The Dockerfile for the buildbot master image has been updated to use Alpine
Linux 3.7. In addition, the Python requests module has been added to this
image. This makes GitHub authentication work out of the box with this image.
(issue # 4039)

Despite the major version bump, Buildbot 1.0.0 does not have major difference with the 0.9 series.
1.0.0 is rather the mark of API stability.
Developers do not foresee a major API break in the next few years like we had for 0.8 to 0.9.

Added an argument to P4Source that allows users to provide a callable to
convert Perforce branch and revision to a valid revlink URL. Perforce
supplies a p4web server for resolving urls into change lists.

Upgrading to guanlecoja-ui version 1.8.0, fixing two issues. Fixed issue
where the console view would jump to the top of page when opening the build
summary dialog (issue # 3657). Also improved sidebar behaviour by remembering
previous pinned vs. collapsed state.

Fixed inconsistent use of pointer style mouse cursor by removing it from
the .label css rule and instead creating a new .clickable css rule which
is used only in places which are clickable and would not otherwise
automatically get the pointer icon, for example it is not needed for
hyper-links. (issue # 3795).

Rebuilding with the same revision now takes new change properties into
account instead of re-using the original build change properties
(issue # 3701).

Worker authentication is now delayed via a DeferredLock until Buildbot
configuration is finished. This fixes UnauthorizedLogin errors during
buildbot restart (issue # 3462).

Improve buildrequest distributor to ensure all builders are processed. With
previous version, builder list could be re-prioritized, while running the
distributor, meaning some builders would never be run in case of master high
load. (issue # 3661)

Improve getOldestRequestTime function of buildrequest distributor to do
sorting and paging in the database layer (issue # 3661).

Web hooks change sources which use twisted.web.http.Request have been fixed to use bytes, not
native strings. This ensures web hooks work on Python 3. Please report any issues on web hooks in python3, as it is hard for us to test end to end.

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

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.

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.

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.

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.

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.