[Buildbot-commits] [Buildbot] #2654: [nine] Handle build status compatibly

Buildbot trac trac at buildbot.net
Tue Feb 18 11:17:06 UTC 2014


#2654: [nine] Handle build status compatibly
-------------------+--------------------
Reporter:  dustin  |       Owner:
    Type:  task    |      Status:  new
Priority:  major   |   Milestone:  0.9.0
 Version:          |  Resolution:
Keywords:          |
-------------------+--------------------

Comment (by tardyp):

 on buildbot 0.8.x step have 2 way of stating their status as text
 {{{
 #!python
 step.setText(list_of_strings)
 }}}
 This is the status text displayed in the step part of the UI. Some steps
 are using description, and descriptionDone parameters to set respectively
 the status when step is running, and when step has succeed.


 {{{
 #!python
 step.setText2(list_of_strings)
 }}}
 This is the status text that is concatenated for the build part of the UI.
 It is used in the top of a build part, but more importantly on the build
 list (aka onelineperbuild) and allows to quickly see why this build
 failed.

 The build's status is the concatenation of
  - build results as text: eg. Failed
  - all steps's text2

 As the build's status is a concatenation of possibly a number of steps's
 text2. So this must be very concise, and set only if really needed.

 I can see several problems to this approach.

  - names are bad. text and text2 does not assess at all where this text
 will be used in the UI
  - having the step's text being a list of strings is confusing for custom
 step writers. The type is not checked, and you'll often get bugs having
 strings being automatically converted as list of single chars.. I don't
 see a clear reason why we would keep the list of strings for state_strings
  - You cannot quickly see which step wrote which state string, so that we
 cannot make a nice mouseover UI over the list to have quick access to the
 logs

 As we already changed the step data in buildbot nine, I would propose the
 following:

  - change db backend to use state_string instead of state_strings
  - keep setText() api, but " ".join() it if it is sent a list, and store
 the text result in the data api
  - mark setText2() api as deprecated
  - change the state_strings format in the builds to be a dictionary
 {{{
    {
       'global': "SUCCESS"
       '<stepid1>': "make failed"
    }
 }}}

-- 
Ticket URL: <http://trac.buildbot.net/ticket/2654#comment:1>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the Commits mailing list