#624 closed defect (fixed)

buildbot is too noisy about versions

Reported by: warner Owned by: somebody
Priority: minor Milestone: undecided
Component: dev-infrastructure Version: 1.3.0
Keywords: Cc:
Launchpad Bug:

Description

The buildbot currently displays four separate steps with information about versions of programs and tools on the buildslave side: one for python, one for buildbot, and two for darcs (short version and long version).

None of this needs to be on the waterfall page. While it is fascinating to see the variety of tool versions we have deployed (buildbot-0.7.4? wow, that's old), it's distracting. On my laptop screen, this fills about four inches of screen real estate with information that tells me nothing about whether the build is succeeding or failing.

I think we should have a single step, called "get versions", which contains (in a log file, like stdout) all the version information. I would create a "make show-versions" target in the Makefile that determines and displays all these versions, and have the "get versions" step simply invoke that target and log the results. I'm not convinced these versions need to be stored in a build-property, so I don't think we need a custom buildstep.

Change History (3)

comment:1 Changed at 2009-02-13T14:14:08Z by zooko

This sounds fine, except note that currently buildslaves are not required to have "make" installed, as none of the build steps use make. It would be good if we could preserve that property.

comment:2 Changed at 2009-02-13T16:01:14Z by warner

hrm. It seems like the alternatives are:

  1. four lines of shell commands in a Makefile target
  2. add "python setup.py show-tool-versions" or something, with four calls to subprocess.call()
  3. add a (relatively complicated) buildbot BuildStep subclass which invokes four separate RemoteCommands, each doing a different shell command
  4. add a (relatively complicated in a different way) buildbot ShellCommand which invokes a single compound shell command, like python --version; buildbot --version; etc. This would require an unusual command, since usually the buildslave builds argv directly and runs sys.exec, rather than allowing shell metacharacters to be interpreted.

The shell commands to be run look like:

  • python: python -c "import sys; print sys.version"
  • buildbot: buildbot --version
  • darcs (short): darcs --version
  • darcs (long): darcs --exact-version

The first one involves some shell-escaping, so method 4 would be further complicated. On the other hand, it would be trivial to emit the right sys.version string from within python if we used method 2.

Sounds like method 2 is the simplest approach.

comment:3 Changed at 2009-03-07T04:38:14Z by zooko

  • Resolution set to fixed
  • Status changed from new to closed

Brian has implemented this in (most recently) c2a2e930899bb354.

Note: See TracTickets for help on using tickets.