[Buildbot-commits] [Buildbot] #2670: describe/_describe are backward
Buildbot trac
trac at buildbot.net
Wed Apr 23 01:00:50 UTC 2014
#2670: describe/_describe are backward
----------------------+---------------------
Reporter: dustin | Owner: dustin
Type: undecided | Status: new
Priority: critical | Milestone: 0.8.9
Version: 0.8.8 | Resolution:
Keywords: |
----------------------+---------------------
Comment (by dustin):
It's worth noting, too, that the current situation is not a great user
experience (although I'm sure lots of folks -- hi, thanks for visting this
bug! -- are wedded to how it is). Looking at the current metabuildbot, I
see:
name: git; status: update
name: virtualenv_setup; status: 'PYTHON='python2.4'; VE='../sandbox-
python2.4-Twisted==8.1.0-sqlalchemy==0.6.0samigr-0.7.1'; ...'
name
name: versions; status: versions
name: test slave; status: 268 tests passed 3 skips
Only the last of those really makes any sense.
I think there are a few pieces of information useful to the user here:
* step name
* step status (what's going on RIGHT NOW)
* step result (useful tidbits about the step)
* build-level step result (tidbits the user may want to see at the build
level)
The middle two are mutually exclusive, and the first is orthogonal to all
of this - step names are fixed early through a separate process. The
!BuildStep class itself knows if the step is finished, so there's no need
to pass that information as a parameter.
From the perspective of a build, there is one step running, which is best
represented with the step name and maybe step status; and there is a
collection of build-level results from finished steps.
So, how about this:
* A `BuildStep.getCurrentSummary` method which gets the step's current
state, called only while running.
* A `BuildStep.getResultSummary` method which gets the step's result and
build-level result, called only after the step is finished.
* a `BuildStep.updateStatus` method which is debounced (#2443) and calls
the appropriate one of the two funtions above, then sticks the result in
the appropriate places (!StepStatus on eight, data API on nine).
A step would store two strings, then: step summary and build summary[1].
This means that a test step could potentially call `updateStatus` for
every test case; the debouncing would take care of rate-limiting the
update messages, just like the batching takes care of limiting the number
of messages for new log entries. This would let users watch the tests run
"live" on the build or step status pages. Pretty cool, eh?
[1] I hate these names - ideas?
--
Ticket URL: <http://trac.buildbot.net/ticket/2670#comment:3>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the Commits
mailing list