| Index: third_party/buildbot_7_12/buildbot/NEWS
|
| diff --git a/third_party/buildbot_7_12/buildbot/NEWS b/third_party/buildbot_7_12/buildbot/NEWS
|
| deleted file mode 100644
|
| index dd2ab93109ec07b27ddcdc82f0ca677949208e1e..0000000000000000000000000000000000000000
|
| --- a/third_party/buildbot_7_12/buildbot/NEWS
|
| +++ /dev/null
|
| @@ -1,2718 +0,0 @@
|
| -Major User visible changes in Buildbot. -*- outline -*-
|
| - (see ChangeLog for a detailed list of changes)
|
| -
|
| -* Release 0.7.12 (January 21, 2010)
|
| -
|
| -** New 'console' display
|
| -
|
| -This is a new web status view combining the best of the (t)grid and waterfall
|
| -views.
|
| -
|
| -** New 'extended' stylesheet
|
| -
|
| -Buildbot has a new, much nicer stylesheet available. Copy the file
|
| -buildbot/status/web/extended.css over your existing public_html/buildbot.css to
|
| -se it.
|
| -
|
| -** Builders can be configured with an object
|
| -
|
| -Instead of a list of dictionaries, builders can now specified using a
|
| -BuilderConfig object in the configuration file. This will allow for better
|
| -argument checking and default values, and also makes it easier for users to
|
| -create subclasses to handle site-specific builder details. The old,
|
| -dictionary-based method of configuration is still supported.
|
| -
|
| -** Check for common mis-configuration in addStep
|
| -
|
| -When adding a new step to a factory, either of these are acceptable:
|
| -
|
| - f.addStep(ShellCommand(command="echo hello, world", description="say hi"))
|
| - f.addStep(ShellCommand, command="echo hello, world", description="say hi")
|
| -
|
| -but trying to mix these syntaxes is a common misconfiguration:
|
| -
|
| - f.addStep(ShellCommand(command="echo hello, world"), description="say hi")
|
| -
|
| -in which case the description argument was silently ignored. This is now an
|
| -error.
|
| -
|
| -** Support for log compression
|
| -
|
| -Log files can be compressed on the master side using either gzip or bzip2.
|
| -
|
| -** Builder.ping no longer accepts timeout argument (bug #664).
|
| -
|
| -The implementation was not robust enough and could cause the master to
|
| -unexpectedly disconnect the slave.
|
| -
|
| -** MailNotifier's customMesg replaced by messageFormatter
|
| -
|
| -The customMesg mechanism had the unfortunate side effect of loading all data
|
| -for a build into memory simultaneously, which for some builds could cause
|
| -memory exhaustion.
|
| -
|
| -** Suppression of selected compiler warnings
|
| -
|
| -The WarningCountingShellCommand class has been extended with the ability to
|
| -upload from the slave a file contain warnings to be ignored. See the
|
| -documentation of the suppressionFile argument to the Compile build step.
|
| -
|
| -** New buildstep `MTR'
|
| -
|
| -A new class buildbot.process.mtrlogobserver.MTR was added. This buildstep is
|
| -used to run test suites using mysql-test-run. It parses the stdio output for
|
| -test failures and summarises them on the waterfall page. It also makes server
|
| -error logs available for debugging failures, and optionally inserts
|
| -information about test runs and test failures into an external database.
|
| -
|
| -** Python API Docs
|
| -
|
| -The docstrings for buildbot are now available in a web-friendly format:
|
| - http://djmitche.github.com/buildbot/docs/latest/reference
|
| -
|
| -** Many, many bugfixes
|
| -
|
| -* Release 0.7.11p (July 16, 2009)
|
| -
|
| -Fixes a few test failures in 0.7.11, and gives a default value for branchType
|
| -if it is not specified by the master.
|
| -
|
| -* Release 0.7.11 (July 5, 2009)
|
| -
|
| -Developers too numerous to mention contributed to this release. Buildbot has
|
| -truly become a community-maintained application. Much hard work is not
|
| -mentioned here, so please consult the git logs for the detailed changes in this
|
| -release.
|
| -
|
| -** Better Memory Performance, Disk Cleanup
|
| -
|
| -Buildbot handles its memory usage a bit better, and can automatically purge old
|
| -history to keep memory and disk usage low. Look for eventHorizon,
|
| -buildHorizon, logHorizon, and changeHorizon.
|
| -
|
| -** Password Protection for Force Build and Stop actions
|
| -
|
| -It is now possible to require authentication to force build and stop via the
|
| -WebStatus interface. To use this, set the 'auth' field of WebStatus to a valid
|
| -IAuth implementation. Current implementations are:
|
| - BasicAuth with a list of user/passwords
|
| - HTPasswdAuth with an .htpasswd file
|
| -By default, the unauthenticated behavior will occur.
|
| -
|
| -** Web Status changes
|
| -
|
| -The "Graceful Shutdown" feature, as a kind of "force", now obeys allowForce.
|
| -
|
| -The waterfall and other pages are more deeply interlinked.
|
| -
|
| -Pending builds can be individually cancelled, or cancelled in bulk.
|
| -
|
| -** Fixed Transfer Steps
|
| -
|
| -Transfer step classes are more reliable; DirectoryUpload and DirectoryDownload
|
| -use tarfile instead of manually framing files. The DirectoryUpload step also
|
| -now supports compression.
|
| -
|
| -** Conditional Steps
|
| -
|
| -Steps now take a doStepIf parameter which can be used to implement simple
|
| -conditional execution of a step.
|
| -
|
| -** Colorized Steps
|
| -
|
| -Steps are now hilighted with a color in the build view to indicate their
|
| -success or failure.
|
| -
|
| -** Improved build prioritization
|
| -
|
| -Bugfixes and fairer scheduling
|
| -
|
| -** Transposed Grid
|
| -
|
| -Similar to the grid view, but with the axes reversed and showing different
|
| -info. Located at /tgrid.
|
| -
|
| -** Trigger steps improvements
|
| -
|
| -Trigger now supports copy_properties, to send selected properties to the
|
| -triggered build.
|
| -
|
| -* Release 0.7.10 (25 Feb 2009)
|
| -
|
| -This release is mainly a collection of user-submitted patches since
|
| -the last release.
|
| -
|
| -** New Features
|
| -
|
| -*** Environment variables in a builder (#100)
|
| -
|
| -It is useful to be able to pass environment variables to all steps in a
|
| -builder. This is now possible by adding { .. 'env': { 'var' : 'value' }, ... }
|
| -to the builder specification.
|
| -
|
| -*** IRC status plugin improvements (#330, #357, #378, #280, #381, #411, #368)
|
| -
|
| -*** usePTY specified in master.cfg, defaults to False (#158, #255)
|
| -
|
| -Using a pty has some benefits in terms of supporting "Stop Build", but causes
|
| -numerous problems with simpler jobs which can be killed by a SIGHUP when their
|
| -standard input is closed. With this change, PTYs are not used by default,
|
| -although you can enable them either on slaves (with the --usepty option to
|
| -create-slave) or on the master.
|
| -
|
| -*** More information about buildslaves via the web plugin (#110)
|
| -
|
| -A new page, rooted at /buildslave/$SLAVENAME, gives extensive information about
|
| -the buildslave.
|
| -
|
| -*** More flexible merging of requests (#415)
|
| -
|
| -The optional c['mergeRequests'] configuration parameter takes a function
|
| -which can decide whether two requests are mergeable.
|
| -
|
| -*** Steps can be made to run even if the build has halted (#414)
|
| -
|
| -Adding alwaysRun=True to a step will cause it to run even if some other step
|
| -has failed and has haltOnFailure=True.
|
| -
|
| -*** Compress buildstep logfiles (#26)
|
| -
|
| -Logs for each buildstep, which can take a lot of space on a busy buildmaster,
|
| -are automatically compressed after the step has finished.
|
| -
|
| -*** Support for "latent" buildslaves
|
| -
|
| -The buildslaves that are started on-demand are called "latent" buildslaves.
|
| -Buildbot ships with an abstract base class for building latent buildslaves, and
|
| -a concrete implementation for AWS EC2.
|
| -
|
| -*** Customized MailNotifier messages (#175)
|
| -
|
| -MailNotifier now takes an optional function to build the notification message,
|
| -allowing ultimate site-level control over the format of buildbot's notification
|
| -emails.
|
| -
|
| -*** Nightly scheduler support for building only if changes have occurred
|
| -
|
| -With the addition of onlyIfChanged=True, the Nightly scheduler will not schedule
|
| -a new build if no changes have been made since its last scheduled build.
|
| -
|
| -*** Add ATOM/RSS feeds to WebStatus (#372)
|
| -
|
| -Two new pages, /atom and /rss, provide feeds of build events to any feed
|
| -reader. These paths take the same "category" and "branch" arguments as the
|
| -waterfall and grid.
|
| -
|
| -*** Add categories to Schedulers and Changes (#182)
|
| -
|
| -This allows a moderate amount of support for multiple projects built in a
|
| -single buildmaster.
|
| -
|
| -*** Gracefully shut down a buildslave after its build is complete
|
| -
|
| -The /buildslaves/$SLAVENAME pages have a "Gracefully Shutdown" button which
|
| -will cause the corresponding slave to shut itself down when it finishes its
|
| -current build. This is a good way to do work on a slave without causing a
|
| -spurious build failure.
|
| -
|
| -*** SVN source steps can send usernames and passwords (#41)
|
| -
|
| -Adding username="foo" and/or password="bar" to an SVN step will cause
|
| ---username and --password arguments to be passed to 'svn' on the slave side.
|
| -Passwords are suitably obfuscated in logfiles.
|
| -
|
| -** New Steps
|
| -
|
| -*** DirectoryUpload (#393)
|
| -
|
| -This step uploads an entire directory to the master, and can be useful when a
|
| -build creates several products (e.g., a client and server package).
|
| -
|
| -*** MasterShellCommand
|
| -
|
| -This step runs a shell command on the server, and can be useful for
|
| -post-processing build products, or performing other maintenance tasks on the
|
| -master.
|
| -
|
| -*** PyLint (#259)
|
| -
|
| -A PyLint step is available to complement the existing PyFlakes step.
|
| -
|
| -** Bugs Fixed
|
| -
|
| -*** Process output from new versions of Test::Harness (#346)
|
| -
|
| -*** Fixes to the try client and scheduler
|
| -
|
| -*** Remove redundant loop in MailNotifier (#315)
|
| -
|
| -*** Display correct $PWD in logfiles (#179)
|
| -
|
| -*** Do not assume a particular python version on Windows (#401)
|
| -
|
| -*** Sort files in changes (#402)
|
| -
|
| -*** Sort buildslaves lexically (#416)
|
| -
|
| -*** Send properties to all builds initiated by AnyBranchScheduler
|
| -
|
| -*** Dependent Schedulers are more robust to reconfiguration (#35)
|
| -
|
| -*** Fix properties handling in triggered buidls (#392)
|
| -
|
| -*** Use "call" on Windows to avoid errors (#417)
|
| -
|
| -*** Support setDefaultWorkdir in FileUpload and FileDownload (#209)
|
| -
|
| -*** Support WithProperties in FileUpload and FileDownload (#210)
|
| -
|
| -*** Fix a bug where changes could be lost on a master crash (#202)
|
| -
|
| -*** Remove color settings from non-presentation code (#251)
|
| -
|
| -*** Fix builders which stopped working after a PING (#349, #85)
|
| -
|
| -*** Isolate Python exceptions in status plugins (#388)
|
| -
|
| -*** Notify about slaves missing at master startup (#302)
|
| -
|
| -*** Fix tracebacks in web display after a reconfig (#176)
|
| -
|
| -** Version-Control Changes
|
| -
|
| -*** Many Mercurial fixes
|
| -
|
| - - Inrepo branch support finalized (source step + changegroup hook + test case)
|
| - (#65 #185 #187)
|
| -
|
| - - Reduced amount of full clones by separating clone with update into
|
| - clone/pull/update steps (#186, #227) (see #412 for future work here)
|
| -
|
| - - Fixed mercurial changegroup hook to work with Mercurial 1.1 API (#181, #380)
|
| -
|
| -*** Many git fixes
|
| -
|
| -*** Add got_revision to Perforce support (#127)
|
| -
|
| -*** Use "git foo" everywhere instead of deprecated "git-foo"
|
| -
|
| -** Minor Changes
|
| -
|
| -*** factory.addSteps (#317)
|
| -
|
| -If you have a common list of steps that are included in multiple factories, you
|
| -can use f.addSteps(steplist) to add them all at once.
|
| -
|
| -*** Twisted logfile rotation and cleanup (#108)
|
| -
|
| -By default, Buildbot now rotates and cleans up the (potentially voluminous)
|
| -twistd.log files.
|
| -
|
| -*** Prioritize build requests based on the time they wre submitted (#334)
|
| -
|
| -Balancing of load is a bit more fair, although not true load balancing.
|
| -
|
| -* Release 0.7.9 (15 Sep 2008)
|
| -
|
| -** New Features
|
| -
|
| -*** Configurable public_html directory (#162)
|
| -
|
| -The public_html/ directory, which provides static content for the WebStatus()
|
| -HTTP server, is now configurable. The default location is still the
|
| -public_html/ subdirectory of the buildmaster's base directory, but you can
|
| -change this by passing a suitable argument when creating the WebStatus()
|
| -instance in your master.cfg file:
|
| -
|
| - c['status'].append( WebStatus(8080, public_html="/var/www/buildbot") )
|
| -
|
| -*** Lock access modes (#313)
|
| -
|
| -Albert Hofkamp added code to provide two distinct access modes to Locks:
|
| -"counting" and "exclusive". Locks can accept a configurable number of
|
| -"counting"-mode users, or a single "exclusive"-mode. For example, a Lock is
|
| -defined with maxCount=3, and then a 'compile' BuildStep uses this lock in
|
| -counting mode, while a 'cleanup' BuildStep uses this lock in exclusive mode.
|
| -Then, there can be one, two, or three simultaneous Builds in the compile step
|
| -(as long as there are no builds in the cleanup step). Only one build can be
|
| -in the cleanup step at a time, and if there is such a build in the cleanup
|
| -step, then the compile steps in other builds will wait for it to finish.
|
| -Please see the "Interlocks" section of the user's manual for more details.
|
| -
|
| -** Bugs Fixed
|
| -
|
| -*** Buildslave missing_timeout= fired too quickly (#211)
|
| -
|
| -By providing a missing_timeout= argument when creating the BuildSlave
|
| -instance, you can ask the buildmaster to send email if a buildslave is
|
| -disconnected for too long. A bug in the previous version caused this
|
| -notification to be sent too soon, rather than waiting until the timeout
|
| -period expired. This should be fixed now.
|
| -
|
| -*** Test command display fixed (#332)
|
| -
|
| -In the previous version, a steps.shell.Test step would display the parsed
|
| -test results (in the step's box on the waterfall display) in lieu of any
|
| -other descriptive text the step might provide. In this release, these two
|
| -pieces of information are combined.
|
| -
|
| -** Minor Changes
|
| -
|
| -The buildmaster's version is logged to its twistd.log file at startup. The
|
| -buildslave does the same, to its own logfile.
|
| -
|
| -Remote commands now record how long each command took. The "elapsedTime="
|
| -message will appear in the step's main logfile.
|
| -
|
| -The "buildbot restart" command no longer fails if the buildbot wasn't already
|
| -running.
|
| -
|
| -The FileUpload and FileDownload steps now create their target directories
|
| -(and any missing intermediate directories) before writing to the destination
|
| -file.
|
| -
|
| -The per-build and per-step web pages now show the start, finish, and elapsed
|
| -time of their build or step.
|
| -
|
| -If a Subversion-based build is started with a mixture of Changes that specify
|
| -particular numeric revisions and "HEAD" Changes (which indicate that a trunk
|
| -checkout is desired), the build will use a trunk checkout. Previously this
|
| -would probably cause an error. It is not clear how this situation might
|
| -arise.
|
| -
|
| -** Compability With Other Tools
|
| -
|
| -The mercurial commit hook (buildbot.changes.hgbuildbot) in the previous
|
| -version doesn't work with hg-1.0 or later (it uses an API function that was
|
| -present in the hg-0.9.5 release, but was removed from hg-1.0). This
|
| -incompability has been fixed: the new version of buildbot should be
|
| -compatible with hg-1.0 and newer (and it probably retains compability with
|
| -hg-0.9.5 and earlier too). (#328)
|
| -
|
| -The Git tool has traditionally provided two ways to run each command, either
|
| -as subcommands of /usr/bin/git (like "git checkout"), or as individual tools
|
| -(like /usr/bin/git-checkout). The latter form is being removed in the
|
| -upcoming 1.6 Git release. Previous versions of Buildbot have used the
|
| -git-checkout form, and will break when Git is upgraded to 1.6 or beyond. The
|
| -new Buildbot release switches to the subcommand form. Note that this is a
|
| -change on the buildslave side.
|
| -
|
| -The Git checkout command will now use the default branch (as set in the
|
| -steps.source.Git() step definition) if the changes that it is building do not
|
| -specify some other branch to build. (#340)
|
| -
|
| -** Deprecation Schedule
|
| -
|
| -No features have been deprecated in this release, and no deprecated features
|
| -have been removed. As a reminder, the following deprecated features are
|
| -scheduled for removal in an upcoming release:
|
| -
|
| -c['sources'] (plural) was replaced by c['change_source'] (singular) in 0.7.6,
|
| -and will be removed by 0.8.0.
|
| -
|
| -c['bots'] was replaced by c['buildslaves'] in 0.7.6, and will be removed by
|
| -0.8.0 . c['bots'] only accepts BuildSlave instances, not name/passwd tuples.
|
| -
|
| -The html.Waterfall status target was replaced by html.WebStatus in 0.7.6, and
|
| -will be removed by 0.8.0.
|
| -
|
| -
|
| -* Release 0.7.8 (24 Jul 2008)
|
| -
|
| -** New features
|
| -
|
| -The IRC bot will respond to three new commands: 'notify' subscribes the
|
| -channel (or the sender, if the command is sent as a private "/msg") to hear
|
| -about build events. 'join' tells the bot to join some new IRC channel.
|
| -'leave' tells it to leave a channel. See the "IRC Bot" section of the User's
|
| -Manual for details. (#171)
|
| -
|
| -Build Steps now have "statistics", in addition to logfiles. These are used to
|
| -count things like how many tests passed or failed. There are methods to sum
|
| -these counters across all steps and display the results in the Build status.
|
| -The Waterfall display now shows the count of failed tests on the top-most box
|
| -in each column, using this mechanism.
|
| -
|
| -The new buildbot.steps.shell.PerlModuleTest step was added, to run Perl unit
|
| -tests. This is a wrapper around the regular ShellCommand that parses the
|
| -output of the standard perl unit test system and counts how many tests
|
| -passed/failed/etc. The results are put into the step's summary text, and a
|
| -count of tests passed/failed/skipped are tracked in the steps's statistics.
|
| -The factory.CPAN build factory has been updated to use this, so configuring a
|
| -Buildbot to test a perl module available from CPAN should be as easy as:
|
| -
|
| - s = source.CVS(cvsroot, cvsmodule)
|
| - f = factory.CPAN(s)
|
| -
|
| -Build Properties have been generalized: they remain associated with a single
|
| -Build, but the properties can be set from a variety of sources. In previous
|
| -releases, the Build itself would set properties like 'buildername', 'branch',
|
| -and 'revision' (the latter two indicating which version of the source code it
|
| -was trying to get), and the source-checkout BuildSteps would set a property
|
| -named 'got_revision' (to indicate what version of the soruce code it actually
|
| -got). In this release, the 'scheduler' property is set to indicate which
|
| -Scheduler caused the build to be started. In addition, the config file can
|
| -specify properties to be set on all Builds, or on all Builds for a specific
|
| -Builder. All these properties are available for interpolation into
|
| -ShellCommands and environment variables by using the WithProperties() marker.
|
| -
|
| -It may be easier to implement simple build parameterization (e.g. to upload
|
| -generated binaries to a specific directory, or to only perform long-running
|
| -tests on a nightly build instead of upon every checkin) by using these Build
|
| -Properties than to write custom BuildSteps.
|
| -
|
| -** Other improvements
|
| -
|
| -The /buildslaves web page shows which slaves are currently running builds.
|
| -Offline slaves are displayed in bold.
|
| -
|
| -Buildbot's setup.py now provides metadata to setuptools (if installed): an
|
| -entry_points script was added, and a dependency upon twisted-2.4.x or newer
|
| -was declared. This makes it more likely that 'easy_install buildbot' will
|
| -work.
|
| -
|
| -The MailNotifier class acquired a mode="passing" flag: in this mode, the
|
| -buildbot will only send mail about passing builds (versus only on failing
|
| -builds, or only on builds which failed when the previous build had passed).
|
| -
|
| -** Bugs fixed
|
| -
|
| -Don't display force/stop build buttons when build control is disabled (#246)
|
| -
|
| -When a build is waiting on a lock, don't claim that it has started (#107)
|
| -
|
| -Make SVN mode=copy tolerate symlinks on freebsd, "cp -rp" -> "cp -RPp" (#86)
|
| -
|
| -The svnpoller changesource now ignores branch deletion (#261)
|
| -
|
| -The Git unit tests should run even if the user has not told Git about their
|
| -username/email.
|
| -
|
| -The WebStatus /xmlrpc server's getStatus() method was renamed to the
|
| -more-accurate getLastBuildResults().
|
| -
|
| -The TinderboxMailNotifier status output acquired an useChangeTime= argument.
|
| -
|
| -The bonsaipoller changesource got some fixes.
|
| -
|
| -** Deprecation Schedule
|
| -
|
| -No features have been deprecated in this release, and no deprecated features
|
| -have been removed. As a reminder, the following deprecated features are
|
| -scheduled for removal in an upcoming release:
|
| -
|
| -c['sources'] (plural) was replaced by c['change_source'] (singular) in 0.7.6,
|
| -and will be removed by 0.8.0.
|
| -
|
| -c['bots'] was replaced by c['buildslaves'] in 0.7.6, and will be removed by
|
| -0.8.0 . c['bots'] only accepts BuildSlave instances, not name/passwd tuples.
|
| -
|
| -The html.Waterfall status target was replaced by html.WebStatus in 0.7.6, and
|
| -will be removed by 0.8.0.
|
| -
|
| -
|
| -
|
| -* Release 0.7.7 (29 Mar 2008)
|
| -
|
| -** Things You Need To Know
|
| -
|
| -*** builder names must not start with an underscore (`_').
|
| -
|
| -These are now reserved for internal buildbot purposes, such as the magic
|
| -"_all" pseudo-builder that the web pages use to allow force-build buttons
|
| -that start builds on all Builders at once.
|
| -
|
| -** New Features
|
| -
|
| -*** "buildbot checkconfig"
|
| -
|
| -The "buildbot checkconfig" command will look at your master.cfg file and tell
|
| -you if there are any problems with it. This can be used to test potential
|
| -changes to your config file before submitting them to the running
|
| -buildmaster. This is particularly useful to run just before doing "buildbot
|
| -restart", since the restart will fail if the config file has an error. By
|
| -running "buildbot checkconfig master.cfg && buildbot restart", you'll only
|
| -perform the restart if the config file was ok. Many thanks to Ben Hearsum for
|
| -the patch.
|
| -
|
| -*** Waterfall "?category=FOO" query-arguments
|
| -
|
| -The Waterfall page now accepts one or more "category=" query arguments in the
|
| -URL, to filter the display by categories. These behave a lot like the
|
| -"builder=" query argument. Thanks to Jermo Davann for the patch.
|
| -
|
| -** Bugs Fixed
|
| -
|
| -Many bugs were fixed, and many minor features were added. Many thanks to
|
| -Dustin Mitchell who fixed and coordinated many of these. Here is a terse
|
| -list, for more details, please see the Trac page for the 0.7.7 release, at
|
| -http://buildbot.net/trac/query?status=closed&milestone=0.7.7 :
|
| -
|
| -Many of the URLs generated by the buildbot were wrong.
|
| -Display of last-heard-from timestamps on the buildslaves web page were wrong.
|
| -Asking an IRC bot about a build waiting on a Lock should no longer crash.
|
| -Same for the web viewer.
|
| -Stop treating the encouraged info/ directory as leftover.
|
| -Add more force/stop build buttons.
|
| -Timestamps displayed on the waterfall now handle daylight savings properly.
|
| -p4poller no longer quits after a single failure.
|
| -Improved Git support, including 'try', branch, and revisions.
|
| -Buildslaves now use 'git', not 'cogito'.
|
| -Make older hg client/servers handle specific-revision builds properly.
|
| -Fix twisted.scripts._twistw problem on twisted-2.5.0 and windows.
|
| -Fix workdir= and env= on ShellCommands
|
| -Fix logfile-watching in 'buildbot start' on OS-X.
|
| -Fix ShellCommand crashes when the program emits >640kB of output per chunk.
|
| -New WarningCountingShellCommand step.
|
| -Fix TreeSize step.
|
| -Fix transfer.FileUpload/FileDownload crashes for large files.
|
| -Make 'buildbor reconfig' on windows tell you that it doesn't work.
|
| -Add a To: header to the mail sent by the slave-missing timeout.
|
| -Disable usePTY= for most unit tests, it makes some debian systems flunk tests.
|
| -Add 'absolute source stamps'
|
| -Add 'triggerable schedulers', and a buildstep to trigger them.
|
| -Remove buildbot.changes.freshcvsmail
|
| -Add new XMLRPC methods: getAllBuilders, getStatus, getLastBuilds.
|
| -Accept WithProperties in more places: env=, workdir=, others.
|
| -Use --no-auth-cache with SVN commands to avoid clobbering shared svn state.
|
| -Add hours/minutes/seconds in the waterfall's ETA display.
|
| -Trial: count Doctest lines too.
|
| -ShellCommand: record more info in the headers: stdin closing, PTY usage.
|
| -Make it possible to stop builds across reconfig boundaries.
|
| -SVN revision numbers are now passed as strings, which was breaking MailNotifier
|
| -
|
| -** Deprecation Schedule
|
| -
|
| -The changes.freshcvsmail change source was replaced by
|
| -changes.mail.FCMaildirSource in 0.7.6, and has been removed in 0.7.7 .
|
| -
|
| -c['sources'] (plural) was replaced by c['change_source'] (singular) in 0.7.6,
|
| -and will be removed by 0.8.0.
|
| -
|
| -c['bots'] was replaced by c['buildslaves'] in 0.7.6, and will be removed by
|
| -0.8.0 . c['bots'] only accepts BuildSlave instances, not name/passwd tuples.
|
| -
|
| -The html.Waterfall status target was replaced by html.WebStatus in 0.7.6, and
|
| -will be removed by 0.8.0.
|
| -
|
| -
|
| -* Release 0.7.6 (30 Sep 2007)
|
| -
|
| -** Things You Need To Know
|
| -
|
| -*** 'buildbot upgrade-master'
|
| -
|
| -Each time you install a new version of Buildbot, you should run the new
|
| -'buildbot upgrade-master' command on each of your pre-existing buildmasters.
|
| -This will add files and fix (or at least detect) incompatibilities between
|
| -your old config and the new code.
|
| -
|
| -*** new WebStatus page
|
| -
|
| -The Waterfall has been replaced by the more general WebStatus display,
|
| -described below. WebStatus serves static files from a new public_html/
|
| -directory that lives in the buildmaster's basedir. Files like index.html,
|
| -buildbot.css, and robots.txt are served directly from that directory, so any
|
| -modifications you wish to make should be made to those files. In particular,
|
| -any custom CSS you've written should be copied into public_html/buildbot.css.
|
| -The 'upgrade-master' command will populate this directory for you.
|
| -
|
| -The old Waterfall page is deprecated, but it should continue to work for
|
| -another few releases. It is now a subclass of WebStatus which just replaces
|
| -the default root URL with another copy of the /waterfall resource.
|
| -
|
| -*** Compatibility: Python-2.3 or newer, Twisted-2.0 or newer
|
| -
|
| -No compatiblity losses here, buildbot-0.7.6 is compatible with the same
|
| -versions of python and twisted that 0.7.5 was.
|
| -
|
| -Buildbot is tested on a regular basis (http://buildbot.buildbot.net) against
|
| -nearly a full matrix of Python-(2.3,2.4,2.5) * Twisted-(2.0,2.1,2.2,2.4,2.5).
|
| -
|
| -*** New Buildbot Home Page
|
| -
|
| -Buildbot has moved to a new Trac instance at http://buildbot.net/ , and all
|
| -new bugs and tickets should be filed there. The old sourceforge bugs at
|
| -http://buildbot.sf.net/ will slowly be migrated over. Mailing lists are still
|
| -managed at sourceforge, and downloads are still available there.
|
| -
|
| -*** Changed/Deprecated master.cfg Keys and Classes
|
| -
|
| -c['sources'] (plural) has been replaced by c['change_source'] (singular).
|
| -
|
| -c['bots'] has been replaced by c['buildslaves'], and it expects a list of
|
| -BuildSlave instances instead of tuples. See below for more details.
|
| -
|
| -The 'freshcvsmail' change source has been deprecated, and will be removed in
|
| -the next release.
|
| -
|
| -The html.Waterfall status target has been deprecated, and replaced by
|
| -html.WebStatus .
|
| -
|
| -** New Features
|
| -
|
| -*** WebStatus
|
| -
|
| -The new WebStatus display is a superset of the old Waterfall. It contains a
|
| -waterfall as a sub-page, but it also contains pages with more compact
|
| -representations of recent build status. The "one_line_per_build" page
|
| -contains just that, and "one_box_per_builder" shows just the information from
|
| -the top of the waterfall page (last-finished-build and current-activity).
|
| -
|
| -The initial page (when you hit the root of the web site) is served from
|
| -index.html, and provides links to the Waterfall as well as the other pages.
|
| -
|
| -Most of these pages can be filtered by adding query arguments to the URL.
|
| -Adding "?builder=XYZ" will cause the page to only show results for the given
|
| -builder. Adding "?builder=XYZ&builder=ABC" will show results for either
|
| -builder. "?branch=trunk" will limit the results to builds that involved code
|
| -from the trunk.
|
| -
|
| -The /waterfall page has arguments to hide those annoying "buildslave
|
| -connected" messages, to start and and at arbitrary times, and to auto-refresh
|
| -at a chosen interval (with a hardcoded minimum of 15 seconds). It also has a
|
| -"help" page with forms that will help you add all of these nifty filtering
|
| -arguments.
|
| -
|
| -The recommended practice is to modify the index.html file to include links to
|
| -the filtered pages that you find most useful.
|
| -
|
| -Note that WebStatus defaults to allowForce=False, meaning that the display
|
| -will not offer or accept "Force Build" or "Stop Build" controls. (The old
|
| -Waterfall defaults to allowForce=True).
|
| -
|
| -The new WebStatus pages try very hard to use only relative links, making life
|
| -better when the Buildbot sits behind an HTTP reverse proxy.
|
| -
|
| -In addition, there is a rudimentary XMLRPC server run by the WebStatus
|
| -object. It only has two methods so far, but it will acquire more in the
|
| -future. The first customer of this is a project to add a buildbot plugin to
|
| -Trac.
|
| -
|
| -*** BuildFactory.addStep(Step(args))
|
| -
|
| -BuildFactories can be set up either with a complete list of steps, or by
|
| -calling the .addStep() method repeatedly. The preferred way to provide a step
|
| -is by instantiating it, rather than giving a class/kwargs pair. This gives
|
| -the BuildStep class a chance to examine the arguments (and complain about
|
| -anything it doesn't like) while the config file is being read and problems
|
| -are being logged. For example, the old-style:
|
| -
|
| - from buildbot.process.factory import BuildFactory, s
|
| - steps = [s(CVS, cvsroot="blah", mode="copy"),
|
| - s(Compile, command=["make", "all"]),
|
| - s(Test, command=["make", "test"]),
|
| - ]
|
| - f = BuildFactory(steps)
|
| -
|
| -is now:
|
| -
|
| - f = BuildFactory()
|
| - f.addStep( CVS(cvsroot="blah", mode="copy") )
|
| - f.addStep( Compile(command=["make", "all"]) )
|
| - f.addStep( Test(command=["make", "test"]) )
|
| -
|
| -Authors of BuildStep subclasses which override __init__ to add new arguments
|
| -must register them with self.addFactoryArguments(**newargs) to make sure that
|
| -those classes will work with this new style, otherwise the new arguments will
|
| -be lost.
|
| -
|
| -Using class/kwargs pairs is deprecated, and will be removed in a future
|
| -release.
|
| -
|
| -
|
| -*** BuildSlave instances, max_builds=, notify_on_missing=
|
| -
|
| -Buildslave specification has changed a lot in this release. The old config:
|
| -
|
| - c['bots'] = [ ("bot1name", "bot1passwd"),
|
| - ("bot2name", "bot2passwd") ]
|
| -
|
| -is now:
|
| -
|
| - from buildbot.buildslave import BuildSlave
|
| - c['slaves'] = [ BuildSlave("bot1name", "bot1passwd"),
|
| - BuildSlave("bot2name", "bot2passwd") ]
|
| -
|
| -This new form gives us the ability to add new controls. The first is
|
| -"max_builds=", which imposes a concurrency limit that is like the usual
|
| -SlaveLock, but gives the buildmaster the opportunity to find a different
|
| -slave to run the build. (the buildslave is chosen before the SlaveLock is
|
| -claimed, so pure SlaveLocks don't let you take full advantage of build
|
| -farms).
|
| -
|
| -The other addition is "notify_on_missing=", which accepts an email address
|
| -(or list of addresses), and sends a message when the buildslave has been
|
| -disconnected for more than an hour (configurable with missing_timeout=). This
|
| -may be useful when you expect that the buildslave hosts should be available
|
| -most of the time, and want to investigate the reasons that it went offline.
|
| -
|
| -
|
| -** Other Improvements
|
| -
|
| -The IRC bot has been refactored to make it easier to add instant-messaging
|
| -status delivery in the future. The IM plugins are not yet written, though.
|
| -
|
| -When multiple buildslaves are available for a given build, one of them will
|
| -be picked at random. In previous releases, the first one on the list was
|
| -always picked. This helps to add a certain measure of load-balancing. More
|
| -improvements will be made in the future.
|
| -
|
| -When the buildslave does a VC checkout step that requires clobbering the
|
| -build directory (i.e. in all modes except for 'update'), the buildslave will
|
| -first set the permissions on all build files to allow their deletion, before
|
| -it attempts to delete them. This should fix some problems in which a build
|
| -process left non-user-writable files lying around (frequently a result of
|
| -enthusiastic unit tests).
|
| -
|
| -The BuildStep's workdir= argument can now accept a WithProperties()
|
| -specification, allowing greater control over the workdir.
|
| -
|
| -Support for the 'Bazaar' version control system (/usr/bin/bzr) has been
|
| -added, using the buildbot.steps.source.Bzr class. This is a replacement for
|
| -the old 'Arch' (/usr/bin/tla and /usr/bin/baz) systems, which are still
|
| -supported by Buildbot with the source.Arch and source.Bazaar classes,
|
| -respectively. Unfortunately the old baz system claimed the 'Bazaar' classname
|
| -early, so the new system must use source.Bzr instead of the desired
|
| -source.Bazaar . A future release might change this.
|
| -
|
| -A rudimentary Gnome Panel applet is provided in contrib/bb_applet.py, which
|
| -provides 'buildbot statusgui' -like colored status boxes inside the panel.
|
| -Installing it is a bit tricky, though.
|
| -
|
| -The 'buildbot try' command now accepts a '--diff=foo.patch' argument, to let
|
| -you provide a pre-computed patch. This makes it easier to test out patches
|
| -that you've looked over for safety, without first applying them to your local
|
| -source tree.
|
| -
|
| -A new Mercurial change source was added, hg_buildbot.py, which runs as an
|
| -in-process post-commit hook. This gives us access to much more information
|
| -about the change, as well as being much faster.
|
| -
|
| -The email-based changesource have been refactored, to make it easier to write
|
| -new mail parsers. A parser for the SVN "commit-email.pl" script has been
|
| -added.
|
| -
|
| -** Bugs Fixed
|
| -
|
| -Far too many to count. Please see
|
| -http://buildbot.net/trac/query?status=closed&milestone=0.7.6 for a partial
|
| -list of tickets closed for this release, and the ChangeLog for a complete
|
| -list of all changes since 0.7.5 .
|
| -
|
| -
|
| -* Release 0.7.5 (10 Dec 2006)
|
| -
|
| -** Things You Need To Know
|
| -
|
| -*** The Great BuildStep Renaming
|
| -
|
| -All BuildSteps have moved! They used to be classes in buildbot.process.step,
|
| -but now they all have separate modules in buildbot.steps.* . They have been
|
| -split out into separate categories: for example, the source checkout steps
|
| -are now buildbot.steps.source.CVS, buildbot.steps.source.Darcs, etc. The most
|
| -commonly used one is probably buildbot.steps.shell.ShellCommand . The
|
| -python-specific steps are in buildbot.steps.python, and the Twisted-specific
|
| -steps are in buildbot.steps.python_twisted .
|
| -
|
| -You will need to update your master.cfg files to use the new names. The old
|
| -names are deprecated and will be removed altogether in the next release.
|
| -
|
| -*** Compatibility
|
| -
|
| -Buildbot now requires python-2.3 or later. Buildbot now requires
|
| -Twisted-2.0.0 or later. Support for earlier versions of both has finally been
|
| -removed. If you discover it works with unsupported versions, please return
|
| -your Buildbot to the factory for repairs :-).
|
| -
|
| -Buildbot has *not* yet been tested against the recent python-2.5 release. It
|
| -has been tested against the latest SVN version of Twisted, but only in
|
| -conjunction with python-2.4 .
|
| -
|
| -** new features
|
| -
|
| -*** reconfiguring a Builder no longer causes a disconnect/reconnect cycle
|
| -
|
| -This means that sending SIGHUP to the master or running 'buildbot reconfig
|
| -MASTERDIR' command no longer interrupts any current builds, nor does it lose
|
| -pending builds like it did before. This involved a fairly substantial
|
| -refactoring of the various internal BotPerspective/BotMaster/Builder classes.
|
| -Note that reconfiguring Schedulers still loses any Changes that were waiting
|
| -for the tree to become stable: hopefully this will be fixed in the next
|
| -release.
|
| -
|
| -*** 'buildbot start/restart/reconfig' now show logs until startup is complete
|
| -
|
| -These commands now have additional code to follow twistd.log and display all
|
| -the lines that are emitted from the beginning of the start/reconfig action
|
| -until it has completed. This gives you a chance to see any problems detected
|
| -in the config file without needing to manually look in twistd.log or use
|
| -another shell to 'tail -f' it. This also makes it clear which config file is
|
| -being used. This functionality is not available under windows.
|
| -
|
| -In addition, if any problems are detected during 'start' or 'restart' (but
|
| -not reconfig), the buildbot command will terminate with a non-zero exit
|
| -status, making it easier to use in scripts. Closes SF#1517975.
|
| -
|
| -*** Locks now take maxCount=N to allow multiple simultaneous owners
|
| -
|
| -This allows Locks to be non-exclusive but still limit maximum concurrency.
|
| -Thanks to James Knight for the patch. Closes SF#1434997.
|
| -
|
| -*** filetransfer steps
|
| -
|
| -buildbot.steps.transfer.FileUpload is a buildstep that will move files from
|
| -the slave to the master. Likewise, FileDownload will move files from the
|
| -master down to the buildslave. Many thanks to Albert Hofkamp for contributing
|
| -these classes. Closes SF#1504631.
|
| -
|
| -*** pyflakes step
|
| -
|
| -buildbot.steps.python.PyFlakes will run the simple 'pyflakes' static analysis
|
| -tool and parse the results to tell you about undefined names, unused imports,
|
| -etc. You'll need to tell it how to run pyflakes, usually with something like
|
| -command=["pyflakes", "src/packagedir"] or the like. The default command is
|
| -"make pyflakes", which assumes that you have a suitable target in your
|
| -top-level Makefile.
|
| -
|
| -*** Monotone support
|
| -
|
| -Nathaniel Smith has contributed initial support for the Monotone version
|
| -control system. The code still needs docs and tests, but on the other hand it
|
| -has been in use by the Monotone buildbot for a long time now, so it is
|
| -probably fairly stable.
|
| -
|
| -*** Tinderbox support
|
| -
|
| -Ben Hearsum and the Mozilla crew have contributed some classes to allow
|
| -Buildbot to work with Tinderbox clients. One piece is
|
| -buildbot.changes.bonsaipoller.BonsaiPoller, which is a ChangeSource that
|
| -polls a Bonsai server (which is a kind of web-vased viewcvs CGI script) to
|
| -discover source code changes. The other piece is
|
| -buildbot.status.tinderbox.TinderboxMailNotifier, which is a status plugin
|
| -that sends email in the same format as Tinderbox does, which allows a number
|
| -of Tinderbox tools to be driven by Buildbot instead.
|
| -
|
| -*** SVN Poller
|
| -
|
| -Niklaus Giger contributed a ChangeSource (buildbot.changes.svnpoller) which
|
| -polls a remote SVN repository on a periodic basis. This is useful when, for
|
| -whatever reason, you cannot add a post-commit hook script to the repository.
|
| -This obsoletes the external contrib/svn_watcher.py script.
|
| -
|
| -** notes for plugin developers
|
| -
|
| -*** IStatusLog.readlines()
|
| -
|
| -This new method makes it easier for a status plugin (or a
|
| -BuildStep.createSummary method) to walk through a StatusLog one line at a
|
| -time. For example, if you wanted to create an extra logfile that just
|
| -contained all the GCC warnings from the main log, you could use the
|
| -following:
|
| -
|
| - def createSummary(self, log):
|
| - warnings = []
|
| - for line in log.readlines():
|
| - if "warning:" in line:
|
| - warnings.append()
|
| - self.addCompleteLog('warnings', "".join(warnings))
|
| -
|
| -The "BuildStep LogFiles" section of the user's manual contains more
|
| -information. This method is not particularly memory-efficient yet (it reads
|
| -the whole logfile into memory first, then splits it into lines); this will be
|
| -improved in a future release.
|
| -
|
| -** bug fixes
|
| -
|
| -*** Update source.SVN to work with the new SVN-1.4.0
|
| -
|
| -The latest subversion changed the behavior in an unusual situation which
|
| -caused the unit tests to fail. This was unlikely to cause a problem in actual
|
| -usage, but the tests have been updated to pass with the new version.
|
| -
|
| -*** update svn_buildbot.py to avoid mangling filenames
|
| -
|
| -Older versions of this script were stripping the wrong number of columns from
|
| -the output of 'svnlook changed', and would sometimes mangle filenames. This
|
| -has been fixed. Closes SF#1545146.
|
| -
|
| -*** logfiles= caused subsequent build failures under Windows
|
| -
|
| -Earlier versions of buildbot didn't explicitly close any logfiles= file
|
| -handles when the build finished. On windows (where you cannot delete a file
|
| -that someone else is reading), this could cause the next build to fail as the
|
| -source checkout step was unable to delete the old working directory. This has
|
| -been fixed. Closes SF#1568415.
|
| -
|
| -*** logfiles= didn't work on OS-X
|
| -
|
| -Macintosh OS-X has a different behavior when reading files that have reached
|
| -EOF, the result was that logfiles= sometimes didn't work. Thanks to Mark Rowe
|
| -for the patch.
|
| -
|
| -** other changes
|
| -
|
| -The 'buildbot sighup MASTERDIR' command has been replaced with 'buildbot
|
| -reconfig MASTERDIR', since that seems to be a slightly more meaningful name.
|
| -The 'sighup' form will remain as an alias.
|
| -
|
| -
|
| -* Release 0.7.4 (23 Aug 2006)
|
| -
|
| -** Things You Need To Know
|
| -
|
| -The PBChangeSource's prefix= argument has changed, you probably need to add a
|
| -slash now. This is mostly used by sites which use Subversion and
|
| -svn_buildbot.py.
|
| -
|
| -The subcommands that are used to create a buildmaster or a buildslave have
|
| -changed. They used to be called 'buildbot master' and 'buildbot slave'. Now
|
| -they are called 'buildbot create-master' and 'buildbot create-slave'. Zipf's
|
| -Law suggests that these are more appropriate names for these
|
| -infrequently-used commands.
|
| -
|
| -The syntax for the c['manhole'] feature has changed.
|
| -
|
| -** new features
|
| -
|
| -*** full Perforce support
|
| -
|
| -SF#1473939: large patch from Scott Lamb, with docs and unit tests! This
|
| -includes both the step.P4 source-checkout BuildStep, and the changes.p4poller
|
| -ChangeSource you'll want to feed it. P4 is now supported just as well as all
|
| -the other VC systems. Thanks Scott!
|
| -
|
| -*** SSH-based Manhole
|
| -
|
| -The 'manhole' feature allows buildbot developers to get access to a python
|
| -read/eval/print loop (REPL) inside the buildmaster through a network
|
| -connection. Previously, this ran over unencrypted telnet, using a simple
|
| -username/password for access control. The new release defaults to encrypted
|
| -SSH access, using either username/password or an authorized_keys file (just
|
| -like sshd). There also exists an unencrypted telnet form, but its use is
|
| -discouraged. The syntax for setting up a manhole has changed, so master.cfg
|
| -files that use them must be updated. The "Debug options" section in the
|
| -user's manual provides a complete description.
|
| -
|
| -*** Multiple Logfiles
|
| -
|
| -BuildSteps can watch multiple log files in realtime, not just stdout/stderr.
|
| -This works in a similar fashion to 'tail -f': the file is polled once per
|
| -second, and any new data is sent to the buildmaster.
|
| -
|
| -This requires a buildslave running 0.7.4 or later, and a warning message is
|
| -produced if used against an old buildslave (which will otherwise produce no
|
| -data). Use "logfiles={'name': 'filename'}" to take advantage of this feature
|
| -from master.cfg, and see the "ShellCommand" section of the user's manual for
|
| -full documentation.
|
| -
|
| -The 'Trial' buildstep has been updated to use this, to display
|
| -_trial_temp/test.log in realtime. It also knows to fall back to the previous
|
| -"cat" command if the buildslave is too old.
|
| -
|
| -*** BuildStep URLs
|
| -
|
| -BuildSteps can now add arbitrary URLs which will be displayed on the
|
| -Waterfall page in the same place that Logs are presented. This is intended to
|
| -provide a link to generated HTML pages, such as the output of a code coverage
|
| -tool. The step is responsible for somehow uploading the HTML to a web server:
|
| -this feature merely provides an easy way to present the HREF link to the
|
| -user. See the "BuildStep URLs" section of the user's manual for details and
|
| -examples.
|
| -
|
| -*** LogObservers
|
| -
|
| -BuildSteps can now attach LogObservers to various logfiles, allowing them to
|
| -get real-time log output. They can use this to watch for progress-indicating
|
| -events (like counting the number of files compiled, or the number of tests
|
| -which have run), and update both ETA/progress-tracking and step text. This
|
| -allows for more accurate ETA information, and more information passed to the
|
| -user about how much of the process has completed.
|
| -
|
| -The 'Trial' buildstep has been updated to use this for progress tracking, by
|
| -counting how many test cases have run.
|
| -
|
| -** new documentation
|
| -
|
| -What classes are useful in your master.cfg file? A table of them has been
|
| -added to the user's manual, in a section called "Index of Useful Classes".
|
| -
|
| -Want a list of all the keys in master.cfg? Look in the "Index of master.cfg
|
| -keys" section.
|
| -
|
| -A number of pretty diagrams have been added to the "System Architecture"
|
| -portion of the manual, explaining how all the buildbot pieces fit together.
|
| -
|
| -An HTML form of the user's manual is now shipped in the source tarball. This
|
| -makes it a bit bigger: sorry about that. The old PyCon-2003 paper has been
|
| -removed from the distribution, as it is mostly supplanted by the user's
|
| -manual by this point.
|
| -
|
| -** bugfixes
|
| -
|
| -SF#1217699 + SF#1381867: The prefix= argument to PBChangeSource has been
|
| -changed: now it does just a simple string-prefix match and strip. The
|
| -previous behavior was buggy and unhelpful. NOTE: if you were using prefix=
|
| -before, you probably need to add a slash to the end of it.
|
| -
|
| -SF#1398174: ignore SVN property changes better, fixed by Olivier Bonnet
|
| -
|
| -SF#1452801: don't double-escape the build URL, fixed by Olivier Bonnet
|
| -
|
| -SF#1401121: add support for running py2exe on windows, by Mark Hammond
|
| -
|
| -reloading unchanged config files with WithProperties shouldn't change anything.
|
| -
|
| -All svn commands now include --non-interactive so they won't ask for
|
| -passwords. Instead, the command will fail if it cannot be performed without
|
| -user input.
|
| -
|
| -Deprecation warnings with newer versions of Twisted have been hushed.
|
| -
|
| -** compatibility
|
| -
|
| -I haven't actually removed support for Twisted-1.3.0 yet, but I'd like to.
|
| -
|
| -The step_twisted default value for --reporter matches modern Twisteds,
|
| -though, and won't work under 1.3.0.
|
| -
|
| -ShellCommand.flunkOnFailure now defaults to True, so any shell command which
|
| -fails counts as a build failure. Set this to False if you don't want this
|
| -behavior.
|
| -
|
| -** minor features
|
| -
|
| -contrib/darcs_buildbot.py contains a new script suitable for use in a darcs
|
| -commit-hook.
|
| -
|
| -Hovering a cursor over the yellow "Build #123" box in the Waterfall display
|
| -will pop up an HTML tooltip to show the reason for the build. Thanks to Zandr
|
| -Milewski for the suggestion.
|
| -
|
| -contrib/CSS/*.css now contains several contributed stylesheets to make the
|
| -Waterfall display a bit less ugly. Thanks to John O'Duinn for gathering them.
|
| -
|
| -ShellCommand and its derivatives can now accept either a string or a list of
|
| -strings in the description= and descriptionDone= arguments. Thanks to Paul
|
| -Winkler for the catch.
|
| -
|
| -
|
| -* Release 0.7.3 (23 May 2006)
|
| -
|
| -** compatibility
|
| -
|
| -This release is compatible with Twisted-1.3.0, but the next one will not be.
|
| -Please upgrade to at least Twisted-2.0.x soon, as the next buildbot release
|
| -will require it.
|
| -
|
| -** new features
|
| -
|
| -*** Mercurial support
|
| -
|
| -Support for Mercurial version control system (http://selenic.com/mercurial)
|
| -has been added. This adds a buildbot.process.step.Mercurial BuildStep. A
|
| -suitable hook script to deliver changes to the buildmaster is still missing.
|
| -
|
| -*** 'buildbot restart' command
|
| -
|
| -The 'buildbot restart BASEDIR' command will perform a 'buildbot stop' and
|
| -'buildbot start', and will attempt to wait for the buildbot process to shut
|
| -down in between. This is useful when you need to upgrade the code on your
|
| -buildmaster or buildslave and want to take it down for a minimum amount of
|
| -time.
|
| -
|
| -*** build properties
|
| -
|
| -Each build now has a set of named "Build Properties", which can be set by
|
| -steps and interpolated into ShellCommands. The 'revision' and 'got_revision'
|
| -properties are the most interesting ones available at this point, and can be
|
| -used e.g. to get the VC revision number into the filename of a generated
|
| -tarball. See the user's manual section entited "Build Properties" for more
|
| -details.
|
| -
|
| -** minor features
|
| -
|
| -*** IRC now takes password= argument
|
| -
|
| -Useful for letting your bot claim a persistent identity.
|
| -
|
| -*** svn_buildbot.py is easier to modify to understand branches
|
| -*** BuildFactory has a new .addStep method
|
| -*** p4poller has new arguments
|
| -*** new contrib scripts: viewcvspoll, svnpoller, svn_watcher
|
| -
|
| -These poll an external VC repository to watch for changes, as opposed to
|
| -adding a hook script to the repository that pushes changes into the
|
| -buildmaster. This means higher latency but may be easier to configure,
|
| -especially if you do not have authority on the repository host.
|
| -
|
| -*** VC build property 'got_revision'
|
| -
|
| -The 'got_revision' property reports what revision a VC step actually
|
| -acquired, which may be useful to know when building from HEAD.
|
| -
|
| -*** improved CSS in Waterfall
|
| -
|
| -The Waterfall display has a few new class= tags, which may make it easier to
|
| -write custom CSS to make it look prettier.
|
| -
|
| -*** robots_txt= argument in Waterfall
|
| -
|
| -You can now pass a filename to the robots_txt= argument, which will be served
|
| -as the "robots.txt" file. This can be used to discourage search engine
|
| -spiders from crawling through the numerous build-status pages.
|
| -
|
| -** bugfixes
|
| -
|
| -*** tests more likely to pass on non-English systems
|
| -
|
| -The unit test suite now sets $LANG='C' to make subcommands emit error
|
| -messages in english instead of whatever native language is in use on the
|
| -host. This improves the chances that the unit tests will pass on such
|
| -systems. This affects certain VC-related subcommands too.
|
| -
|
| -test_vc was assuming that the system time was expressed with a numeric
|
| -timezone, which is not always the case, especially under windows. This
|
| -probably works better now than it did before. This only affects the CVS
|
| -tests.
|
| -
|
| -'buildbot try' (for CVS) now uses UTC instead of the local timezone. The
|
| -'got_revision' property is also expressed in UTC. Both should help deal with
|
| -buggy versions of CVS that don't parse numeric timezones properly.
|
| -
|
| -
|
| -* Release 0.7.2 (17 Feb 2006)
|
| -
|
| -** new features
|
| -
|
| -*** all TCP port numbers in config file now accept a strports string
|
| -
|
| -Sometimes it is useful to restrict certain TCP ports that the buildmaster
|
| -listens on to use specific network interfaces. In particular, if the
|
| -buildmaster and SVN repository live on the same machine, you may want to
|
| -restrict the PBChangeSource to only listen on the loopback interface,
|
| -insuring that no external entities can inject Changes into the buildbot.
|
| -Likewise, if you are using something like Apache's reverse-proxy feature to
|
| -provide access to the buildmaster's HTML status page, you might want to hide
|
| -the real Waterfall port by having it only bind to the loopback interface.
|
| -
|
| -To accomplish this, use a string like "tcp:12345:interface=127.0.0.1" instead
|
| -of a number like 12345. These strings are called "strports specification
|
| -strings", and are documented in twisted's twisted.application.strports module
|
| -(you can probably type 'pydoc twisted.application.strports' to see this
|
| -documentation). Pretty much everywhere the buildbot takes a port number will
|
| -now accept a strports spec, and any bare numbers are translated into TCP port
|
| -numbers (listening on all network interfaces) for compatibility.
|
| -
|
| -*** buildslave --umask control
|
| -
|
| -Twisted's daemonization utility (/usr/bin/twistd) automatically sets the
|
| -umask to 077, which means that all files generated by both the buildmaster
|
| -and the buildslave will only be readable by the account under which the
|
| -respective daemon is running. This makes it unnecessarily difficult to share
|
| -build products (e.g. by symlinking ~/public_html/current_docs/ to a directory
|
| -within the slave's build directory where each build puts the results of a
|
| -"make docs" step).
|
| -
|
| -The 'buildbot slave <PARAMS>' command now accepts a --umask argument, which
|
| -can be used to override the umask set by twistd. If you create the buildslave
|
| -with '--umask=022', then all build products will be world-readable, making it
|
| -easier for other processes (run under other accounts) to access them.
|
| -
|
| -** bug fixes
|
| -
|
| -The 0.7.1 release had a bug whereby reloading the config file could break all
|
| -configured Schedulers, causing them to raise an exception when new changes
|
| -arrived but not actually schedule a new build. This has been fixed.
|
| -
|
| -Fixed a bug which caused the AnyBranchScheduler to explode when branch==None.
|
| -Thanks to Kevin Turner for the catch. I also think I fixed a bug whereby the
|
| -TryScheduler would explode when it was given a Change (which it is supposed
|
| -to simply ignore).
|
| -
|
| -The Waterfall display now does more quoting of names (including Builder
|
| -names, BuildStep names, etc), so it is more likely that these names can
|
| -contain unusual characters like spaces, quotes, and slashes. There may still
|
| -be some problems with these kinds of names, however.. please report any bugs
|
| -to the mailing list.
|
| -
|
| -
|
| -* Release 0.7.1 (26 Nov 2005)
|
| -
|
| -** new features
|
| -
|
| -*** scheduler.Nightly
|
| -
|
| -Dobes Vandermeer contributed a cron-style 'Nightly' scheduler. Unlike the
|
| -more-primitive Periodic class (which only lets you specify the duration
|
| -between build attempts), Nightly lets you schedule builds for specific times
|
| -of day, week, month, or year. The interface is very much like the crontab(5)
|
| -file. See the buildbot.scheduler.Nightly docstring for complete details.
|
| -
|
| -** minor new features
|
| -
|
| -*** step.Trial can work with Trial from Twisted >2.1.0
|
| -
|
| -The 'Trial' step now accepts the trialMode= argument, which should be a list
|
| -of strings to be added to trial's argv array. This defaults to ["-to"], which
|
| -is appropriate for the Trial that ships in Twisted-2.1.0 and earlier, and
|
| -tells Trial to emit non-colorized verbose output. To use this step with
|
| -trials from later versions of Twisted, this should be changed to
|
| -["--reporter=bwverbose"].
|
| -
|
| -In addition, you can now set other Trial command-line parameters through the
|
| -trialArgs= argument. This is a list of strings, and defaults to an empty list.
|
| -
|
| -*** Added a 'resubmit this build' button to the web page
|
| -
|
| -*** Make the VC-checkout step's description more useful
|
| -
|
| -Added the word "[branch]" to the VC step's description (used in the Step's
|
| -box on the Waterfall page, among others) when we're checking out a
|
| -non-default branch. Also add "rNNN" where appropriate to indicate which
|
| -revision is being checked out. Thanks to Brad Hards and Nathaniel Smith for
|
| -the suggestion.
|
| -
|
| -** bugs fixed
|
| -
|
| -Several patches from Dobes Vandermeer: Escape the URLs in email, in case they
|
| -have spaces and such. Fill otherwise-empty <td> elements, as a workaround for
|
| -buggy browsers that might optimize them away. Also use binary mode when
|
| -opening status pickle files, to make windows work better. The
|
| -AnyBranchScheduler now works even when you don't provide a fileIsImportant=
|
| -argument.
|
| -
|
| -Stringify the base revision before stuffing it into a 'try' jobfile, helping
|
| -SVN and Arch implement 'try' builds better. Thanks to Steven Walter for the
|
| -patch.
|
| -
|
| -Fix the compare_attrs list in PBChangeSource, FreshCVSSource, and Waterfall.
|
| -Before this, certain changes to these objects in the master.cfg file were
|
| -ignored, such that you would have to stop and re-start the buildmaster to
|
| -make them take effect.
|
| -
|
| -The config file is now loaded serially, shutting down old (or replaced)
|
| -Status/ChangeSource plugins before starting new ones. This fixes a bug in
|
| -which changing an aspect of, say, the Waterfall display would cause an
|
| -exception as both old and new instances fight over the same TCP port. This
|
| -should also fix a bug whereby new Periodic Schedulers could fire a build
|
| -before the Builders have finished being added.
|
| -
|
| -There was a bug in the way Locks were handled when the config file was
|
| -reloaded: changing one Builder (but not the others) and reloading master.cfg
|
| -would result in multiple instances of the same Lock object, so the Locks
|
| -would fail to prevent simultaneous execution of Builds or Steps. This has
|
| -been fixed.
|
| -
|
| -** other changes
|
| -
|
| -For a long time, certain StatusReceiver methods (like buildStarted and
|
| -stepStarted) have been able to return another StatusReceiver instance
|
| -(usually 'self') to indicate that they wish to subscribe to events within the
|
| -new object. For example, if the buildStarted() method returns 'self', the
|
| -status receiver will also receive events for the new build, like
|
| -stepStarted() and buildETAUpdate(). Returning a 'self' from buildStarted() is
|
| -equivalent to calling build.subscribe(self).
|
| -
|
| -Starting with buildbot-0.7.1, this auto-subscribe convenience will also
|
| -register to automatically unsubscribe the target when the build or step has
|
| -finished, just as if build.unsubscribe(self) had been called. Also, the
|
| -unsubscribe() method has been changed to not explode if the same receiver is
|
| -unsubscribed multiple times. (note that it will still explode is the same
|
| -receiver is *subscribed* multiple times, so please continue to refrain from
|
| -doing that).
|
| -
|
| -
|
| -* Release 0.7.0 (24 Oct 2005)
|
| -
|
| -** new features
|
| -
|
| -*** new c['schedulers'] config-file element (REQUIRED)
|
| -
|
| -The code which decides exactly *when* a build is performed has been massively
|
| -refactored, enabling much more flexible build scheduling. YOU MUST UPDATE
|
| -your master.cfg files to match: in general this will merely require you to
|
| -add an appropriate c['schedulers'] entry. Any old ".treeStableTime" settings
|
| -on the BuildFactory instances will now be ignored. The user's manual has
|
| -complete details with examples of how the new Scheduler classes work.
|
| -
|
| -*** c['interlocks'] removed, Locks and Dependencies now separate items
|
| -
|
| -The c['interlocks'] config element has been removed, and its functionality
|
| -replaced with two separate objects. Locks are used to tell the buildmaster
|
| -that certain Steps or Builds should not run at the same time as other Steps
|
| -or Builds (useful for test suites that require exclusive access to some
|
| -external resource: of course the real fix is to fix the tests, because
|
| -otherwise your developers will be suffering from the same limitations). The
|
| -Lock object is created in the config file and then referenced by a Step
|
| -specification tuple or by the 'locks' key of the Builder specification
|
| -dictionary. Locks come in two flavors: MasterLocks are buildmaster-wide,
|
| -while SlaveLocks are specific to a single buildslave.
|
| -
|
| -When you want to have one Build run or not run depending upon whether some
|
| -other set of Builds have passed or failed, you use a special kind of
|
| -Scheduler defined in the scheduler.Dependent class. This scheduler watches an
|
| -upstream Scheduler for builds of a given source version to complete, and only
|
| -fires off its own Builders when all of the upstream's Builders have built
|
| -that version successfully.
|
| -
|
| -Both features are fully documented in the user's manual.
|
| -
|
| -*** 'buildbot try'
|
| -
|
| -The 'try' feature has finally been added. There is some configuration
|
| -involved, both in the buildmaster config and on the developer's side, but
|
| -once in place this allows the developer to type 'buildbot try' in their
|
| -locally-modified tree and to be given a report of what would happen if their
|
| -changes were to be committed. This works by computing a (base revision,
|
| -patch) tuple that describes the developer's tree, sending that to the
|
| -buildmaster, then running a build with that source on a given set of
|
| -Builders. The 'buildbot try' tool then emits status messages until the builds
|
| -have finished.
|
| -
|
| -'try' exists to allow developers to run cross-platform tests on their code
|
| -before committing it, reducing the chances they will inconvenience other
|
| -developers by breaking the build. The UI is still clunky, but expect it to
|
| -change and improve over the next few releases.
|
| -
|
| -Instructions for developers who want to use 'try' (and the configuration
|
| -changes necessary to enable its use) are in the user's manual.
|
| -
|
| -*** Build-On-Branch
|
| -
|
| -When suitably configured, the buildbot can be used to build trees from a
|
| -variety of related branches. You can set up Schedulers to build a tree using
|
| -whichever branch was last changed, or users can request builds of specific
|
| -branches through IRC, the web page, or (eventually) the CLI 'buildbot force'
|
| -subcommand.
|
| -
|
| -The IRC 'force' command now takes --branch and --revision arguments (not that
|
| -they always make sense). Likewise the HTML 'force build' button now has an
|
| -input field for branch and revision. Your build's source-checkout step must
|
| -be suitably configured to support this: for SVN it involves giving both a
|
| -base URL and a default branch. Other VC systems are configured differently.
|
| -The ChangeSource must also provide branch information: the 'buildbot
|
| -sendchange' command now takes a --branch argument to help hook script writers
|
| -accomplish this.
|
| -
|
| -*** Multiple slaves per Builder
|
| -
|
| -You can now attach multiple buildslaves to each Builder. This can provide
|
| -redundancy or primitive load-balancing among many machines equally capable of
|
| -running the build. To use this, define a key in the Builder specification
|
| -dictionary named 'slavenames' with a list of buildslave names (instead of the
|
| -usual 'slavename' that contains just a single slavename).
|
| -
|
| -*** minor new features
|
| -
|
| -The IRC and email status-reporting facilities now provide more specific URLs
|
| -for particular builds, in addition to the generic buildmaster home page. The
|
| -HTML per-build page now has more information.
|
| -
|
| -The Twisted-specific test classes have been modified to match the argument
|
| -syntax preferred by Trial as of Twisted-2.1.0 and newer. The generic trial
|
| -steps are still suitable for the Trial that comes with older versions of
|
| -Twisted, but may produce deprecation warnings or errors when used with the
|
| -latest Trial.
|
| -
|
| -** bugs fixed
|
| -
|
| -DNotify, used by the maildir-watching ChangeSources, had problems on some
|
| -64-bit systems relating to signed-vs-unsigned constants and the DN_MULTISHOT
|
| -flag. A workaround was provided by Brad Hards.
|
| -
|
| -The web status page should now be valid XHTML, thanks to a patch by Brad
|
| -Hards. The charset parameter is specified to be UTF-8, so VC comments,
|
| -builder names, etc, should probably all be in UTF-8 to be displayed properly.
|
| -
|
| -** creeping version dependencies
|
| -
|
| -The IRC 'force build' command now requires python2.3 (for the shlex.split
|
| -function).
|
| -
|
| -
|
| -* Release 0.6.6 (23 May 2005)
|
| -
|
| -** bugs fixed
|
| -
|
| -The 'sendchange', 'stop', and 'sighup' subcommands were broken, simple bugs
|
| -that were not caught by the test suite. Sorry.
|
| -
|
| -The 'buildbot master' command now uses "raw" strings to create .tac files
|
| -that will still function under windows (since we must put directory names
|
| -that contain backslashes into that file).
|
| -
|
| -The keep-on-disk behavior added in 0.6.5 included the ability to upgrade old
|
| -in-pickle LogFile instances. This upgrade function was not added to the
|
| -HTMLLogFile class, so an exception would be raised when attempting to load or
|
| -display any build with one of these logs (which are normally used only for
|
| -showing build exceptions). This has been fixed.
|
| -
|
| -Several unnecessary imports were removed, so the Buildbot should function
|
| -normally with just Twisted-2.0.0's "Core" module installed. (of course you
|
| -will need TwistedWeb, TwistedWords, and/or TwistedMail if you use status
|
| -targets that require them). The test suite should skip all tests that cannot
|
| -be run because of missing Twisted modules.
|
| -
|
| -The master/slave's basedir is now prepended to sys.path before starting the
|
| -daemon. This used to happen implicitly (as a result of twistd's setup
|
| -preamble), but 0.6.5 internalized the invocation of twistd and did not copy
|
| -this behavior. This change restores the ability to access "private.py"-style
|
| -modules in the basedir from the master.cfg file with a simple "import
|
| -private" statement. Thanks to Thomas Vander Stichele for the catch.
|
| -
|
| -
|
| -* Release 0.6.5 (18 May 2005)
|
| -
|
| -** deprecated config keys removed
|
| -
|
| -The 'webPortnum', 'webPathname', 'irc', and 'manholePort' config-file keys,
|
| -which were deprecated in the previous release, have now been removed. In
|
| -addition, Builders must now always be configured with dictionaries: the
|
| -support for configuring them with tuples has been removed.
|
| -
|
| -** master/slave creation and startup changed
|
| -
|
| -The buildbot no longer uses .tap files to store serialized representations of
|
| -the buildmaster/buildslave applications. Instead, this release now uses .tac
|
| -files, which are human-readable scripts that create new instances (rather
|
| -than .tap files, which were pickles of pre-created instances). 'mktap
|
| -buildbot' is gone.
|
| -
|
| -You will need to update your buildbot directories to handle this. The
|
| -procedure is the same as creating a new buildmaster or buildslave: use
|
| -'buildbot master BASEDIR' or 'buildbot slave BASEDIR ARGS..'. This will
|
| -create a 'buildbot.tac' file in the target directory. The 'buildbot start
|
| -BASEDIR' will use twistd to start the application.
|
| -
|
| -The 'buildbot start' command now looks for a Makefile.buildbot, and if it
|
| -finds one (and /usr/bin/make exists), it will use it to start the application
|
| -instead of calling twistd directly. This allows you to customize startup,
|
| -perhaps by adding environment variables. The setup commands create a sample
|
| -file in Makefile.sample, but you must copy this to Makefile.buildbot to
|
| -actually use it. The previous release looked for a bare 'Makefile', and also
|
| -installed a 'Makefile', so you were always using the customized approach,
|
| -even if you didn't ask for it. That old Makefile launched the .tap file, so
|
| -changing names was also necessary to make sure that the new 'buildbot start'
|
| -doesn't try to run the old .tap file.
|
| -
|
| -'buildbot stop' now uses os.kill instead of spawning an external process,
|
| -making it more likely to work under windows. It waits up to 5 seconds for the
|
| -daemon to go away, so you can now do 'buildbot stop BASEDIR; buildbot start
|
| -BASEDIR' with less risk of launching the new daemon before the old one has
|
| -fully shut down. Likewise, 'buildbot start' imports twistd's internals
|
| -directly instead of spawning an external copy, so it should work better under
|
| -windows.
|
| -
|
| -** new documentation
|
| -
|
| -All of the old Lore-based documents were converted into a new Texinfo-format
|
| -manual, and considerable new text was added to describe the installation
|
| -process. The docs are not yet complete, but they're slowly shaping up to form
|
| -a proper user's manual.
|
| -
|
| -** new features
|
| -
|
| -Arch checkouts can now use precise revision stamps instead of always using
|
| -the latest revision. A separate Source step for using Bazaar (an alternative
|
| -Arch client) instead of 'tla' was added. A Source step for Cogito (the new
|
| -linux kernel VC system) was contributed by Brandon Philips. All Source steps
|
| -now accept a retry= argument to indicate that failing VC checkouts should be
|
| -retried a few times (SF#1200395), note that this requires an updated
|
| -buildslave.
|
| -
|
| -The 'buildbot sendchange' command was added, to be used in VC hook scripts to
|
| -send changes at a pb.PBChangeSource . contrib/arch_buildbot.py was added to
|
| -use this tool; it should be installed using the 'Arch meta hook' scheme.
|
| -
|
| -Changes can now accept a branch= parameter, and Builders have an
|
| -isBranchImportant() test that acts like isFileImportant(). Thanks to Thomas
|
| -Vander Stichele. Note: I renamed his tag= to branch=, in anticipation of an
|
| -upcoming feature to build specific branches. "tag" seemed too CVS-centric.
|
| -
|
| -LogFiles have been rewritten to stream the incoming data directly to disk
|
| -rather than keeping a copy in memory all the time (SF#1200392). This
|
| -drastically reduces the buildmaster's memory requirements and makes 100MB+
|
| -log files feasible. The log files are stored next to the serialized Builds,
|
| -in files like BASEDIR/builder-dir/12-log-compile-output, so you'll want a
|
| -cron job to delete old ones just like you do with old Builds. Old-style
|
| -Builds from 0.6.4 and earlier are converted when they are first read, so the
|
| -first load of the Waterfall display after updating to this release may take
|
| -quite some time.
|
| -
|
| -** build process updates
|
| -
|
| -BuildSteps can now return a status of EXCEPTION, which terminates the build
|
| -right away. This allows exceptions to be caught right away, but still make
|
| -sure the build stops quickly.
|
| -
|
| -** bug fixes
|
| -
|
| -Some more windows incompatibilities were fixed. The test suite now has two
|
| -failing tests remaining, both of which appear to be Twisted issues that
|
| -should not affect normal operation.
|
| -
|
| -The test suite no longer raises any deprecation warnings when run against
|
| -twisted-2.0 (except for the ones which come from Twisted itself).
|
| -
|
| -
|
| -* Release 0.6.4 (28 Apr 2005)
|
| -
|
| -** major bugs fixed
|
| -
|
| -The 'buildbot' tool in 0.6.3, when used to create a new buildmaster, failed
|
| -unless it found a 'changes.pck' file. As this file is created by a running
|
| -buildmaster, this made 0.6.3 completely unusable for first-time
|
| -installations. This has been fixed.
|
| -
|
| -** minor bugs fixed
|
| -
|
| -The IRC bot had a bug wherein asking it to watch a certain builder (the "I'll
|
| -give a shout when the build finishes" message) would cause an exception, so
|
| -it would not, in fact, shout. The HTML page had an exception in the "change
|
| -sources" page (reached by following the "Changes" link at the top of the
|
| -column that shows the names of commiters). Re-loading the config file while
|
| -builders were already attached would result in a benign error message. The
|
| -server side of the PBListener status client had an exception when providing
|
| -information about a non-existent Build (e.g., when the client asks for the
|
| -Build that is currently running, and the server says "None").
|
| -
|
| -These bugs have all been fixed.
|
| -
|
| -The unit tests now pass under python2.2; they were failing before because of
|
| -some 2.3isms that crept in. More unit tests which failed under windows now
|
| -pass, only one (test_webPathname_port) is still failing.
|
| -
|
| -** 'buildbot' tool looks for a .buildbot/options file
|
| -
|
| -The 'statusgui' and the 'debugclient' subcommands can both look for a
|
| -.buildbot/ directory, and an 'options' file therein, to extract default
|
| -values for the location of the buildmaster. This directory is searched in the
|
| -current directory, its parent, etc, all the way up to the filesystem root
|
| -(assuming you own the directories in question). It also look in ~/.buildbot/
|
| -for this file. This feature allows you to put a .buildbot at the top of your
|
| -working tree, telling any 'buildbot' invocations you perform therein how to
|
| -get to the buildmaster associated with that tree's project.
|
| -
|
| -Windows users get something similar, using %APPDATA%/buildbot instead of
|
| -~/.buildbot .
|
| -
|
| -** windows ShellCommands are launched with 'cmd.exe'
|
| -
|
| -The buildslave has been modified to run all list-based ShellCommands by
|
| -prepending [os.environ['COMSPEC'], '/c'] to the argv list before execution.
|
| -This should allow the buildslave's PATH to be searched for commands,
|
| -improving the chances that it can run the same 'trial -o foo' commands as a
|
| -unix buildslave. The potential downside is that spaces in argv elements might
|
| -be re-parsed, or quotes might be re-interpreted. The consensus on the mailing
|
| -list was that this is a useful thing to do, but please report any problems
|
| -you encounter with it.
|
| -
|
| -** minor features
|
| -
|
| -The Waterfall display now shows the buildbot's home timezone at the top of
|
| -the timestamp column. The default favicon.ico is now much nicer-looking (it
|
| -is generated with Blender.. the icon.blend file is available in CVS in
|
| -docs/images/ should you care to play with it).
|
| -
|
| -
|
| -
|
| -* Release 0.6.3 (25 Apr 2005)
|
| -
|
| -** 'buildbot' tool gets more uses
|
| -
|
| -The 'buildbot' executable has acquired three new subcommands. 'buildbot
|
| -debugclient' brings up the small remote-control panel that connects to a
|
| -buildmaster (via the slave port and the c['debugPassword']). This tool,
|
| -formerly in contrib/debugclient.py, lets you reload the config file, force
|
| -builds, and simulate inbound commit messages. It requires gtk2, glade, and
|
| -the python bindings for both to be installed.
|
| -
|
| -'buildbot statusgui' brings up a live status client, formerly available by
|
| -running buildbot/clients/gtkPanes.py as a program. This connects to the PB
|
| -status port that you create with:
|
| -
|
| - c['status'].append(client.PBListener(portnum))
|
| -
|
| -and shows two boxes per Builder, one for the last build, one for current
|
| -activity. These boxes are updated in realtime. The effect is primitive, but
|
| -is intended as an example of what's possible with the PB status interface.
|
| -
|
| -'buildbot statuslog' provides a text-based running log of buildmaster events.
|
| -
|
| -Note: command names are subject to change. These should get much more useful
|
| -over time.
|
| -
|
| -** web page has a favicon
|
| -
|
| -When constructing the html.Waterfall instance, you can provide the filename
|
| -of an image that will be provided when the "favicon.ico" resource is
|
| -requested. Many web browsers display this as an icon next to the URL or
|
| -bookmark. A goofy little default icon is included.
|
| -
|
| -** web page has CSS
|
| -
|
| -Thanks to Thomas Vander Stichele, the Waterfall page is now themable through
|
| -CSS. The default CSS is located in buildbot/status/classic.css, and creates a
|
| -page that is mostly identical to the old, non-CSS based table.
|
| -
|
| -You can specify a different CSS file to use by passing it as the css=
|
| -argument to html.Waterfall(). See the docstring for Waterfall for some more
|
| -details.
|
| -
|
| -** builder "categories"
|
| -
|
| -Thomas has added code which places each Builder in an optional "category".
|
| -The various status targets (Waterfall, IRC, MailNotifier) can accept a list
|
| -of categories, and they will ignore any activity in builders outside this
|
| -list. This makes it easy to create some Builders which are "experimental" or
|
| -otherwise not yet ready for the world to see, or indicate that certain
|
| -builders should not harass developers when their tests fail, perhaps because
|
| -the build slaves for them are not yet fully functional.
|
| -
|
| -** Deprecated features
|
| -
|
| -*** defining Builders with tuples is deprecated
|
| -
|
| -For a long time, the preferred way to define builders in the config file has
|
| -been with a dictionary. The less-flexible old style of a 4-item tuple (name,
|
| -slavename, builddir, factory) is now officially deprecated (i.e., it will
|
| -emit a warning if you use it), and will be removed in the next release.
|
| -Dictionaries are more flexible: additional keys like periodicBuildTime are
|
| -simply unavailable to tuple-defined builders.
|
| -
|
| -Note: it is a good idea to watch the logfile (usually in twistd.log) when you
|
| -first start the buildmaster, or whenever you reload the config file. Any
|
| -warnings or errors in the config file will be found there.
|
| -
|
| -*** c['webPortnum'], c['webPathname'], c['irc'] are deprecated
|
| -
|
| -All status reporters should be defined in the c['status'] array, using
|
| -buildbot.status.html.Waterfall or buildbot.status.words.IRC . These have been
|
| -deprecated for a while, but this is fair warning that these keys will be
|
| -removed in the next release.
|
| -
|
| -*** c['manholePort'] is deprecated
|
| -
|
| -Again, this has been deprecated for a while, in favor of:
|
| -
|
| - c['manhole'] = master.Manhole(port, username, password)
|
| -
|
| -The preferred syntax will eventually let us use other, better kinds of debug
|
| -shells, such as the experimental curses-based ones in the Twisted sandbox
|
| -(which would offer command-line editing and history).
|
| -
|
| -** bug fixes
|
| -
|
| -The waterfall page has been improved a bit. A circular-reference bug in the
|
| -web page's TextLog class was fixed, which caused a major memory leak in a
|
| -long-running buildmaster with large logfiles that are viewed frequently.
|
| -Modifying the config file in a way which only changed a builder's base
|
| -directory now works correctly. The 'buildbot' command tries to create
|
| -slightly more useful master/slave directories, adding a Makefile entry to
|
| -re-create the .tap file, and removing global-read permissions from the files
|
| -that may contain buildslave passwords.
|
| -
|
| -** twisted-2.0.0 compatibility
|
| -
|
| -Both buildmaster and buildslave should run properly under Twisted-2.0 . There
|
| -are still some warnings about deprecated functions, some of which could be
|
| -fixed, but there are others that would require removing compatibility with
|
| -Twisted-1.3, and I don't expect to do that until 2.0 has been out and stable
|
| -for at least several months. The unit tests should pass under 2.0, whereas
|
| -the previous buildbot release had tests which could hang when run against the
|
| -new "trial" framework in 2.0.
|
| -
|
| -The Twisted-specific steps (including Trial) have been updated to match 2.0
|
| -functionality.
|
| -
|
| -** win32 compatibility
|
| -
|
| -Thankt to Nick Trout, more compatibility fixes have been incorporated,
|
| -improving the chances that the unit tests will pass on windows systems. There
|
| -are still some problems, and a step-by-step "running buildslaves on windows"
|
| -document would be greatly appreciated.
|
| -
|
| -** API docs
|
| -
|
| -Thanks to Thomas Vander Stichele, most of the docstrings have been converted
|
| -to epydoc format. There is a utility in docs/gen-reference to turn these into
|
| -a tree of cross-referenced HTML pages. Eventually these docs will be
|
| -auto-generated and somehow published on the buildbot web page.
|
| -
|
| -
|
| -
|
| -* Release 0.6.2 (13 Dec 2004)
|
| -
|
| -** new features
|
| -
|
| -It is now possible to interrupt a running build. Both the web page and the
|
| -IRC bot feature 'stop build' commands, which can be used to interrupt the
|
| -current BuildStep and accelerate the termination of the overall Build. The
|
| -status reporting for these still leaves something to be desired (an
|
| -'interrupt' event is pushed into the column, and the reason for the interrupt
|
| -is added to a pseudo-logfile for the step that was stopped, but if you only
|
| -look at the top-level status it appears that the build failed on its own).
|
| -
|
| -Builds are also halted if the connection to the buildslave is lost. On the
|
| -slave side, any active commands are halted if the connection to the
|
| -buildmaster is lost.
|
| -
|
| -** minor new features
|
| -
|
| -The IRC log bot now reports ETA times in a MMSS format like "2m45s" instead
|
| -of the clunky "165 seconds".
|
| -
|
| -** bug fixes
|
| -
|
| -*** Slave Disconnect
|
| -
|
| -Slave disconnects should be handled better now: the current build should be
|
| -abandoned properly. Earlier versions could get into weird states where the
|
| -build failed to finish, clogging the builder forever (or at least until the
|
| -buildmaster was restarted).
|
| -
|
| -In addition, there are weird network conditions which could cause a
|
| -buildslave to attempt to connect twice to the same buildmaster. This can
|
| -happen when the slave is sending large logfiles over a slow link, while using
|
| -short keepalive timeouts. The buildmaster has been fixed to allow the second
|
| -connection attempt to take precedence over the first, so that the older
|
| -connection is jettisoned to make way for the newer one.
|
| -
|
| -In addition, the buildslave has been fixed to be less twitchy about timeouts.
|
| -There are now two parameters: keepaliveInterval (which is controlled by the
|
| -mktap 'keepalive' argument), and keepaliveTimeout (which requires editing the
|
| -.py source to change from the default of 30 seconds). The slave expects to
|
| -see *something* from the master at least once every keepaliveInterval
|
| -seconds, and will try to provoke a response (by sending a keepalive request)
|
| -'keepaliveTimeout' seconds before the end of this interval just in case there
|
| -was no regular traffic. Any kind of traffic will qualify, including
|
| -acknowledgements of normal build-status updates.
|
| -
|
| -The net result is that, as long as any given PB message can be sent over the
|
| -wire in less than 'keepaliveTimeout' seconds, the slave should not mistakenly
|
| -disconnect because of a timeout. There will be traffic on the wire at least
|
| -every 'keepaliveInterval' seconds, which is what you want to pay attention to
|
| -if you're trying to keep an intervening NAT box from dropping what it thinks
|
| -is an abandoned connection. A quiet loss of connection will be detected
|
| -within 'keepaliveInterval' seconds.
|
| -
|
| -*** Large Logfiles
|
| -
|
| -The web page rendering code has been fixed to deliver large logfiles in
|
| -pieces, using a producer/consumer apparatus. This avoids the large spike in
|
| -memory consumption when the log file body was linearized into a single string
|
| -and then buffered in the socket's application-side transmit buffer. This
|
| -should also avoid the 640k single-string limit for web.distrib servers that
|
| -could be hit by large (>640k) logfiles.
|
| -
|
| -
|
| -
|
| -* Release 0.6.1 (23 Nov 2004)
|
| -
|
| -** win32 improvements/bugfixes
|
| -
|
| -Several changes have gone in to improve portability to non-unix systems. It
|
| -should be possible to run a build slave under windows without major issues
|
| -(although step-by-step documentation is still greatly desired: check the
|
| -mailing list for suggestions from current win32 users).
|
| -
|
| -*** PBChangeSource: use configurable directory separator, not os.sep
|
| -
|
| -The PBChangeSource, which listens on a TCP socket for change notices
|
| -delivered from tools like contrib/svn_buildbot.py, was splitting source
|
| -filenames with os.sep . This is inappropriate, because those file names are
|
| -coming from the VC repository, not the local filesystem, and the repository
|
| -host may be running a different OS (with a different separator convention)
|
| -than the buildmaster host. In particular, a win32 buildmaster using a CVS
|
| -repository running on a unix box would be confused.
|
| -
|
| -PBChangeSource now takes a sep= argument to indicate the separator character
|
| -to use.
|
| -
|
| -*** build saving should work better
|
| -
|
| -windows cannot do the atomic os.rename() trick that unix can, so under win32
|
| -the buildmaster falls back to save/delete-old/rename, which carries a slight
|
| -risk of losing a saved build log (if the system were to crash between the
|
| -delete-old and the rename).
|
| -
|
| -** new features
|
| -
|
| -*** test-result tracking
|
| -
|
| -Work has begun on fine-grained test-result handling. The eventual goal is to
|
| -be able to track individual tests over time, and create problem reports when
|
| -a test starts failing (which then are resolved when the test starts passing
|
| -again). The first step towards this is an ITestResult interface, and code in
|
| -the TrialTestParser to create such results for all non-passing tests (the
|
| -ones for which Trial emits exception tracebacks).
|
| -
|
| -These test results are currently displayed in a tree-like display in a page
|
| -accessible from each Build's page (follow the numbered link in the yellow
|
| -box at the start of each build to get there).
|
| -
|
| -This interface is still in flux, as it really wants to be able to accomodate
|
| -things like compiler warnings and tests that are skipped because of missing
|
| -libraries or unsupported architectures.
|
| -
|
| -** bug fixes
|
| -
|
| -*** VC updates should survive temporary failures
|
| -
|
| -Some VC systems (CVS and SVN in particular) get upset when files are turned
|
| -into directories or vice versa, or when repository items are moved without
|
| -the knowledge of the VC system. The usual symptom is that a 'cvs update'
|
| -fails where a fresh checkout succeeds.
|
| -
|
| -To avoid having to manually intervene, the build slaves' VC commands have
|
| -been refactored to respond to update failures by deleting the tree and
|
| -attempting a full checkout. This may cause some unnecessary effort when,
|
| -e.g., the CVS server falls off the net, but in the normal case it will only
|
| -come into play when one of these can't-cope situations arises.
|
| -
|
| -*** forget about an existing build when the slave detaches
|
| -
|
| -If the slave was lost during a build, the master did not clear the
|
| -.currentBuild reference, making that builder unavailable for later builds.
|
| -This has been fixed, so that losing a slave should be handled better. This
|
| -area still needs some work, I think it's still possible to get both the
|
| -slave and the master wedged by breaking the connection at just the right
|
| -time. Eventually I want to be able to resume interrupted builds (especially
|
| -when the interruption is the result of a network failure and not because the
|
| -slave or the master actually died).
|
| -
|
| -*** large logfiles now consume less memory
|
| -
|
| -Build logs are stored as lists of (type,text) chunks, so that
|
| -stdout/stderr/headers can be displayed differently (if they were
|
| -distinguishable when they were generated: stdout and stderr are merged when
|
| -usePTY=1). For multi-megabyte logfiles, a large list with many short strings
|
| -could incur a large overhead. The new behavior is to merge same-type string
|
| -chunks together as they are received, aiming for a chunk size of about 10kb,
|
| -which should bring the overhead down to a more reasonable level.
|
| -
|
| -There remains an issue with actually delivering large logfiles over, say,
|
| -the HTML interface. The string chunks must be merged together into a single
|
| -string before delivery, which causes a spike in the memory usage when the
|
| -logfile is viewed. This can also break twisted.web.distrib -type servers,
|
| -where the underlying PB protocol imposes a 640k limit on the size of
|
| -strings. This will be fixed (with a proper Producer/Consumer scheme) in the
|
| -next release.
|
| -
|
| -
|
| -* Release 0.6.0 (30 Sep 2004)
|
| -
|
| -** new features
|
| -
|
| -*** /usr/bin/buildbot control tool
|
| -
|
| -There is now an executable named 'buildbot'. For now, this just provides a
|
| -convenient front-end to mktap/twistd/kill, but eventually it will provide
|
| -access to other client functionality (like the 'try' builds, and a status
|
| -client). Assuming you put your buildbots in /var/lib/buildbot/master/FOO,
|
| -you can do 'buildbot create-master /var/lib/buildbot/master/FOO' and it will
|
| -create the .tap file and set up a sample master.cfg for you. Later,
|
| -'buildbot start /var/lib/buildbot/master/FOO' will start the daemon.
|
| -
|
| -
|
| -*** build status now saved in external files, -shutdown.tap unnecessary
|
| -
|
| -The status rewrite included a change to save all build status in a set of
|
| -external files. These files, one per build, are put in a subdirectory of the
|
| -master's basedir (named according to the 'builddir' parameter of the Builder
|
| -configuration dictionary). This helps keep the buildmaster's memory
|
| -consumption small: the (potentially large) build logs are kept on disk
|
| -instead of in RAM. There is a small cache (2 builds per builder) kept in
|
| -memory, but everything else lives on disk.
|
| -
|
| -The big change is that the buildmaster now keeps *all* status in these
|
| -files. It is no longer necessary to preserve the buildbot-shutdown.tap file
|
| -to run a persistent buildmaster. The buildmaster may be launched with
|
| -'twistd -f buildbot.tap' each time, in fact the '-n' option can be added to
|
| -prevent twistd from automatically creating the -shutdown.tap file.
|
| -
|
| -There is still one lingering bug with this change: the Expectations object
|
| -for each builder (which records how long the various steps took, to provide
|
| -an ETA value for the next time) is not yet saved. The result is that the
|
| -first build after a restart will not provide an ETA value.
|
| -
|
| -0.6.0 keeps status in a single file per build, as opposed to 0.5.0 which
|
| -kept status in many subdirectories (one layer for builds, another for steps,
|
| -and a third for logs). 0.6.0 will detect and delete these subdirectories as
|
| -it overwrites them.
|
| -
|
| -The saved builds are optional. To prevent disk usage from growing without
|
| -bounds, you may want to set up a cron job to run 'find' and delete any which
|
| -are too old. The status displays will happily survive without those saved
|
| -build objects.
|
| -
|
| -The set of recorded Changes is kept in a similar file named 'changes.pck'.
|
| -
|
| -
|
| -*** source checkout now uses timestamp/revision
|
| -
|
| -Source checkouts are now performed with an appropriate -D TIMESTAMP (for
|
| -CVS) or -r REVISION (for SVN) marker to obtain the exact sources that were
|
| -specified by the most recent Change going into the current Build. This
|
| -avoids a race condition in which a change might be committed after the build
|
| -has started but before the source checkout has completed, resulting in a
|
| -mismatched set of source files. Such changes are now ignored.
|
| -
|
| -This works by keeping track of repository-wide revision/transaction numbers
|
| -(for version control systems that offer them, like SVN). The checkout or
|
| -update is performed with the highest such revision number. For CVS (which
|
| -does not have them), the timestamp of each commit message is used, and a -D
|
| -argument is created to place the checkout squarely in the middle of the "tree
|
| -stable timer"'s window.
|
| -
|
| -This also provides the infrastructure for the upcoming 'try' feature. All
|
| -source-checkout commands can now obtain a base revision marker and a patch
|
| -from the Build, allowing certain builds to be performed on something other
|
| -than the most recent sources.
|
| -
|
| -See source.xhtml and steps.xhtml for details.
|
| -
|
| -
|
| -*** Darcs and Arch support added
|
| -
|
| -There are now build steps which retrieve a source tree from Darcs and Arch
|
| -repositories. See steps.xhtml for details.
|
| -
|
| -Preliminary P4 support has been added, thanks to code from Dave Peticolas.
|
| -You must manually set up each build slave with an appropriate P4CLIENT: all
|
| -buildbot does is run 'p4 sync' at the appropriate times.
|
| -
|
| -
|
| -*** Status reporting rewritten
|
| -
|
| -Status reporting was completely revamped. The config file now accepts a
|
| -BuildmasterConfig['status'] entry, with a list of objects that perform status
|
| -delivery. The old config file entries which controlled the web status port
|
| -and the IRC bot have been deprecated in favor of adding instances to
|
| -['status']. The following status-delivery classes have been implemented, all
|
| -in the 'buildbot.status' package:
|
| -
|
| - client.PBListener(port, username, passwd)
|
| - html.Waterfall(http_port, distrib_port)
|
| - mail.MailNotifier(fromaddr, mode, extraRecipients..)
|
| - words.IRC(host, nick, channels)
|
| -
|
| -See the individual docstrings for details about how to use each one. You can
|
| -create new status-delivery objects by following the interfaces found in the
|
| -buildbot.interfaces module.
|
| -
|
| -
|
| -*** BuildFactory configuration process changed
|
| -
|
| -The basic BuildFactory class is now defined in buildbot.process.factory
|
| -rather than buildbot.process.base, so you will have to update your config
|
| -files. factory.BuildFactory is the base class, which accepts a list of Steps
|
| -to run. See docs/factories.xhtml for details.
|
| -
|
| -There are now easier-to-use BuildFactory classes for projects which use GNU
|
| -Autoconf, perl's MakeMaker (CPAN), python's distutils (but no unit tests),
|
| -and Twisted's Trial. Each one takes a separate 'source' Step to obtain the
|
| -source tree, and then fills in the rest of the Steps for you.
|
| -
|
| -
|
| -*** CVS/SVN VC steps unified, simplified
|
| -
|
| -The confusing collection of arguments for the CVS step ('clobber=',
|
| -'copydir=', and 'export=') have been removed in favor of a single 'mode'
|
| -argument. This argument describes how you want to use the sources: whether
|
| -you want to update and compile everything in the same tree (mode='update'),
|
| -or do a fresh checkout and full build each time (mode='clobber'), or
|
| -something in between.
|
| -
|
| -The SVN (Subversion) step has been unified and accepts the same mode=
|
| -parameter as CVS. New version control steps will obey the same interface.
|
| -
|
| -Most of the old configuration arguments have been removed. You will need to
|
| -update your configuration files to use the new arguments. See
|
| -docs/steps.xhtml for a description of all the new parameters.
|
| -
|
| -
|
| -*** Preliminary Debian packaging added
|
| -
|
| -Thanks to the contributions of Kirill Lapshin, we can now produce .deb
|
| -installer packages. These are still experimental, but they include init.d
|
| -startup/shutdown scripts, which the the new /usr/bin/buildbot to invoke
|
| -twistd. Create your buildmasters in /var/lib/buildbot/master/FOO, and your
|
| -slaves in /var/lib/buildbot/slave/BAR, then put FOO and BAR in the
|
| -appropriate places in /etc/default/buildbot . After that, the buildmasters
|
| -and slaves will be started at every boot.
|
| -
|
| -Pre-built .debs are not yet distributed. Use 'debuild -uc -us' from the
|
| -source directory to create them.
|
| -
|
| -
|
| -** minor features
|
| -
|
| -
|
| -*** Source Stamps
|
| -
|
| -Each build now has a "source stamp" which describes what sources it used. The
|
| -idea is that the sources for this particular build can be completely
|
| -regenerated from the stamp. The stamp is a tuple of (revision, patch), where
|
| -the revision depends on the VC system being used (for CVS it is either a
|
| -revision tag like "BUILDBOT-0_5_0" or a datestamp like "2004/07/23", for
|
| -Subversion it is a revision number like 11455). This must be combined with
|
| -information from the Builder that is constant across all builds (something to
|
| -point at the repository, and possibly a branch indicator for CVS and other VC
|
| -systems that don't fold this into the repository string).
|
| -
|
| -The patch is an optional unified diff file, ready to be applied by running
|
| -'patch -p0 <PATCH' from inside the workdir. This provides support for the
|
| -'try' feature that will eventually allow developers to run buildbot tests on
|
| -their code before checking it in.
|
| -
|
| -
|
| -*** SIGHUP causes the buildmaster's configuration file to be re-read
|
| -
|
| -*** IRC bot now has 'watch' command
|
| -
|
| -You can now tell the buildbot's IRC bot to 'watch <buildername>' on a builder
|
| -which is currently performing a build. When that build is finished, the
|
| -buildbot will make an announcement (including the results of the build).
|
| -
|
| -The IRC 'force build' command will also announce when the resulting build has
|
| -completed.
|
| -
|
| -
|
| -*** the 'force build' option on HTML and IRC status targets can be disabled
|
| -
|
| -The html.Waterfall display and the words.IRC bot may be constructed with an
|
| -allowForce=False argument, which removes the ability to force a build through
|
| -these interfaces. Future versions will be able to restrict this build-forcing
|
| -capability to authenticated users. The per-builder HTML page no longer
|
| -displays the 'Force Build' buttons if it does not have this ability. Thanks
|
| -to Fred Drake for code and design suggestions.
|
| -
|
| -
|
| -*** master now takes 'projectName' and 'projectURL' settings
|
| -
|
| -These strings allow the buildbot to describe what project it is working for.
|
| -At the moment they are only displayed on the Waterfall page, but in the next
|
| -release they will be retrieveable from the IRC bot as well.
|
| -
|
| -
|
| -*** survive recent (SVN) Twisted versions
|
| -
|
| -The buildbot should run correctly (albeit with plenty of noisy deprecation
|
| -warnings) under the upcoming Twisted-2.0 release.
|
| -
|
| -
|
| -*** work-in-progress realtime Trial results acquisition
|
| -
|
| -Jonathan Simms (<slyphon>) has been working on 'retrial', a rewrite of
|
| -Twisted's unit test framework that will most likely be available in
|
| -Twisted-2.0 . Although it is not yet complete, the buildbot will be able to
|
| -use retrial in such a way that build status is reported on a per-test basis,
|
| -in real time. This will be the beginning of fine-grained test tracking and
|
| -Problem management, described in docs/users.xhtml .
|
| -
|
| -
|
| -* Release 0.5.0 (22 Jul 2004)
|
| -
|
| -** new features
|
| -
|
| -*** web.distrib servers via TCP
|
| -
|
| -The 'webPathname' config option, which specifies a UNIX socket on which to
|
| -publish the waterfall HTML page (for use by 'mktap web -u' or equivalent),
|
| -now accepts a numeric port number. This publishes the same thing via TCP,
|
| -allowing the parent web server to live on a separate machine.
|
| -
|
| -This config option could be named better, but it will go away altogether in
|
| -a few releases, when status delivery is unified. It will be replaced with a
|
| -WebStatusTarget object, and the config file will simply contain a list of
|
| -various kinds of status targets.
|
| -
|
| -*** 'master.cfg' filename is configurable
|
| -
|
| -The buildmaster can use a config file named something other than
|
| -"master.cfg". Use the --config=foo.cfg option to mktap to control this.
|
| -
|
| -*** FreshCVSSource now uses newcred (CVSToys >= 1.0.10)
|
| -
|
| -The FreshCVSSource class now defaults to speaking to freshcvs daemons from
|
| -modern CVSToys releases. If you need to use the buildbot with a daemon from
|
| -CVSToys-1.0.9 or earlier, use FreshCVSSourceOldcred instead. Note that the
|
| -new form only requires host/port/username/passwd: the "serviceName"
|
| -parameter is no longer meaningful.
|
| -
|
| -*** Builders are now configured with a dictionary, not a tuple
|
| -
|
| -The preferred way to set up a Builder in master.cfg is to provide a
|
| -dictionary with various keys, rather than a (non-extensible) 4-tuple. See
|
| -docs/config.xhtml for details. The old tuple-way is still supported for now,
|
| -it will probably be deprecated in the next release and removed altogether in
|
| -the following one.
|
| -
|
| -*** .periodicBuildTime is now exposed to the config file
|
| -
|
| -To set a builder to run at periodic intervals, simply add a
|
| -'periodicBuildTime' key to its master.cfg dictionary. Again, see
|
| -docs/config.xhtml for details.
|
| -
|
| -*** svn_buildbot.py adds --include, --exclude
|
| -
|
| -The commit trigger script now gives you more control over which files are
|
| -sent to the buildmaster and which are not.
|
| -
|
| -*** usePTY is controllable at slave mktap time
|
| -
|
| -The buildslaves usually run their child processes in a pty, which creates a
|
| -process group for all the children, which makes it much easier to kill them
|
| -all at once (i.e. if a test hangs). However this causes problems on some
|
| -systems. Rather than hacking slavecommand.py to disable the use of these
|
| -ptys, you can now create the slave's .tap file with --usepty=0 at mktap
|
| -time.
|
| -
|
| -** Twisted changes
|
| -
|
| -A summary of warnings (e.g. DeprecationWarnings) is provided as part of the
|
| -test-case summarizer. The summarizer also counts Skips, expectedFailures,
|
| -and unexpectedSuccesses, displaying the counts on the test step's event box.
|
| -
|
| -The RunUnitTests step now uses "trial -R twisted" instead of "trial
|
| -twisted.test", which is a bit cleaner. All .pyc files are deleted before
|
| -starting trial, to avoid getting tripped up by deleted .py files.
|
| -
|
| -** documentation
|
| -
|
| -docs/config.xhtml now describes the syntax and allowed contents of the
|
| -'master.cfg' configuration file.
|
| -
|
| -** bugfixes
|
| -
|
| -Interlocks had a race condition that could cause the lock to get stuck
|
| -forever.
|
| -
|
| -FreshCVSSource has a prefix= argument that was moderately broken (it used to
|
| -only work if the prefix was a single directory component). It now works with
|
| -subdirectories.
|
| -
|
| -The buildmaster used to complain when it saw the "info" directory in a
|
| -slave's workspace. This directory is used to publish information about the
|
| -slave host and its administrator, and is not a leftover build directory as
|
| -the complaint suggested. This complain has been silenced.
|
| -
|
| -
|
| -* Release 0.4.3 (30 Apr 2004)
|
| -
|
| -** PBChangeSource made explicit
|
| -
|
| -In 0.4.2 and before, an internal interface was available which allowed
|
| -special clients to inject changes into the Buildmaster. This interface is
|
| -used by the contrib/svn_buildbot.py script. The interface has been extracted
|
| -into a proper PBChangeSource object, which should be created in the
|
| -master.cfg file just like the other kinds of ChangeSources. See
|
| -docs/sources.xhtml for details.
|
| -
|
| -If you were implicitly using this change source (for example, if you use
|
| -Subversion and the svn_buildbot.py script), you *must* add this source to
|
| -your master.cfg file, or changes will not be delivered and no builds will be
|
| -triggered.
|
| -
|
| -The PBChangeSource accepts the same "prefix" argument as all other
|
| -ChangeSources. For a SVN repository that follows the recommended practice of
|
| -using "trunk/" for the trunk revisions, you probably want to construct the
|
| -source like this:
|
| -
|
| - source = PBChangeSource(prefix="trunk")
|
| -
|
| -to make sure that the Builders are given sensible (trunk-relative)
|
| -filenames for each changed source file.
|
| -
|
| -** Twisted changes
|
| -
|
| -*** step_twisted.RunUnitTests can change "bin/trial"
|
| -
|
| -The twisted RunUnitTests step was enhanced to let you run something other
|
| -than "bin/trial", making it easier to use a buildbot on projects which use
|
| -Twisted but aren't actually Twisted itself.
|
| -
|
| -*** Twisted now uses Subversion
|
| -
|
| -Now that Twisted has moved from CVS to SVN, the Twisted build processes have
|
| -been modified to perform source checkouts from the Subversion repository.
|
| -
|
| -** minor feature additions
|
| -
|
| -*** display Changes with HTML
|
| -
|
| -Changes are displayed with a bit more pizazz, and a links= argument was
|
| -added to allow things like ViewCVS links to be added to the display
|
| -(although it is not yet clear how this argument should be used: the
|
| -interface remains subject to change untill it has been documented).
|
| -
|
| -*** display ShellCommand logs with HTML
|
| -
|
| -Headers are in blue, stderr is in red (unless usePTY=1 in which case stderr
|
| -and stdout are indistinguishable). A link is provided which returns the same
|
| -contents as plain text (by appending "?text=1" to the URL).
|
| -
|
| -*** buildslaves send real tracebacks upon error
|
| -
|
| -The .unsafeTracebacks option has been turned on for the buildslaves,
|
| -allowing them to send a full stack trace when an exception occurs, which is
|
| -logged in the buildmaster's twistd.log file. This makes it much easier to
|
| -determine what went wrong on the slave side.
|
| -
|
| -*** BasicBuildFactory refactored
|
| -
|
| -The BasicBuildFactory class was refactored to make it easier to create
|
| -derivative classes, in particular the BasicSVN variant.
|
| -
|
| -*** "ping buildslave" web button added
|
| -
|
| -There is now a button on the "builder information" page that lets a web user
|
| -initiate a ping of the corresponding build slave (right next to the button
|
| -that lets them force a build). This was added to help track down a problem
|
| -with the slave keepalives.
|
| -
|
| -** bugs fixed:
|
| -
|
| -You can now have multiple BuildSteps with the same name (the names are used
|
| -as hash keys in the data structure that helps determine ETA values for each
|
| -step, the new code creates unique key names if necessary to avoid
|
| -collisions). This means that, for example, you do not have to create a
|
| -BuildStep subclass just to have two Compile steps in the same process.
|
| -
|
| -If CVSToys is not installed, the tests that depend upon it are skipped.
|
| -
|
| -Some tests in 0.4.2 failed because of a missing set of test files, they are
|
| -now included in the tarball properly.
|
| -
|
| -Slave keepalives should work better now in the face of silent connection
|
| -loss (such as when an intervening NAT box times out the association), the
|
| -connection should be reestablished in minutes instead of hours.
|
| -
|
| -Shell commands on the slave are invoked with an argument list instead of the
|
| -ugly and error-prone split-on-spaces approach. If the ShellCommand is given
|
| -a string (instead of a list), it will fall back to splitting on spaces.
|
| -Shell commands should work on win32 now (using COMSPEC instead of /bin/sh).
|
| -
|
| -Buildslaves under w32 should theoretically work now, and one was running for
|
| -the Twisted buildbot for a while until the machine had to be returned.
|
| -
|
| -The "header" lines in ShellCommand logs (which include the first line, that
|
| -displays the command being run, and the last, which shows its exit status)
|
| -are now generated by the buildslave side instead of the local (buildmaster)
|
| -side. This can provide better error handling and is generally cleaner.
|
| -However, if you have an old buildslave (running 0.4.2 or earlier) and a new
|
| -buildmaster, then neither end will generate these header lines.
|
| -
|
| -CVSCommand was improved, in certain situations 0.4.2 would perform
|
| -unnecessary checkouts (when an update would have sufficed). Thanks to Johan
|
| -Dahlin for the patches. The status output was fixed as well, so that
|
| -failures in CVS and SVN commands (such as not being able to find the 'svn'
|
| -executable) make the step status box red.
|
| -
|
| -Subversion support was refactored to make it behave more like CVS. This is a
|
| -work in progress and will be improved in the next release.
|
| -
|
| -
|
| -* Release 0.4.2 (08 Jan 2004)
|
| -
|
| -** test suite updated
|
| -
|
| -The test suite has been completely moved over to Twisted's "Trial"
|
| -framework, and all tests now pass. To run the test suite (consisting of 64
|
| -tests, probably covering about 30% of BuildBot's logic), do this:
|
| -
|
| - PYTHONPATH=. trial -v buildbot.test
|
| -
|
| -** Mail parsers updated
|
| -
|
| -Several bugs in the mail-parsing code were fixed, allowing a buildmaster to
|
| -be triggered by mail sent out by a CVS repository. (The Twisted Buildbot is
|
| -now using this to trigger builds, as their CVS server machine is having some
|
| -difficulties with FreshCVS). The FreshCVS mail format for directory
|
| -additions appears to have changed recently: the new parser should handle
|
| -both old and new-style messages.
|
| -
|
| -A parser for Bonsai commit messages (buildbot.changes.mail.parseBonsaiMail)
|
| -was contributed by Stephen Davis. Thanks Stephen!
|
| -
|
| -** CVS "global options" now available
|
| -
|
| -The CVS build step can now accept a list of "global options" to give to the
|
| -cvs command. These go before the "update"/"checkout" word, and are described
|
| -fully by "cvs --help-options". Two useful ones might be "-r", which causes
|
| -checked-out files to be read-only, and "-R", which assumes the repository is
|
| -read-only (perhaps by not attempting to write to lock files).
|
| -
|
| -
|
| -* Release 0.4.1 (09 Dec 2003)
|
| -
|
| -** MaildirSources fixed
|
| -
|
| -Several bugs in MaildirSource made them unusable. These have been fixed (for
|
| -real this time). The Twisted buildbot is using an FCMaildirSource while they
|
| -fix some FreshCVS daemon problems, which provided the encouragement for
|
| -getting these bugs fixed.
|
| -
|
| -In addition, the use of DNotify (only available under linux) was somehow
|
| -broken, possibly by changes in some recent version of Python. It appears to
|
| -be working again now (against both python-2.3.3c1 and python-2.2.1).
|
| -
|
| -** master.cfg can use 'basedir' variable
|
| -
|
| -As documented in the sample configuration file (but not actually implemented
|
| -until now), a variable named 'basedir' is inserted into the namespace used
|
| -by master.cfg . This can be used with something like:
|
| -
|
| - os.path.join(basedir, "maildir")
|
| -
|
| -to obtain a master-basedir-relative location.
|
| -
|
| -
|
| -* Release 0.4.0 (05 Dec 2003)
|
| -
|
| -** newapp
|
| -
|
| -I've moved the codebase to Twisted's new 'application' framework, which
|
| -drastically cleans up service startup/shutdown just like newcred did for
|
| -authorization. This is mostly an internal change, but the interface to
|
| -IChangeSources was modified, so in the off chance that someone has written a
|
| -custom change source, it may have to be updated to the new scheme.
|
| -
|
| -The most user-visible consequence of this change is that now both
|
| -buildmasters and buildslaves are generated with the standard Twisted 'mktap'
|
| -utility. Basic documentation is in the README file.
|
| -
|
| -Both buildmaster and buildslave .tap files need to be re-generated to run
|
| -under the new code. I have not figured out the styles.Versioned upgrade path
|
| -well enough to avoid this yet. Sorry.
|
| -
|
| -This also means that both buildslaves and the buildmaster require
|
| -Twisted-1.1.0 or later.
|
| -
|
| -** reloadable master.cfg
|
| -
|
| -Most aspects of a buildmaster is now controlled by a configuration file
|
| -which can be re-read at runtime without losing build history. This feature
|
| -makes the buildmaster *much* easier to maintain.
|
| -
|
| -In the previous release, you would create the buildmaster by writing a
|
| -program to define the Builders and ChangeSources and such, then run it to
|
| -create the .tap file. In the new release, you use 'mktap' to create the .tap
|
| -file, and the only parameter you give it is the base directory to use. Each
|
| -time the buildmaster starts, it will look for a file named 'master.cfg' in
|
| -that directory and parse it as a python script. That script must define a
|
| -dictionary named 'BuildmasterConfig' with various keys to define the
|
| -builders, the known slaves, what port to use for the web server, what IRC
|
| -channels to connect to, etc.
|
| -
|
| -This config file can be re-read at runtime, and the buildmaster will compute
|
| -the differences and add/remove services as necessary. The re-reading is
|
| -currently triggered through the debug port (contrib/debugclient.py is the
|
| -debug port client), but future releases will add the ability to trigger the
|
| -reconfiguration by IRC command, web page button, and probably a local UNIX
|
| -socket (with a helper script to trigger a rebuild locally).
|
| -
|
| -docs/examples/twisted_master.cfg contains a sample configuration file, which
|
| -also lists all the keys that can be set.
|
| -
|
| -There may be some bugs lurking, such as re-configuring the buildmaster while
|
| -a build is running. It needs more testing.
|
| -
|
| -** MaxQ support
|
| -
|
| -Radix contributed some support scripts to run MaxQ test scripts. MaxQ
|
| -(http://maxq.tigris.org/) is a web testing tool that allows you to record
|
| -HTTP sessions and play them back.
|
| -
|
| -** Builders can now wait on multiple Interlocks
|
| -
|
| -The "Interlock" code has been enhanced to allow multiple builders to wait on
|
| -each one. This was done to support the new config-file syntax for specifying
|
| -Interlocks (in which each interlock is a tuple of A and [B], where A is the
|
| -builder the Interlock depends upon, and [B] is a list of builders that
|
| -depend upon the Interlock).
|
| -
|
| -"Interlock" is misnamed. In the next release it will be changed to
|
| -"Dependency", because that's what it really expresses. A new class (probably
|
| -called Interlock) will be created to express the notion that two builders
|
| -should not run at the same time, useful when multiple builders are run on
|
| -the same machine and thrashing results when several CPU- or disk- intensive
|
| -compiles are done simultaneously.
|
| -
|
| -** FreshCVSSource can now handle newcred-enabled FreshCVS daemons
|
| -
|
| -There are now two FreshCVSSource classes: FreshCVSSourceNewcred talks to
|
| -newcred daemons, and FreshCVSSourceOldcred talks to oldcred ones. Mind you,
|
| -FreshCVS doesn't yet do newcred, but when it does, we'll be ready.
|
| -
|
| -'FreshCVSSource' maps to the oldcred form for now. That will probably change
|
| -when the current release of CVSToys supports newcred by default.
|
| -
|
| -** usePTY=1 on posix buildslaves
|
| -
|
| -When a buildslave is running under POSIX (i.e. pretty much everything except
|
| -windows), child processes are created with a pty instead of separate
|
| -stdin/stdout/stderr pipes. This makes it more likely that a hanging build
|
| -(when killed off by the timeout code) will have all its sub-childred cleaned
|
| -up. Non-pty children would tend to leave subprocesses running because the
|
| -buildslave was only able to kill off the top-level process (typically
|
| -'make').
|
| -
|
| -Windows doesn't have any concept of ptys, so non-posix systems do not try to
|
| -enable them.
|
| -
|
| -** mail parsers should actually work now
|
| -
|
| -The email parsing functions (FCMaildirSource and SyncmailMaildirSource) were
|
| -broken because of my confused understanding of how python class methods
|
| -work. These sources should be functional now.
|
| -
|
| -** more irc bot sillyness
|
| -
|
| -The IRC bot can now perform half of the famous AYBABTO scene.
|
| -
|
| -
|
| -* Release 0.3.5 (19 Sep 2003)
|
| -
|
| -** newcred
|
| -
|
| -Buildbot has moved to "newcred", a new authorization framework provided by
|
| -Twisted, which is a good bit cleaner and easier to work with than the
|
| -"oldcred" scheme in older versions. This causes both buildmaster and
|
| -buildslaves to depend upon Twisted 1.0.7 or later. The interface to
|
| -'makeApp' has changed somewhat (the multiple kinds of remote connections all
|
| -use the same TCP port now).
|
| -
|
| -Old buildslaves will get "_PortalWrapper instance has no attribute
|
| -'remote_username'" errors when they try to connect. They must be upgraded.
|
| -
|
| -The FreshCVSSource uses PB to connect to the CVSToys server. This has been
|
| -upgraded to use newcred too. If you get errors (TODO: what do they look
|
| -like?) in the log when the buildmaster tries to connect, you need to upgrade
|
| -your FreshCVS service or use the 'useOldcred' argument when creating your
|
| -FreshCVSSource. This is a temporary hack to allow the buildmaster to talk to
|
| -oldcred CVSToys servers. Using it will trigger deprecation warnings. It will
|
| -go away eventually.
|
| -
|
| -In conjunction with this change, makeApp() now accepts a password which can
|
| -be applied to the debug service.
|
| -
|
| -** new features
|
| -
|
| -*** "copydir" for CVS checkouts
|
| -
|
| -The CVS build step can now accept a "copydir" parameter, which should be a
|
| -directory name like "source" or "orig". If provided, the CVS checkout is
|
| -done once into this directory, then copied into the actual working directory
|
| -for compilation etc. Later updates are done in place in the copydir, then
|
| -the workdir is replaced with a copy.
|
| -
|
| -This reduces CVS bandwidth (update instead of full checkout) at the expense
|
| -of twice the disk space (two copies of the tree).
|
| -
|
| -*** Subversion (SVN) support
|
| -
|
| -Radix (Christopher Armstrong) contributed early support for building
|
| -Subversion-based trees. The new 'SVN' buildstep behaves roughly like the
|
| -'CVS' buildstep, and the contrib/svn_buildbot.py script can be used as a
|
| -checkin trigger to feed changes to a running buildmaster.
|
| -
|
| -** notable bugfixes
|
| -
|
| -*** .tap file generation
|
| -
|
| -We no longer set the .tap filename, because the buildmaster/buildslave
|
| -service might be added to an existing .tap file and we shouldn't presume to
|
| -own the whole thing. You may want to manually rename the "buildbot.tap" file
|
| -to something more meaningful (like "buildslave-bot1.tap").
|
| -
|
| -*** IRC reconnect
|
| -
|
| -If the IRC server goes away (it was restarted, or the network connection was
|
| -lost), the buildmaster will now schedule a reconnect attempt.
|
| -
|
| -*** w32 buildslave fixes
|
| -
|
| -An "rm -rf" was turned into shutil.rmtree on non-posix systems.
|
| -
|
| -
|
| -* Release 0.3.4 (28 Jul 2003)
|
| -
|
| -** IRC client
|
| -
|
| -The buildmaster can now join a set of IRC channels and respond to simple
|
| -queries about builder status.
|
| -
|
| -** slave information
|
| -
|
| -The build slaves can now report information from a set of info/* files in
|
| -the slave base directory to the buildmaster. This will be used by the slave
|
| -administrator to announce details about the system hosting the slave,
|
| -contact information, etc. For now, info/admin should contain the name/email
|
| -of the person who is responsible for the buildslave, and info/host should
|
| -describe the system hosting the build slave (OS version, CPU speed, memory,
|
| -etc). The contents of these files are made available through the waterfall
|
| -display.
|
| -
|
| -** change notification email parsers
|
| -
|
| -A parser for Syncmail (syncmail.sourceforge.net) was added. SourceForge
|
| -provides examples of setting up syncmail to deliver CVS commit messages to
|
| -mailing lists, so hopefully this will make it easier for sourceforge-hosted
|
| -projects to set up a buildbot.
|
| -
|
| -email processors were moved into buildbot.changes.mail . FCMaildirSource was
|
| -moved, and the compatibility location (buildbot.changes.freshcvsmail) will
|
| -go away in the next release.
|
| -
|
| -** w32 buildslave ought to work
|
| -
|
| -Some non-portable code was changed to make it more likely that the
|
| -buildslave will run under windows. The Twisted buildbot now has a
|
| -(more-or-less) working w32 buildslave.
|
| -
|
| -
|
| -* Release 0.3.3 (21 May 2003):
|
| -
|
| -** packaging changes
|
| -
|
| -*** include doc/examples in the release. Oops again.
|
| -
|
| -** network changes
|
| -
|
| -*** add keepalives to deal with NAT boxes
|
| -
|
| -Some NAT boxes drop port mappings if the TCP connection looks idle for too
|
| -long (maybe 30 minutes?). Add application-level keepalives (dummy commands
|
| -sent from slave to master every 10 minutes) to appease the NAT box and keep
|
| -our connection alive. Enable this with --keepalive in the slave mktap
|
| -command line. Check the README for more details.
|
| -
|
| -** UI changes
|
| -
|
| -*** allow slaves to trigger any build that they host
|
| -
|
| -Added an internal function to ask the buildmaster to start one of their
|
| -builds. Must be triggered with a debugger or manhole on the slave side for
|
| -now, will add a better UI later.
|
| -
|
| -*** allow web page viewers to trigger any build
|
| -
|
| -Added a button to the per-build page (linked by the build names on the third
|
| -row of the waterfall page) to allow viewers to manually trigger builds.
|
| -There is a field for them to indicate who they are and why they are
|
| -triggering the build. It is possible to abuse this, but for now the benefits
|
| -outweigh the damage that could be done (worst case, someone can make your
|
| -machine run builds continuously).
|
| -
|
| -** generic buildprocess changes
|
| -
|
| -*** don't queue multiple builds for offline slaves
|
| -
|
| -If a slave is not online when a build is ready to run, that build is queued
|
| -so the slave will run it when it next connects. However, the buildmaster
|
| -used to queue every such build, so the poor slave machine would be subject
|
| -to tens or hundreds of builds in a row when they finally did come online.
|
| -The buildmaster has been changed to merge these multiple builds into a
|
| -single one.
|
| -
|
| -*** bump ShellCommand default timeout to 20 minutes
|
| -
|
| -Used for testing out the win32 twisted builder. I will probably revert this
|
| -in the next relese.
|
| -
|
| -*** split args in ShellCommand ourselves instead of using /bin/sh
|
| -
|
| -This should remove the need for /bin/sh on the slave side, improving the
|
| -chances that the buildslave can run on win32.
|
| -
|
| -*** add configureEnv argument to Configure step, pass env dict to slave
|
| -
|
| -Allows build processes to do things like 'CFLAGS=-O0 ./configure' without
|
| -using /bin/sh to set the environment variable
|
| -
|
| -** Twisted buildprocess changes
|
| -
|
| -*** warn instead of flunk the build when cReactor or qtreactor tests fail
|
| -
|
| -These two always fail. For now, downgrade those failures to a warning
|
| -(orange box instead of red).
|
| -
|
| -*** don't use 'clobber' on remote builds
|
| -
|
| -Builds that run on remote machines (freebsd, OS-X) now use 'cvs update'
|
| -instead of clobbering their trees and doing a fresh checkout. The multiple
|
| -simultaneous CVS checkouts were causing a strain on Glyph's upstream
|
| -bandwidth.
|
| -
|
| -*** use trial --testmodule instead of our own test-case-name grepper
|
| -
|
| -The Twisted coding/testing convention has developers put 'test-case-name'
|
| -tags (emacs local variables, actually) in source files to indicate which
|
| -test cases should be run to exercise that code. Twisted's unit-test
|
| -framework just acquired an argument to look for these tags itself. Use that
|
| -instead of the extra FindUnitTestsForFiles build step we were doing before.
|
| -Removes a good bit of code from buildbot and into Twisted where it really
|
| -belongs.
|
| -
|
| -
|
| -* Release 0.3.2 (07 May 2003):
|
| -
|
| -** packaging changes
|
| -
|
| -*** fix major packaging bug: none of the buildbot/* subdirectories were
|
| -included in the 0.3.1 release. Sorry, I'm still figuring out distutils
|
| -here..
|
| -
|
| -** internal changes
|
| -
|
| -*** use pb.Cacheable to update Events in remote status client. much cleaner.
|
| -
|
| -*** start to clean up BuildProcess->status.builder interface
|
| -
|
| -** bug fixes
|
| -
|
| -*** waterfall display was missing a <tr>, causing it to be misrendered in most
|
| -browsers (except the one I was testing it with, of course)
|
| -
|
| -*** URL without trailing slash (when served in a twisted-web distributed
|
| -server, with a url like "http://twistedmatrix.com/~warner.twistd") should do
|
| -redirect to URL-with-trailing-slash, otherwise internal hrefs are broken.
|
| -
|
| -*** remote status clients: forget RemoteReferences at shutdown, removes
|
| -warnings about "persisting Ephemerals"
|
| -
|
| -** Twisted buildprocess updates:
|
| -
|
| -*** match build process as of twisted-1.0.5
|
| -**** use python2.2 everywhere now that twisted rejects python2.1
|
| -**** look for test-result constants in multiple places
|
| -*** move experimental 'trial --jelly' code to separate module
|
| -*** add FreeBSD builder
|
| -*** catch rc!=0 in HLint step
|
| -*** remove RunUnitTestsRandomly, use randomly=1 parameter instead
|
| -*** parameterize ['twisted.test'] default test case to make subclassing easier
|
| -*** ignore internal distutils warnings in python2.3 builder
|
| -
|
| -
|
| -* Release 0.3.1 (29 Apr 2003):
|
| -
|
| -** First release.
|
| -
|
| -** Features implemented:
|
| -
|
| - change notification from FreshCVS server or parsed maildir contents
|
| -
|
| - timed builds
|
| -
|
| - basic builds, configure/compile/test
|
| -
|
| - some Twisted-specific build steps: docs, unit tests, debuild
|
| -
|
| - status reporting via web page
|
| -
|
| -** Features still experimental/unpolished
|
| -
|
| - status reporting via PB client
|
|
|