[Buildbot-devel] First impressions with 0.9.0b1

Vitali Lovich vlovich at gmail.com
Sun Jun 28 04:00:19 UTC 2015

Here are my notes of the changes I encountered migrating to 0.9.0 from 0.8.12.
TLDR: It can be a non-trivial amount of work to get the server to actually start.  It can be even more non-trivial work to get builds to actually run properly. 
The UI currently is too much of a usability regression to migrate my existing user-base.  Yes I could write my own but I have no guarantee that I’ll even be able to get to feature-parity with the old UI.

First Impression
Beta packages might have issues (as raised in separate thread)
change hooks are missing
can’t seem to get buildbot-www to install properly via setup.py develop.  Had to pip install it manually.
There should be a package that provides a default usable experience.
It’s a training issue but needing 3 or 4 other packages just to get a minimally usable system isn’t a great first experience (even though it was called out explicitly in the e-mail, it was not in the release notes).
Ideally some kind of single meta-package you could install to get the equivalent experience in 0.9 as 0.8.  Potentially even install the slave too.  Would also avoid any kind of “you need this package first” issues.
Took about 8 hours to get a moderately complex 0.8.12 configuration to startup with 0.9.0.  It was not particularly pleasant but it is do-able (mostly straightforward).
This is just to get it to start to the point where I can see the Web UI
In other words the server starts but I doubt that any builders can successfully build (i.e. I know at least 1 project fails to build).
Force schedulers are either broken or I can’t figure out how to use them.
Rebuild button is removed/missing from web UI.
Change-hook/gitlab processing change?  Deleted branches are no longer ignored…
Some of migration notes are called out in release notes.  Many are missing.
Release notes are long, talk about other things. Some notes are difficult to connect the dots to as the cause.
A lot of times things are mentioned as removed with no-to minimal discussion about how to replace them.  The obvious one is how to migrate messageFormatter in MailNotifier.
An explicit migration guide may be needed depending on other people’s experiences
It’s possible to have 0.9 & 0.8.12 code mostly live side-by-side
Would be nice if there were an explicit buildbot.IS_NINE boolean in both 0.8 & 0.9
Usually possible to reverse engineer some kind of signal of whether running in 0.9
Doing this helps reduce the maintenance cost of migration; otherwise merge conflicts would be a PITA.
The UI, while pretty, has a lot of usability annoyances, regressions & bugs.
Don’t get me wrong.  Lots of things are improved.  In terms of deploying it to my users though it’s too premature.
Yes, I could probably re-write/modify the UI now that it’s much easier.  I want to know however that there’s a reference UI that is minimally usable as a fallback.
The main one is that force schedulers don’t seem to work (could be something to do with my setup because the UI does appear in the reference page).
The UI locks up at random times.  For some reason the Websocket connection randomly gets lost & then it looks like it then tries to reconnect to a lot of things (many that potentially seem irrelevant).
The sidebar scrolling in/out & resetting to this behavior is really annoying
Migration pain-points that can be mined from release notes
MailNotifier moved to: buildbot.reporters.mail
messageFormatter argument to MailNotifier is gone.  Replacement buildbot.status.message.MessageFormatter doesn’t appear to have any documentation.
Getting the status from the build/buildstep doesn’t actually return a populated object? Something like that.
Thankfully the non-status objects contained enough information for this not to be an issue (e.g. executedSteps in the process.build.Build)
Migration surprises
‘status’ key is not allowed in configuration - any appearance of it will cause startup to fail.  No notes about where things are supposed to be.  Had to go spelunking through the manual.
MailNotifier needs to be added to ‘services’ not ‘status’
PBChangeSource goes into ‘change_source’ not ‘status’
I’m sure there are others
GitLab web hook moved to buildbot.www.hooks.gitlab was buildbot.status.web.hooks.gitlab (normally probably wouldn’t care since these are normally accessed by name but my gitlab change-hook extends the built-in one).
mergeRequests option no longer understood by Builder
Had a doIf that performed an action if the previous step failed.  It was doing build.getStatus() & looking for the matching step that way.  Build now has executedSteps so was able to migrate.
BuildStep#describe is not allowed for new-style steps in 0.9 but is in 0.8.12
authz is gone with no apparent replacement.  In other words, no way to allow certain actions or disallow others.  Unclear if this is actually important.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20150627/cccf4576/attachment.html>

More information about the devel mailing list