Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/buildbot/docs/buildbot.info-2
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/docs/buildbot.info-2')
-rw-r--r--buildbot/docs/buildbot.info-21654
1 files changed, 0 insertions, 1654 deletions
diff --git a/buildbot/docs/buildbot.info-2 b/buildbot/docs/buildbot.info-2
deleted file mode 100644
index bb7089a..0000000
--- a/buildbot/docs/buildbot.info-2
+++ /dev/null
@@ -1,1654 +0,0 @@
-This is buildbot.info, produced by makeinfo version 4.11 from
-buildbot.texinfo.
-
-This is the BuildBot manual.
-
- Copyright (C) 2005,2006 Brian Warner
-
- Copying and distribution of this file, with or without
-modification, are permitted in any medium without royalty provided
-the copyright notice and this notice are preserved.
-
-
-File: buildbot.info, Node: Buildbot Web Resources, Next: XMLRPC server, Prev: WebStatus Configuration Parameters, Up: WebStatus
-
-7.1.2 Buildbot Web Resources
-----------------------------
-
-Certain URLs are "magic", and the pages they serve are created by
-code in various classes in the `buildbot.status.web' package instead
-of being read from disk. The most common way to access these pages is
-for the buildmaster admin to write or modify the `index.html' page to
-contain links to them. Of course other project web pages can contain
-links to these buildbot pages as well.
-
- Many pages can be modified by adding query arguments to the URL.
-For example, a page which shows the results of the most recent build
-normally does this for all builders at once. But by appending
-"?builder=i386" to the end of the URL, the page will show only the
-results for the "i386" builder. When used in this way, you can add
-multiple "builder=" arguments to see multiple builders. Remembering
-that URL query arguments are separated _from each other_ with
-ampersands, a URL that ends in "?builder=i386&builder=ppc" would show
-builds for just those two Builders.
-
- The `branch=' query argument can be used on some pages. This
-filters the information displayed by that page down to only the builds
-or changes which involved the given branch. Use `branch=trunk' to
-reference the trunk: if you aren't intentionally using branches,
-you're probably using trunk. Multiple `branch=' arguments can be used
-to examine multiple branches at once (so appending
-`?branch=foo&branch=bar' to the URL will show builds involving either
-branch). No `branch=' arguments means to show builds and changes for
-all branches.
-
- Some pages may include the Builder name or the build number in the
-main part of the URL itself. For example, a page that describes Build
-#7 of the "i386" builder would live at `/builders/i386/builds/7'.
-
- The table below lists all of the internal pages and the URLs that
-can be used to access them.
-
- NOTE: of the pages described here, `/slave_status_timeline' and
-`/last_build' have not yet been implemented, and `/xmlrpc' has only a
-few methods so far. Future releases will improve this.
-
-`/waterfall'
- This provides a chronologically-oriented display of the activity
- of all builders. It is the same display used by the Waterfall
- display.
-
- By adding one or more "builder=" query arguments, the Waterfall
- is restricted to only showing information about the given
- Builders. By adding one or more "branch=" query arguments, the
- display is restricted to showing information about the given
- branches. In addition, adding one or more "category=" query
- arguments to the URL will limit the display to Builders that
- were defined with one of the given categories.
-
- A 'show_events=true' query argument causes the display to include
- non-Build events, like slaves attaching and detaching, as well as
- reconfiguration events. 'show_events=false' hides these events.
- The default is to show them.
-
- The `last_time=', `first_time=', and `show_time=' arguments will
- control what interval of time is displayed. The default is to
- show the latest events, but these can be used to look at earlier
- periods in history. The `num_events=' argument also provides a
- limit on the size of the displayed page.
-
- The Waterfall has references to resources many of the other
- portions of the URL space: `/builders' for access to individual
- builds, `/changes' for access to information about source code
- changes, etc.
-
-`/rss'
- This provides a rss feed summarizing all failed builds. The same
- query-arguments used by 'waterfall' can be added to filter the
- feed output.
-
-`/atom'
- This provides an atom feed summarizing all failed builds. The
- same query-arguments used by 'waterfall' can be added to filter
- the feed output.
-
-`/builders/$BUILDERNAME'
- This describes the given Builder, and provides buttons to force
- a build.
-
-`/builders/$BUILDERNAME/builds/$BUILDNUM'
- This describes a specific Build.
-
-`/builders/$BUILDERNAME/builds/$BUILDNUM/steps/$STEPNAME'
- This describes a specific BuildStep.
-
-`/builders/$BUILDERNAME/builds/$BUILDNUM/steps/$STEPNAME/logs/$LOGNAME'
- This provides an HTML representation of a specific logfile.
-
-`/builders/$BUILDERNAME/builds/$BUILDNUM/steps/$STEPNAME/logs/$LOGNAME/text'
- This returns the logfile as plain text, without any HTML coloring
- markup. It also removes the "headers", which are the lines that
- describe what command was run and what the environment variable
- settings were like. This maybe be useful for saving to disk and
- feeding to tools like 'grep'.
-
-`/changes'
- This provides a brief description of the ChangeSource in use
- (*note Change Sources::).
-
-`/changes/NN'
- This shows detailed information about the numbered Change: who
- was the author, what files were changed, what revision number
- was represented, etc.
-
-`/buildslaves'
- This summarizes each BuildSlave, including which Builders are
- configured to use it, whether the buildslave is currently
- connected or not, and host information retrieved from the
- buildslave itself.
-
-`/one_line_per_build'
- This page shows one line of text for each build, merging
- information from all Builders(1). Each line specifies the name
- of the Builder, the number of the Build, what revision it used,
- and a summary of the results. Successful builds are in green,
- while failing builds are in red. The date and time of the build
- are added to the right-hand edge of the line. The lines are
- ordered by build finish timestamp.
-
- One or more `builder=' or `branch=' arguments can be used to
- restrict the list. In addition, a `numbuilds=' argument will
- control how many lines are displayed (20 by default).
-
-`/one_box_per_builder'
- This page shows a small table, with one box for each Builder,
- containing the results of the most recent Build. It does not
- show the individual steps, or the current status. This is a
- simple summary of buildbot status: if this page is green, then
- all tests are passing.
-
- As with `/one_line_per_build', this page will also honor
- `builder=' and `branch=' arguments.
-
-`/about'
- This page gives a brief summary of the Buildbot itself: software
- version, versions of some libraries that the Buildbot depends
- upon, etc. It also contains a link to the buildbot.net home page.
-
-`/slave_status_timeline'
- (note: this page has not yet been implemented)
-
- This provides a chronological display of configuration and
- operational events: master startup/shutdown, slave
- connect/disconnect, and config-file changes. When a config-file
- reload is abandoned because of an error in the config file, the
- error is displayed on this page.
-
- This page does not show any builds.
-
-`/last_build/$BUILDERNAME/status.png'
- This returns a PNG image that describes the results of the most
- recent build, which can be referenced in an IMG tag by other
- pages, perhaps from a completely different site. Use it as you
- would a webcounter.
-
-
- There are also a set of web-status resources that are intended for
-use by other programs, rather than humans.
-
-`/xmlrpc'
- This runs an XML-RPC server which can be used to query status
- information about various builds. See *note XMLRPC server:: for
- more details.
-
-
- ---------- Footnotes ----------
-
- (1) Apparently this is the same way http://buildd.debian.org
-displays build status
-
-
-File: buildbot.info, Node: XMLRPC server, Next: HTML Waterfall, Prev: Buildbot Web Resources, Up: WebStatus
-
-7.1.3 XMLRPC server
--------------------
-
-When using WebStatus, the buildbot runs an XML-RPC server at
-`/xmlrpc' that can be used by other programs to query build status.
-The following table lists the methods that can be invoked using this
-interface.
-
-`getAllBuildsInInterval(start, stop)'
- Return a list of builds that have completed after the 'start'
- timestamp and before the 'stop' timestamp. This looks at all
- Builders.
-
- The timestamps are integers, interpreted as standard unix
- timestamps (seconds since epoch).
-
- Each Build is returned as a tuple in the form: `(buildername,
- buildnumber, build_end, branchname, revision, results, text)'
-
- The buildnumber is an integer. 'build_end' is an integer (seconds
- since epoch) specifying when the build finished.
-
- The branchname is a string, which may be an empty string to
- indicate None (i.e. the default branch). The revision is a
- string whose meaning is specific to the VC system in use, and
- comes from the 'got_revision' build property. The results are
- expressed as a string, one of ('success', 'warnings', 'failure',
- 'exception'). The text is a list of short strings that ought to
- be joined by spaces and include slightly more data about the
- results of the build.
-
-`getBuild(builder_name, build_number)'
- Return information about a specific build.
-
- This returns a dictionary (aka "struct" in XMLRPC terms) with
- complete information about the build. It does not include the
- contents of the log files, but it has just about everything else.
-
-
-
-File: buildbot.info, Node: HTML Waterfall, Prev: XMLRPC server, Up: WebStatus
-
-7.1.4 HTML Waterfall
---------------------
-
-The `Waterfall' status target, deprecated as of 0.7.6, is a subset of
-the regular `WebStatus' resource (*note WebStatus::). This section
-(and the `Waterfall' class itself) will be removed from a future
-release.
-
- from buildbot.status import html
- w = html.WebStatus(http_port=8080)
- c['status'].append(w)
-
-
-File: buildbot.info, Node: MailNotifier, Next: IRC Bot, Prev: WebStatus, Up: Status Delivery
-
-7.2 MailNotifier
-================
-
-The buildbot can also send email when builds finish. The most common
-use of this is to tell developers when their change has caused the
-build to fail. It is also quite common to send a message to a mailing
-list (usually named "builds" or similar) about every build.
-
- The `MailNotifier' status target is used to accomplish this. You
-configure it by specifying who mail should be sent to, under what
-circumstances mail should be sent, and how to deliver the mail. It can
-be configured to only send out mail for certain builders, and only
-send messages when the build fails, or when the builder transitions
-from success to failure. It can also be configured to include various
-build logs in each message.
-
- By default, the message will be sent to the Interested Users list
-(*note Doing Things With Users::), which includes all developers who
-made changes in the build. You can add additional recipients with the
-extraRecipients argument.
-
- Each MailNotifier sends mail to a single set of recipients. To send
-different kinds of mail to different recipients, use multiple
-MailNotifiers.
-
- The following simple example will send an email upon the
-completion of each build, to just those developers whose Changes were
-included in the build. The email contains a description of the Build,
-its results, and URLs where more information can be obtained.
-
- from buildbot.status.mail import MailNotifier
- mn = MailNotifier(fromaddr="buildbot@example.org", lookup="example.org")
- c['status'].append(mn)
-
- To get a simple one-message-per-build (say, for a mailing list),
-use the following form instead. This form does not send mail to
-individual developers (and thus does not need the `lookup=' argument,
-explained below), instead it only ever sends mail to the "extra
-recipients" named in the arguments:
-
- mn = MailNotifier(fromaddr="buildbot@example.org",
- sendToInterestedUsers=False,
- extraRecipients=['listaddr@example.org'])
-
- In some cases it is desirable to have different information then
-what is provided in a standard MailNotifier message. For this purpose
-MailNotifier provides the argument customMesg (a function) which
-allows for the creation of messages with unique content.
-
- For example it can be useful to display the last few lines of a
-log file and recent changes when a builder fails:
-
- def message(attrs):
- logLines = 10
- text = list()
- text.append("STATUS: %s" % attrs['result'].title())
- text.append("")
- text.extend([c.asText() for c in attrs['changes']])
- text.append("")
- name, url, lines = attrs['logs'][-1]
- text.append("Last %d lines of '%s':" % (logLines, name))
- text.extend(["\t%s\n" % line for line in lines[len(lines)-logLines:]])
- text.append("")
- text.append("-buildbot")
- return ("\n".join(text), 'plain')
-
- mn = MailNotifier(fromaddr="buildbot@example.org",
- sendToInterestedUsers=False,
- mode='problem',
- extraRecipients=['listaddr@example.org'],
- customMesg=message)
-
- A customMesg function takes a single dict argument (see below) and
-returns a tuple of strings. The first string is the complete text of
-the message and the second is the message type ('plain' or 'html').
-The 'html' type should be used when generating an HTML message:
-
- def message(attrs):
- logLines = 10
- text = list()
- text.append('<h4>Build status %s.</h4>' % (attrs['result'].title()))
- if attrs['changes']:
- text.append('<h4>Recent Changes:</h4>')
- text.extend([c.asHTML() for c in attrs['changes']])
- name, url, lines = attrs['logs'][-1]
- text.append('<h4>Last %d lines of "%s":</h4>' % (logLines, name))
- text.append('<p>')
- text.append('<br>'.join([line for line in lines[len(lines)-logLines:]]))
- text.append('</p>')
- text.append('<br><br>')
- text.append('Full log at: %s' % url)
- text.append('<br><br>')
- text.append('<b>-buildbot</b>')
- return ('\n'.join(text), 'html')
-
-MailNotifier arguments
-======================
-
-`fromaddr'
- The email address to be used in the 'From' header.
-
-`sendToInterestedUsers'
- (boolean). If True (the default), send mail to all of the
- Interested Users. If False, only send mail to the
- extraRecipients list.
-
-`extraRecipients'
- (tuple of strings). A list of email addresses to which messages
- should be sent (in addition to the InterestedUsers list, which
- includes any developers who made Changes that went into this
- build). It is a good idea to create a small mailing list and
- deliver to that, then let subscribers come and go as they please.
-
-`subject'
- (string). A string to be used as the subject line of the message.
- `%(builder)s' will be replaced with the name of the builder which
- provoked the message.
-
-`mode'
- (string). Default to 'all'. One of:
- `all'
- Send mail about all builds, bothpassing and failing
-
- `failing'
- Only send mail about builds which fail
-
- `problem'
- Only send mail about a build which failed when the previous
- build has passed. If your builds usually pass, then this
- will only send mail when a problem occurs.
-
-`builders'
- (list of strings). A list of builder names for which mail should
- be sent. Defaults to None (send mail for all builds). Use either
- builders or categories, but not both.
-
-`categories'
- (list of strings). A list of category names to serve status
- information for. Defaults to None (all categories). Use either
- builders or categories, but not both.
-
-`addLogs'
- (boolean). If True, include all build logs as attachments to the
- messages. These can be quite large. This can also be set to a
- list of log names, to send a subset of the logs. Defaults to
- False.
-
-`relayhost'
- (string). The host to which the outbound SMTP connection should
- be made. Defaults to 'localhost'
-
-`lookup'
- (implementor of `IEmailLookup'). Object which provides
- IEmailLookup, which is responsible for mapping User names (which
- come from the VC system) into valid email addresses. If not
- provided, the notifier will only be able to send mail to the
- addresses in the extraRecipients list. Most of the time you can
- use a simple Domain instance. As a shortcut, you can pass as
- string: this will be treated as if you had provided Domain(str).
- For example, lookup='twistedmatrix.com' will allow mail to be
- sent to all developers whose SVN usernames match their
- twistedmatrix.com account names. See buildbot/status/mail.py for
- more details.
-
-`customMesg'
- This is a optional function that can be used to generate a
- custom mail message. The customMesg function takes a single dict
- and must return a tuple containing the message text and type
- ('html' or 'plain'). Below is a list of availale keys in the
- dict passed to customMesg:
-
- `builderName'
- (str) Name of the builder that generated this event.
-
- `projectName'
- (str) Name of the project.
-
- `mode'
- (str) Mode set in MailNotifier. (failing, passing, problem).
-
- `result'
- (str) Builder result as a string. 'success', 'warnings',
- 'failure', 'skipped', or 'exception'
-
- `buildURL'
- (str) URL to build page.
-
- `buildbotURL'
- (str) URL to buildbot main page.
-
- `buildText'
- (str) Build text from build.getText().
-
- `slavename'
- (str) Slavename.
-
- `reason'
- (str) Build reason from build.getReason().
-
- `responsibleUsers'
- (List of str) List of responsible users.
-
- `branch'
- (str) Name of branch used. If no SourceStamp exists branch
- is an empty string.
-
- `revision'
- (str) Name of revision used. If no SourceStamp exists
- revision is an empty string.
-
- `patch'
- (str) Name of patch used. If no SourceStamp exists patch is
- an empty string.
-
- `changes'
- (list of objs) List of change objects from SourceStamp. A
- change object has the following useful information:
- `who'
- (str) who made this change
-
- `revision'
- (str) what VC revision is this change
-
- `branch'
- (str) on what branch did this change occur
-
- `when'
- (str) when did this change occur
-
- `files'
- (list of str) what files were affected in this change
-
- `comments'
- (str) comments reguarding the change.
- The functions asText and asHTML return a list of strings
- with the above information formatted.
-
- `logs'
- (List of Tuples) List of tuples where each tuple contains
- the log name, log url, and log contents as a list of
- strings.
-
-
-File: buildbot.info, Node: IRC Bot, Next: PBListener, Prev: MailNotifier, Up: Status Delivery
-
-7.3 IRC Bot
-===========
-
-The `buildbot.status.words.IRC' status target creates an IRC bot
-which will attach to certain channels and be available for status
-queries. It can also be asked to announce builds as they occur, or be
-told to shut up.
-
- from buildbot.status import words
- irc = words.IRC("irc.example.org", "botnickname",
- channels=["channel1", "channel2"],
- password="mysecretpassword",
- notify_events={
- 'exception': 1,
- 'successToFailure': 1,
- 'failureToSuccess': 1,
- })
- c['status'].append(irc)
-
- Take a look at the docstring for `words.IRC' for more details on
-configuring this service. The `password' argument, if provided, will
-be sent to Nickserv to claim the nickname: some IRC servers will not
-allow clients to send private messages until they have logged in with
-a password.
-
- To use the service, you address messages at the buildbot, either
-normally (`botnickname: status') or with private messages (`/msg
-botnickname status'). The buildbot will respond in kind.
-
- Some of the commands currently available:
-
-`list builders'
- Emit a list of all configured builders
-
-`status BUILDER'
- Announce the status of a specific Builder: what it is doing
- right now.
-
-`status all'
- Announce the status of all Builders
-
-`watch BUILDER'
- If the given Builder is currently running, wait until the Build
- is finished and then announce the results.
-
-`last BUILDER'
- Return the results of the last build to run on the given Builder.
-
-`join CHANNEL'
- Join the given IRC channel
-
-`leave CHANNEL'
- Leave the given IRC channel
-
-`notify on|off|list EVENT'
- Report events relating to builds. If the command is issued as a
- private message, then the report will be sent back as a private
- message to the user who issued the command. Otherwise, the
- report will be sent to the channel. Available events to be
- notified are:
-
- `started'
- A build has started
-
- `finished'
- A build has finished
-
- `success'
- A build finished successfully
-
- `failed'
- A build failed
-
- `exception'
- A build generated and exception
-
- `xToY'
- The previous build was x, but this one is Y, where x and Y
- are each one of success, warnings, failure, exception
- (except Y is capitalized). For example: successToFailure
- will notify if the previous build was successful, but this
- one failed
-
-`help COMMAND'
- Describe a command. Use `help commands' to get a list of known
- commands.
-
-`source'
- Announce the URL of the Buildbot's home page.
-
-`version'
- Announce the version of this Buildbot.
-
- Additionally, the config file may specify default notification
-options as shown in the example earlier.
-
- If the `allowForce=True' option was used, some addtional commands
-will be available:
-
-`force build BUILDER REASON'
- Tell the given Builder to start a build of the latest code. The
- user requesting the build and REASON are recorded in the Build
- status. The buildbot will announce the build's status when it
- finishes.
-
-`stop build BUILDER REASON'
- Terminate any running build in the given Builder. REASON will be
- added to the build status to explain why it was stopped. You
- might use this if you committed a bug, corrected it right away,
- and don't want to wait for the first build (which is destined to
- fail) to complete before starting the second (hopefully fixed)
- build.
-
-
-File: buildbot.info, Node: PBListener, Next: Writing New Status Plugins, Prev: IRC Bot, Up: Status Delivery
-
-7.4 PBListener
-==============
-
- import buildbot.status.client
- pbl = buildbot.status.client.PBListener(port=int, user=str,
- passwd=str)
- c['status'].append(pbl)
-
- This sets up a PB listener on the given TCP port, to which a
-PB-based status client can connect and retrieve status information.
-`buildbot statusgui' (*note statusgui::) is an example of such a
-status client. The `port' argument can also be a strports
-specification string.
-
-
-File: buildbot.info, Node: Writing New Status Plugins, Prev: PBListener, Up: Status Delivery
-
-7.5 Writing New Status Plugins
-==============================
-
-TODO: this needs a lot more examples
-
- Each status plugin is an object which provides the
-`twisted.application.service.IService' interface, which creates a
-tree of Services with the buildmaster at the top [not strictly true].
-The status plugins are all children of an object which implements
-`buildbot.interfaces.IStatus', the main status object. From this
-object, the plugin can retrieve anything it wants about current and
-past builds. It can also subscribe to hear about new and upcoming
-builds.
-
- Status plugins which only react to human queries (like the
-Waterfall display) never need to subscribe to anything: they are idle
-until someone asks a question, then wake up and extract the
-information they need to answer it, then they go back to sleep.
-Plugins which need to act spontaneously when builds complete (like
-the MailNotifier plugin) need to subscribe to hear about new builds.
-
- If the status plugin needs to run network services (like the HTTP
-server used by the Waterfall plugin), they can be attached as Service
-children of the plugin itself, using the `IServiceCollection'
-interface.
-
-
-File: buildbot.info, Node: Command-line tool, Next: Resources, Prev: Status Delivery, Up: Top
-
-8 Command-line tool
-*******************
-
-The `buildbot' command-line tool can be used to start or stop a
-buildmaster or buildbot, and to interact with a running buildmaster.
-Some of its subcommands are intended for buildmaster admins, while
-some are for developers who are editing the code that the buildbot is
-monitoring.
-
-* Menu:
-
-* Administrator Tools::
-* Developer Tools::
-* Other Tools::
-* .buildbot config directory::
-
-
-File: buildbot.info, Node: Administrator Tools, Next: Developer Tools, Prev: Command-line tool, Up: Command-line tool
-
-8.1 Administrator Tools
-=======================
-
-The following `buildbot' sub-commands are intended for buildmaster
-administrators:
-
-create-master
-=============
-
-This creates a new directory and populates it with files that allow it
-to be used as a buildmaster's base directory.
-
- buildbot create-master BASEDIR
-
-create-slave
-============
-
-This creates a new directory and populates it with files that let it
-be used as a buildslave's base directory. You must provide several
-arguments, which are used to create the initial `buildbot.tac' file.
-
- buildbot create-slave BASEDIR MASTERHOST:PORT SLAVENAME PASSWORD
-
-start
-=====
-
-This starts a buildmaster or buildslave which was already created in
-the given base directory. The daemon is launched in the background,
-with events logged to a file named `twistd.log'.
-
- buildbot start BASEDIR
-
-stop
-====
-
-This terminates the daemon (either buildmaster or buildslave) running
-in the given directory.
-
- buildbot stop BASEDIR
-
-sighup
-======
-
-This sends a SIGHUP to the buildmaster running in the given directory,
-which causes it to re-read its `master.cfg' file.
-
- buildbot sighup BASEDIR
-
-
-File: buildbot.info, Node: Developer Tools, Next: Other Tools, Prev: Administrator Tools, Up: Command-line tool
-
-8.2 Developer Tools
-===================
-
-These tools are provided for use by the developers who are working on
-the code that the buildbot is monitoring.
-
-* Menu:
-
-* statuslog::
-* statusgui::
-* try::
-
-
-File: buildbot.info, Node: statuslog, Next: statusgui, Prev: Developer Tools, Up: Developer Tools
-
-8.2.1 statuslog
----------------
-
- buildbot statuslog --master MASTERHOST:PORT
-
- This command starts a simple text-based status client, one which
-just prints out a new line each time an event occurs on the
-buildmaster.
-
- The `--master' option provides the location of the
-`buildbot.status.client.PBListener' status port, used to deliver
-build information to realtime status clients. The option is always in
-the form of a string, with hostname and port number separated by a
-colon (`HOSTNAME:PORTNUM'). Note that this port is _not_ the same as
-the slaveport (although a future version may allow the same port
-number to be used for both purposes). If you get an error message to
-the effect of "Failure: twisted.cred.error.UnauthorizedLogin:", this
-may indicate that you are connecting to the slaveport rather than a
-`PBListener' port.
-
- The `--master' option can also be provided by the `masterstatus'
-name in `.buildbot/options' (*note .buildbot config directory::).
-
-
-File: buildbot.info, Node: statusgui, Next: try, Prev: statuslog, Up: Developer Tools
-
-8.2.2 statusgui
----------------
-
-If you have set up a PBListener (*note PBListener::), you will be able
-to monitor your Buildbot using a simple Gtk+ application invoked with
-the `buildbot statusgui' command:
-
- buildbot statusgui --master MASTERHOST:PORT
-
- This command starts a simple Gtk+-based status client, which
-contains a few boxes for each Builder that change color as events
-occur. It uses the same `--master' argument as the `buildbot
-statuslog' command (*note statuslog::).
-
-
-File: buildbot.info, Node: try, Prev: statusgui, Up: Developer Tools
-
-8.2.3 try
----------
-
-This lets a developer to ask the question "What would happen if I
-committed this patch right now?". It runs the unit test suite (across
-multiple build platforms) on the developer's current code, allowing
-them to make sure they will not break the tree when they finally
-commit their changes.
-
- The `buildbot try' command is meant to be run from within a
-developer's local tree, and starts by figuring out the base revision
-of that tree (what revision was current the last time the tree was
-updated), and a patch that can be applied to that revision of the tree
-to make it match the developer's copy. This (revision, patch) pair is
-then sent to the buildmaster, which runs a build with that
-SourceStamp. If you want, the tool will emit status messages as the
-builds run, and will not terminate until the first failure has been
-detected (or the last success).
-
- There is an alternate form which accepts a pre-made patch file
-(typically the output of a command like 'svn diff'). This "-diff"
-form does not require a local tree to run from. See *Note try
---diff::.
-
- For this command to work, several pieces must be in place:
-
-TryScheduler
-============
-
-The buildmaster must have a `scheduler.Try' instance in the config
-file's `c['schedulers']' list. This lets the administrator control
-who may initiate these "trial" builds, which branches are eligible
-for trial builds, and which Builders should be used for them.
-
- The `TryScheduler' has various means to accept build requests: all
-of them enforce more security than the usual buildmaster ports do.
-Any source code being built can be used to compromise the buildslave
-accounts, but in general that code must be checked out from the VC
-repository first, so only people with commit privileges can get
-control of the buildslaves. The usual force-build control channels can
-waste buildslave time but do not allow arbitrary commands to be
-executed by people who don't have those commit privileges. However,
-the source code patch that is provided with the trial build does not
-have to go through the VC system first, so it is important to make
-sure these builds cannot be abused by a non-committer to acquire as
-much control over the buildslaves as a committer has. Ideally, only
-developers who have commit access to the VC repository would be able
-to start trial builds, but unfortunately the buildmaster does not, in
-general, have access to VC system's user list.
-
- As a result, the `TryScheduler' requires a bit more configuration.
-There are currently two ways to set this up:
-
-*jobdir (ssh)*
- This approach creates a command queue directory, called the
- "jobdir", in the buildmaster's working directory. The buildmaster
- admin sets the ownership and permissions of this directory to
- only grant write access to the desired set of developers, all of
- whom must have accounts on the machine. The `buildbot try'
- command creates a special file containing the source stamp
- information and drops it in the jobdir, just like a standard
- maildir. When the buildmaster notices the new file, it unpacks
- the information inside and starts the builds.
-
- The config file entries used by 'buildbot try' either specify a
- local queuedir (for which write and mv are used) or a remote one
- (using scp and ssh).
-
- The advantage of this scheme is that it is quite secure, the
- disadvantage is that it requires fiddling outside the buildmaster
- config (to set the permissions on the jobdir correctly). If the
- buildmaster machine happens to also house the VC repository,
- then it can be fairly easy to keep the VC userlist in sync with
- the trial-build userlist. If they are on different machines,
- this will be much more of a hassle. It may also involve granting
- developer accounts on a machine that would not otherwise require
- them.
-
- To implement this, the buildslave invokes 'ssh -l username host
- buildbot tryserver ARGS', passing the patch contents over stdin.
- The arguments must include the inlet directory and the revision
- information.
-
-*user+password (PB)*
- In this approach, each developer gets a username/password pair,
- which are all listed in the buildmaster's configuration file.
- When the developer runs `buildbot try', their machine connects
- to the buildmaster via PB and authenticates themselves using
- that username and password, then sends a PB command to start the
- trial build.
-
- The advantage of this scheme is that the entire configuration is
- performed inside the buildmaster's config file. The
- disadvantages are that it is less secure (while the "cred"
- authentication system does not expose the password in plaintext
- over the wire, it does not offer most of the other security
- properties that SSH does). In addition, the buildmaster admin is
- responsible for maintaining the username/password list, adding
- and deleting entries as developers come and go.
-
-
- For example, to set up the "jobdir" style of trial build, using a
-command queue directory of `MASTERDIR/jobdir' (and assuming that all
-your project developers were members of the `developers' unix group),
-you would first create that directory (with `mkdir MASTERDIR/jobdir
-MASTERDIR/jobdir/new MASTERDIR/jobdir/cur MASTERDIR/jobdir/tmp; chgrp
-developers MASTERDIR/jobdir MASTERDIR/jobdir/*; chmod g+rwx,o-rwx
-MASTERDIR/jobdir MASTERDIR/jobdir/*'), and then use the following
-scheduler in the buildmaster's config file:
-
- from buildbot.scheduler import Try_Jobdir
- s = Try_Jobdir("try1", ["full-linux", "full-netbsd", "full-OSX"],
- jobdir="jobdir")
- c['schedulers'] = [s]
-
- Note that you must create the jobdir before telling the
-buildmaster to use this configuration, otherwise you will get an
-error. Also remember that the buildmaster must be able to read and
-write to the jobdir as well. Be sure to watch the `twistd.log' file
-(*note Logfiles::) as you start using the jobdir, to make sure the
-buildmaster is happy with it.
-
- To use the username/password form of authentication, create a
-`Try_Userpass' instance instead. It takes the same `builderNames'
-argument as the `Try_Jobdir' form, but accepts an addtional `port'
-argument (to specify the TCP port to listen on) and a `userpass' list
-of username/password pairs to accept. Remember to use good passwords
-for this: the security of the buildslave accounts depends upon it:
-
- from buildbot.scheduler import Try_Userpass
- s = Try_Userpass("try2", ["full-linux", "full-netbsd", "full-OSX"],
- port=8031, userpass=[("alice","pw1"), ("bob", "pw2")] )
- c['schedulers'] = [s]
-
- Like most places in the buildbot, the `port' argument takes a
-strports specification. See `twisted.application.strports' for
-details.
-
-locating the master
-===================
-
-The `try' command needs to be told how to connect to the
-`TryScheduler', and must know which of the authentication approaches
-described above is in use by the buildmaster. You specify the
-approach by using `--connect=ssh' or `--connect=pb' (or `try_connect
-= 'ssh'' or `try_connect = 'pb'' in `.buildbot/options').
-
- For the PB approach, the command must be given a `--master'
-argument (in the form HOST:PORT) that points to TCP port that you
-picked in the `Try_Userpass' scheduler. It also takes a `--username'
-and `--passwd' pair of arguments that match one of the entries in the
-buildmaster's `userpass' list. These arguments can also be provided
-as `try_master', `try_username', and `try_password' entries in the
-`.buildbot/options' file.
-
- For the SSH approach, the command must be given `--tryhost',
-`--username', and optionally `--password' (TODO: really?) to get to
-the buildmaster host. It must also be given `--trydir', which points
-to the inlet directory configured above. The trydir can be relative
-to the user's home directory, but most of the time you will use an
-explicit path like `~buildbot/project/trydir'. These arguments can be
-provided in `.buildbot/options' as `try_host', `try_username',
-`try_password', and `try_dir'.
-
- In addition, the SSH approach needs to connect to a PBListener
-status port, so it can retrieve and report the results of the build
-(the PB approach uses the existing connection to retrieve status
-information, so this step is not necessary). This requires a
-`--master' argument, or a `masterstatus' entry in `.buildbot/options',
-in the form of a HOSTNAME:PORT string.
-
-choosing the Builders
-=====================
-
-A trial build is performed on multiple Builders at the same time, and
-the developer gets to choose which Builders are used (limited to a set
-selected by the buildmaster admin with the TryScheduler's
-`builderNames=' argument). The set you choose will depend upon what
-your goals are: if you are concerned about cross-platform
-compatibility, you should use multiple Builders, one from each
-platform of interest. You might use just one builder if that platform
-has libraries or other facilities that allow better test coverage than
-what you can accomplish on your own machine, or faster test runs.
-
- The set of Builders to use can be specified with multiple
-`--builder' arguments on the command line. It can also be specified
-with a single `try_builders' option in `.buildbot/options' that uses
-a list of strings to specify all the Builder names:
-
- try_builders = ["full-OSX", "full-win32", "full-linux"]
-
-specifying the VC system
-========================
-
-The `try' command also needs to know how to take the developer's
-current tree and extract the (revision, patch) source-stamp pair.
-Each VC system uses a different process, so you start by telling the
-`try' command which VC system you are using, with an argument like
-`--vc=cvs' or `--vc=tla'. This can also be provided as `try_vc' in
-`.buildbot/options'.
-
- The following names are recognized: `cvs' `svn' `baz' `tla' `hg'
-`darcs'
-
-finding the top of the tree
-===========================
-
-Some VC systems (notably CVS and SVN) track each directory
-more-or-less independently, which means the `try' command needs to
-move up to the top of the project tree before it will be able to
-construct a proper full-tree patch. To accomplish this, the `try'
-command will crawl up through the parent directories until it finds a
-marker file. The default name for this marker file is
-`.buildbot-top', so when you are using CVS or SVN you should `touch
-.buildbot-top' from the top of your tree before running `buildbot
-try'. Alternatively, you can use a filename like `ChangeLog' or
-`README', since many projects put one of these files in their
-top-most directory (and nowhere else). To set this filename, use
-`--try-topfile=ChangeLog', or set it in the options file with
-`try_topfile = 'ChangeLog''.
-
- You can also manually set the top of the tree with
-`--try-topdir=~/trees/mytree', or `try_topdir = '~/trees/mytree''. If
-you use `try_topdir', in a `.buildbot/options' file, you will need a
-separate options file for each tree you use, so it may be more
-convenient to use the `try_topfile' approach instead.
-
- Other VC systems which work on full projects instead of individual
-directories (tla, baz, darcs, monotone, mercurial, git) do not require
-`try' to know the top directory, so the `--try-topfile' and
-`--try-topdir' arguments will be ignored.
-
- If the `try' command cannot find the top directory, it will abort
-with an error message.
-
-determining the branch name
-===========================
-
-Some VC systems record the branch information in a way that "try" can
-locate it, in particular Arch (both `tla' and `baz'). For the others,
-if you are using something other than the default branch, you will
-have to tell the buildbot which branch your tree is using. You can do
-this with either the `--branch' argument, or a `try_branch' entry in
-the `.buildbot/options' file.
-
-determining the revision and patch
-==================================
-
-Each VC system has a separate approach for determining the tree's base
-revision and computing a patch.
-
-`CVS'
- `try' pretends that the tree is up to date. It converts the
- current time into a `-D' time specification, uses it as the base
- revision, and computes the diff between the upstream tree as of
- that point in time versus the current contents. This works, more
- or less, but requires that the local clock be in reasonably good
- sync with the repository.
-
-`SVN'
- `try' does a `svn status -u' to find the latest repository
- revision number (emitted on the last line in the "Status against
- revision: NN" message). It then performs an `svn diff -rNN' to
- find out how your tree differs from the repository version, and
- sends the resulting patch to the buildmaster. If your tree is not
- up to date, this will result in the "try" tree being created with
- the latest revision, then _backwards_ patches applied to bring it
- "back" to the version you actually checked out (plus your actual
- code changes), but this will still result in the correct tree
- being used for the build.
-
-`baz'
- `try' does a `baz tree-id' to determine the fully-qualified
- version and patch identifier for the tree
- (ARCHIVE/VERSION-patch-NN), and uses the VERSION-patch-NN
- component as the base revision. It then does a `baz diff' to
- obtain the patch.
-
-`tla'
- `try' does a `tla tree-version' to get the fully-qualified
- version identifier (ARCHIVE/VERSION), then takes the first line
- of `tla logs --reverse' to figure out the base revision. Then it
- does `tla changes --diffs' to obtain the patch.
-
-`Darcs'
- `darcs changes --context' emits a text file that contains a list
- of all patches back to and including the last tag was made. This
- text file (plus the location of a repository that contains all
- these patches) is sufficient to re-create the tree. Therefore
- the contents of this "context" file _are_ the revision stamp for
- a Darcs-controlled source tree.
-
- So `try' does a `darcs changes --context' to determine what your
- tree's base revision is, and then does a `darcs diff -u' to
- compute the patch relative to that revision.
-
-`Mercurial'
- `hg identify' emits a short revision ID (basically a truncated
- SHA1 hash of the current revision's contents), which is used as
- the base revision. `hg diff' then provides the patch relative to
- that revision. For `try' to work, your working directory must
- only have patches that are available from the same
- remotely-available repository that the build process'
- `step.Mercurial' will use.
-
-`Git'
- `git branch -v' lists all the branches available in the local
- repository along with the revision ID it points to and a short
- summary of the last commit. The line containing the currently
- checked out branch begins with '* ' (star and space) while all
- the others start with ' ' (two spaces). `try' scans for this
- line and extracts the branch name and revision from it. Then it
- generates a diff against the base revision.
-
-
-waiting for results
-===================
-
-If you provide the `--wait' option (or `try_wait = True' in
-`.buildbot/options'), the `buildbot try' command will wait until your
-changes have either been proven good or bad before exiting. Unless
-you use the `--quiet' option (or `try_quiet=True'), it will emit a
-progress message every 60 seconds until the builds have completed.
-
-* Menu:
-
-* try --diff::
-
-
-File: buildbot.info, Node: try --diff, Prev: try, Up: try
-
-8.2.3.1 try -diff
-.................
-
-Sometimes you might have a patch from someone else that you want to
-submit to the buildbot. For example, a user may have created a patch
-to fix some specific bug and sent it to you by email. You've inspected
-the patch and suspect that it might do the job (and have at least
-confirmed that it doesn't do anything evil). Now you want to test it
-out.
-
- One approach would be to check out a new local tree, apply the
-patch, run your local tests, then use "buildbot try" to run the tests
-on other platforms. An alternate approach is to use the `buildbot try
---diff' form to have the buildbot test the patch without using a
-local tree.
-
- This form takes a `--diff' argument which points to a file that
-contains the patch you want to apply. By default this patch will be
-applied to the TRUNK revision, but if you give the optional
-`--baserev' argument, a tree of the given revision will be used as a
-starting point instead of TRUNK.
-
- You can also use `buildbot try --diff=-' to read the patch from
-stdin.
-
- Each patch has a "patchlevel" associated with it. This indicates
-the number of slashes (and preceding pathnames) that should be
-stripped before applying the diff. This exactly corresponds to the
-`-p' or `--strip' argument to the `patch' utility. By default
-`buildbot try --diff' uses a patchlevel of 0, but you can override
-this with the `-p' argument.
-
- When you use `--diff', you do not need to use any of the other
-options that relate to a local tree, specifically `--vc',
-`--try-topfile', or `--try-topdir'. These options will be ignored. Of
-course you must still specify how to get to the buildmaster (with
-`--connect', `--tryhost', etc).
-
-
-File: buildbot.info, Node: Other Tools, Next: .buildbot config directory, Prev: Developer Tools, Up: Command-line tool
-
-8.3 Other Tools
-===============
-
-These tools are generally used by buildmaster administrators.
-
-* Menu:
-
-* sendchange::
-* debugclient::
-
-
-File: buildbot.info, Node: sendchange, Next: debugclient, Prev: Other Tools, Up: Other Tools
-
-8.3.1 sendchange
-----------------
-
-This command is used to tell the buildmaster about source changes. It
-is intended to be used from within a commit script, installed on the
-VC server. It requires that you have a PBChangeSource (*note
-PBChangeSource::) running in the buildmaster (by being set in
-`c['change_source']').
-
- buildbot sendchange --master MASTERHOST:PORT --username USER FILENAMES..
-
- There are other (optional) arguments which can influence the
-`Change' that gets submitted:
-
-`--branch'
- This provides the (string) branch specifier. If omitted, it
- defaults to None, indicating the "default branch". All files
- included in this Change must be on the same branch.
-
-`--category'
- This provides the (string) category specifier. If omitted, it
- defaults to None, indicating "no category". The category
- property is used by Schedulers to filter what changes they
- listen to.
-
-`--revision_number'
- This provides a (numeric) revision number for the change, used
- for VC systems that use numeric transaction numbers (like
- Subversion).
-
-`--revision'
- This provides a (string) revision specifier, for VC systems that
- use strings (Arch would use something like patch-42 etc).
-
-`--revision_file'
- This provides a filename which will be opened and the contents
- used as the revision specifier. This is specifically for Darcs,
- which uses the output of `darcs changes --context' as a revision
- specifier. This context file can be a couple of kilobytes long,
- spanning a couple lines per patch, and would be a hassle to pass
- as a command-line argument.
-
-`--comments'
- This provides the change comments as a single argument. You may
- want to use `--logfile' instead.
-
-`--logfile'
- This instructs the tool to read the change comments from the
- given file. If you use `-' as the filename, the tool will read
- the change comments from stdin.
-
-
-File: buildbot.info, Node: debugclient, Prev: sendchange, Up: Other Tools
-
-8.3.2 debugclient
------------------
-
- buildbot debugclient --master MASTERHOST:PORT --passwd DEBUGPW
-
- This launches a small Gtk+/Glade-based debug tool, connecting to
-the buildmaster's "debug port". This debug port shares the same port
-number as the slaveport (*note Setting the slaveport::), but the
-`debugPort' is only enabled if you set a debug password in the
-buildmaster's config file (*note Debug options::). The `--passwd'
-option must match the `c['debugPassword']' value.
-
- `--master' can also be provided in `.debug/options' by the
-`master' key. `--passwd' can be provided by the `debugPassword' key.
-
- The `Connect' button must be pressed before any of the other
-buttons will be active. This establishes the connection to the
-buildmaster. The other sections of the tool are as follows:
-
-`Reload .cfg'
- Forces the buildmaster to reload its `master.cfg' file. This is
- equivalent to sending a SIGHUP to the buildmaster, but can be
- done remotely through the debug port. Note that it is a good
- idea to be watching the buildmaster's `twistd.log' as you reload
- the config file, as any errors which are detected in the config
- file will be announced there.
-
-`Rebuild .py'
- (not yet implemented). The idea here is to use Twisted's
- "rebuild" facilities to replace the buildmaster's running code
- with a new version. Even if this worked, it would only be used
- by buildbot developers.
-
-`poke IRC'
- This locates a `words.IRC' status target and causes it to emit a
- message on all the channels to which it is currently connected.
- This was used to debug a problem in which the buildmaster lost
- the connection to the IRC server and did not attempt to
- reconnect.
-
-`Commit'
- This allows you to inject a Change, just as if a real one had
- been delivered by whatever VC hook you are using. You can set
- the name of the committed file and the name of the user who is
- doing the commit. Optionally, you can also set a revision for
- the change. If the revision you provide looks like a number, it
- will be sent as an integer, otherwise it will be sent as a
- string.
-
-`Force Build'
- This lets you force a Builder (selected by name) to start a
- build of the current source tree.
-
-`Currently'
- (obsolete). This was used to manually set the status of the given
- Builder, but the status-assignment code was changed in an
- incompatible way and these buttons are no longer meaningful.
-
-
-
-File: buildbot.info, Node: .buildbot config directory, Prev: Other Tools, Up: Command-line tool
-
-8.4 .buildbot config directory
-==============================
-
-Many of the `buildbot' tools must be told how to contact the
-buildmaster that they interact with. This specification can be
-provided as a command-line argument, but most of the time it will be
-easier to set them in an "options" file. The `buildbot' command will
-look for a special directory named `.buildbot', starting from the
-current directory (where the command was run) and crawling upwards,
-eventually looking in the user's home directory. It will look for a
-file named `options' in this directory, and will evaluate it as a
-python script, looking for certain names to be set. You can just put
-simple `name = 'value'' pairs in this file to set the options.
-
- For a description of the names used in this file, please see the
-documentation for the individual `buildbot' sub-commands. The
-following is a brief sample of what this file's contents could be.
-
- # for status-reading tools
- masterstatus = 'buildbot.example.org:12345'
- # for 'sendchange' or the debug port
- master = 'buildbot.example.org:18990'
- debugPassword = 'eiv7Po'
-
-`masterstatus'
- Location of the `client.PBListener' status port, used by
- `statuslog' and `statusgui'.
-
-`master'
- Location of the `debugPort' (for `debugclient'). Also the
- location of the `pb.PBChangeSource' (for `sendchange'). Usually
- shares the slaveport, but a future version may make it possible
- to have these listen on a separate port number.
-
-`debugPassword'
- Must match the value of `c['debugPassword']', used to protect the
- debug port, for the `debugclient' command.
-
-`username'
- Provides a default username for the `sendchange' command.
-
-
- The following options are used by the `buildbot try' command
-(*note try::):
-
-`try_connect'
- This specifies how the "try" command should deliver its request
- to the buildmaster. The currently accepted values are "ssh" and
- "pb".
-
-`try_builders'
- Which builders should be used for the "try" build.
-
-`try_vc'
- This specifies the version control system being used.
-
-`try_branch'
- This indicates that the current tree is on a non-trunk branch.
-
-`try_topdir'
-
-`try_topfile'
- Use `try_topdir' to explicitly indicate the top of your working
- tree, or `try_topfile' to name a file that will only be found in
- that top-most directory.
-
-`try_host'
-
-`try_username'
-
-`try_dir'
- When try_connect is "ssh", the command will pay attention to
- `try_host', `try_username', and `try_dir'.
-
-`try_username'
-
-`try_password'
-
-`try_master'
- Instead, when `try_connect' is "pb", the command will pay
- attention to `try_username', `try_password', and `try_master'.
-
-`try_wait'
-
-`masterstatus'
- `try_wait' and `masterstatus' are used to ask the "try" command
- to wait for the requested build to complete.
-
-
-
-File: buildbot.info, Node: Resources, Next: Developer's Appendix, Prev: Command-line tool, Up: Top
-
-9 Resources
-***********
-
-The Buildbot's home page is at `http://buildbot.sourceforge.net/'
-
- For configuration questions and general discussion, please use the
-`buildbot-devel' mailing list. The subscription instructions and
-archives are available at
-`http://lists.sourceforge.net/lists/listinfo/buildbot-devel'
-
-
-File: buildbot.info, Node: Developer's Appendix, Next: Index of Useful Classes, Prev: Resources, Up: Top
-
-Developer's Appendix
-********************
-
-This appendix contains random notes about the implementation of the
-Buildbot, and is likely to only be of use to people intending to
-extend the Buildbot's internals.
-
- The buildmaster consists of a tree of Service objects, which is
-shaped as follows:
-
- BuildMaster
- ChangeMaster (in .change_svc)
- [IChangeSource instances]
- [IScheduler instances] (in .schedulers)
- BotMaster (in .botmaster)
- [IBuildSlave instances]
- [IStatusTarget instances] (in .statusTargets)
-
- The BotMaster has a collection of Builder objects as values of its
-`.builders' dictionary.
-
-
-File: buildbot.info, Node: Index of Useful Classes, Next: Index of master.cfg keys, Prev: Developer's Appendix, Up: Top
-
-Index of Useful Classes
-***********************
-
-This is a list of all user-visible classes. There are the ones that
-are useful in `master.cfg', the buildmaster's configuration file.
-Classes that are not listed here are generally internal things that
-admins are unlikely to have much use for.
-
-Change Sources
-==============
-
-
-* Menu:
-
-* buildbot.changes.bonsaipoller.BonsaiPoller: BonsaiPoller. (line 6)
-* buildbot.changes.freshcvs.FreshCVSSource: CVSToys - PBService.
- (line 6)
-* buildbot.changes.mail.BonsaiMaildirSource: BonsaiMaildirSource.
- (line 6)
-* buildbot.changes.mail.FCMaildirSource: FCMaildirSource. (line 6)
-* buildbot.changes.mail.SVNCommitEmailMaildirSource: SVNCommitEmailMaildirSource.
- (line 6)
-* buildbot.changes.mail.SyncmailMaildirSource: SyncmailMaildirSource.
- (line 6)
-* buildbot.changes.p4poller.P4Source: P4Source. (line 6)
-* buildbot.changes.pb.PBChangeSource: PBChangeSource. (line 6)
-* buildbot.changes.svnpoller.SVNPoller: SVNPoller. (line 6)
-
-Schedulers and Locks
-====================
-
-
-* Menu:
-
-* buildbot.locks.LockAccess: Interlocks. (line 6)
-* buildbot.locks.MasterLock: Interlocks. (line 6)
-* buildbot.locks.SlaveLock: Interlocks. (line 6)
-* buildbot.scheduler.AnyBranchScheduler: AnyBranchScheduler. (line 6)
-* buildbot.scheduler.Dependent: Dependent Scheduler.
- (line 6)
-* buildbot.scheduler.Nightly: Nightly Scheduler. (line 6)
-* buildbot.scheduler.Periodic: Periodic Scheduler. (line 6)
-* buildbot.scheduler.Scheduler: Scheduler Scheduler.
- (line 6)
-* buildbot.scheduler.Triggerable: Triggerable Scheduler.
- (line 6)
-* buildbot.scheduler.Try_Jobdir <1>: try. (line 32)
-* buildbot.scheduler.Try_Jobdir: Try Schedulers. (line 6)
-* buildbot.scheduler.Try_Userpass <1>: try. (line 32)
-* buildbot.scheduler.Try_Userpass: Try Schedulers. (line 6)
-
-Build Factories
-===============
-
-
-* Menu:
-
-* buildbot.process.factory.BasicBuildFactory: BuildFactory. (line 6)
-* buildbot.process.factory.BasicSVN: BuildFactory. (line 6)
-* buildbot.process.factory.BuildFactory: BuildFactory. (line 6)
-* buildbot.process.factory.CPAN: CPAN. (line 6)
-* buildbot.process.factory.Distutils: Python distutils. (line 6)
-* buildbot.process.factory.GNUAutoconf: GNUAutoconf. (line 6)
-* buildbot.process.factory.QuickBuildFactory: Quick builds. (line 6)
-* buildbot.process.factory.Trial: Python/Twisted/trial projects.
- (line 6)
-
-Build Steps
-===========
-
-
-* Menu:
-
-* buildbot.steps.maxq.MaxQ: Index of Useful Classes.
- (line 73)
-* buildbot.steps.python.BuildEPYDoc: BuildEPYDoc. (line 6)
-* buildbot.steps.python.PyFlakes: PyFlakes. (line 6)
-* buildbot.steps.python.PyLint: PyLint. (line 6)
-* buildbot.steps.python_twisted.BuildDebs: Python/Twisted/trial projects.
- (line 6)
-* buildbot.steps.python_twisted.HLint: Python/Twisted/trial projects.
- (line 6)
-* buildbot.steps.python_twisted.ProcessDocs: Python/Twisted/trial projects.
- (line 6)
-* buildbot.steps.python_twisted.RemovePYCs: Python/Twisted/trial projects.
- (line 6)
-* buildbot.steps.python_twisted.Trial: Python/Twisted/trial projects.
- (line 6)
-* buildbot.steps.shell.Compile: Compile. (line 6)
-* buildbot.steps.shell.Configure: Configure. (line 6)
-* buildbot.steps.shell.PerlModuleTest: PerlModuleTest. (line 6)
-* buildbot.steps.shell.SetProperty: SetProperty. (line 6)
-* buildbot.steps.shell.ShellCommand: ShellCommand. (line 6)
-* buildbot.steps.shell.Test: Test. (line 6)
-* buildbot.steps.shell.TreeSize: TreeSize. (line 6)
-* buildbot.steps.source.Arch: Arch. (line 6)
-* buildbot.steps.source.Bazaar: Bazaar. (line 6)
-* buildbot.steps.source.Bzr: Bzr. (line 6)
-* buildbot.steps.source.CVS: CVS. (line 6)
-* buildbot.steps.source.Darcs: Darcs. (line 6)
-* buildbot.steps.source.Git <1>: Index of Useful Classes.
- (line 73)
-* buildbot.steps.source.Git: Git. (line 6)
-* buildbot.steps.source.Mercurial: Mercurial. (line 6)
-* buildbot.steps.source.P4: P4. (line 6)
-* buildbot.steps.source.SVN: SVN. (line 6)
-* buildbot.steps.transfer.DirectoryUpload: Transferring Files.
- (line 6)
-* buildbot.steps.transfer.FileDownload: Transferring Files. (line 6)
-* buildbot.steps.transfer.FileUpload: Transferring Files. (line 6)
-
-Status Targets
-==============
-
-
-* Menu:
-
-* buildbot.status.client.PBListener: PBListener. (line 6)
-* buildbot.status.html.Waterfall: HTML Waterfall. (line 6)
-* buildbot.status.mail.MailNotifier: MailNotifier. (line 6)
-* buildbot.status.web.baseweb.WebStatus: WebStatus. (line 6)
-* buildbot.status.words.IRC: IRC Bot. (line 6)
-
-
-File: buildbot.info, Node: Index of master.cfg keys, Next: Index, Prev: Index of Useful Classes, Up: Top
-
-Index of master.cfg keys
-************************
-
-This is a list of all of the significant keys in master.cfg . Recall
-that master.cfg is effectively a small python program with exactly one
-responsibility: create a dictionary named `BuildmasterConfig'. The
-keys of this dictionary are listed here. The beginning of the
-master.cfg file typically starts with something like:
-
- BuildmasterConfig = c = {}
-
- Therefore a config key of `change_source' will usually appear in
-master.cfg as `c['change_source']'.
-
-
-* Menu:
-
-* c['buildbotURL']: Defining the Project.
- (line 24)
-* c['builders']: Defining Builders. (line 6)
-* c['change_source']: Change Sources and Schedulers.
- (line 6)
-* c['debugPassword']: Debug options. (line 6)
-* c['logCompressionLimit']: Defining the Project.
- (line 36)
-* c['manhole']: Debug options. (line 17)
-* c['mergeRequests']: Merging BuildRequests.
- (line 6)
-* c['projectName']: Defining the Project.
- (line 15)
-* c['projectURL']: Defining the Project.
- (line 19)
-* c['properties']: Defining Global Properties.
- (line 6)
-* c['schedulers']: Change Sources and Schedulers.
- (line 13)
-* c['slavePortnum']: Setting the slaveport.
- (line 6)
-* c['slaves']: Buildslave Specifiers.
- (line 6)
-* c['sources']: Change Sources and Schedulers.
- (line 6)
-* c['status']: Defining Status Targets.
- (line 11)
-
-
-File: buildbot.info, Node: Index, Prev: Index of master.cfg keys, Up: Top
-
-Index
-*****
-
-
-* Menu:
-
-* addURL: BuildStep URLs. (line 6)
-* Arch Checkout: Arch. (line 6)
-* Bazaar Checkout: Bazaar. (line 6)
-* Builder: Builder. (line 6)
-* BuildRequest: BuildRequest. (line 6)
-* BuildSet: BuildSet. (line 6)
-* BuildStep URLs: BuildStep URLs. (line 6)
-* Bzr Checkout: Bzr. (line 6)
-* Configuration: Configuration. (line 6)
-* CVS Checkout: CVS. (line 6)
-* Darcs Checkout: Darcs. (line 6)
-* Dependencies: Dependent Scheduler.
- (line 6)
-* Dependent: Dependent Scheduler.
- (line 6)
-* email: MailNotifier. (line 6)
-* File Transfer: Transferring Files. (line 6)
-* Git Checkout: Git. (line 6)
-* installation: Installing the code.
- (line 6)
-* introduction: Introduction. (line 6)
-* IRC: IRC Bot. (line 6)
-* links: BuildStep URLs. (line 6)
-* locks: Interlocks. (line 6)
-* logfiles: Logfiles. (line 6)
-* LogLineObserver: Adding LogObservers.
- (line 6)
-* LogObserver: Adding LogObservers.
- (line 6)
-* mail: MailNotifier. (line 6)
-* Mercurial Checkout: Mercurial. (line 6)
-* PBListener: PBListener. (line 6)
-* Perforce Update: P4. (line 6)
-* Philosophy of operation: History and Philosophy.
- (line 6)
-* Properties <1>: Using Build Properties.
- (line 6)
-* Properties <2>: Defining Global Properties.
- (line 6)
-* Properties <3>: Buildslave Specifiers.
- (line 33)
-* Properties <4>: Change Sources and Schedulers.
- (line 41)
-* Properties: Build Properties. (line 6)
-* Scheduler: Schedulers. (line 6)
-* statusgui: statusgui. (line 6)
-* SVN Checkout: SVN. (line 6)
-* treeStableTimer: BuildFactory Attributes.
- (line 8)
-* Triggers: Triggerable Scheduler.
- (line 6)
-* Users: Users. (line 6)
-* Version Control: Version Control Systems.
- (line 6)
-* Waterfall: HTML Waterfall. (line 6)
-* WebStatus: WebStatus. (line 6)
-* WithProperties: Using Build Properties.
- (line 34)
-
-