gecko-dev/webtools/tinderbox2/tinderbox.html

274 lines
13 KiB
HTML

<HTML>
<head>
<TITLE>Tinderbox 2.0</TITLE>
</head>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000"
LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000"
MARGINHEIGHT="0" MARGINWIDTH="0">
<MAP NAME="banner">
<AREA SHAPE=RECT COORDS="300,11,558,44" ALT="" HREF="http://www.mozilla.org/">
</MAP>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH="100%">
<TR><TD BGCOLOR="#000000" VALIGN=TOP><IMG
SRC="../../images/mozilla-banner.gif"
ALT="" BORDER=0 USEMAP="#banner"
WIDTH="600" HEIGHT="58" VSPACE="0" HSPACE="0"></TD></TR></TABLE>
<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR>
<TD VALIGN="TOP" >
<TABLE BORDER="0" ><TR><TD BGCOLOR="#000000" VALIGN="TOP">
<TABLE BORDER="0" CELLSPACING="3"><TR><TD BGCOLOR="#DDDDDD" VALIGN="TOP">
<TABLE CELLPADDING=0 CELLSPACING=3 BORDER=0>
<TR><TD NOWRAP COLSPAN=2><A HREF="../.././"><B> The Mozilla<BR>Organization</B></A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../mozorg.html"> At A Glance</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../feedback.html"> Feedback</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../get-involved.html"> Get Involved</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../community.html"> Newsgroups</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../MPL/"> License Terms</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="http://www.mozilla.org/newsbot/"> Newsbot</A></TD></TR>
<TR><TD HEIGHT="3"></TD></TR>
<TR><TD NOWRAP COLSPAN=2><A HREF="../../docs/"><B> Developer Docs</B></A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../roadmap.html"> Roadmap</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../projects/"> Projects</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../ports/"> Ports</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../owners.html"> Module Owners</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../hacking/"> Hacking</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../source.html"> Get the Source</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../build/"> Build It</A></TD></TR>
<TR><TD HEIGHT="3"></TD></TR>
<TR><TD NOWRAP COLSPAN=2><A HREF="../../quality/"><B> Testing</B></A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../releases/"> Download</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../quality/help/bug-form.html"> Report A Bug</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../bugs/"> Bugzilla</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="../../quality/bug-writing-guidelines.html"> Bug Writing</A></TD></TR>
<TR><TD HEIGHT="3"></TD></TR>
<TR><TD NOWRAP COLSPAN=2><A HREF="../../tools.html"><B> Tools</B></A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="http://lxr.mozilla.org/seamonkey/"> View Source</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey"> Tree Status</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&amp;module=SeaMonkeyAll&amp;branch=HEAD&amp;branchtype=match&amp;dir=&amp;file=&amp;filetype=match&amp;who=&amp;whotype=match&amp;sortby=Date&amp;hours=2&amp;date=day&amp;mindate=&amp;maxdate=&amp;cvsroot=%2Fcvsroot"> New Checkins</A></TD></TR>
<TR><TD></TD><TD NOWRAP><A HREF="http://bugzilla.mozilla.org/"> Submit A Bug</A></TD></TR>
<TR><TD HEIGHT="3"></TD></TR>
<TR><TD NOWRAP COLSPAN=2><A HREF="../../faq.html"><B> FAQ</B></A></TD></TR>
<TR><TD NOWRAP COLSPAN=2><A HREF="http://www.mozilla.org/search.html"><B> Search</B></A></TD></TR>
</TABLE>
</TD></TR></TABLE>
</TD></TR></TABLE>
</TD>
<TD VALIGN="TOP">
<H1 ALIGN=CENTER>Tinderbox 2.0</h1>
<h3 align=center>
Development Monitoring System <br>
rewrite by <a href="mailto:kestes@walrus.com">Ken Estes</a></h3>
<p>This document describes a rewrite of the original <a href="http://www.mozilla.org/tinderbox.html">Tinderbox 1.0</a> development tool.
<p>Tinderbox is the first program to allow developers and
management to see at a glance what is currently going on in all
aspects of the development process. The Tinderbox server prepares
HTML pages which display the history of many different development
variables. It shows at a glance the history of: whether the HEAD
branch of the source code builds and passes all automated tests,
who has checked code changes into the version control system,
whether the source tree is open or closed and when the state of
the tree last changed, what trouble tickets have been closed,
notices and messages posted by the developers or project manager.
<p>The new Tinderbox code is highly configurable and will allow
you to work with many different types of version control or bug
tracking systems. It is relatively easy to add new modules which
work with other systems. It is also easy to configure Tinderbox to
run without the displays that your organizations does not need or
to run with duplicate modules if the need arises.
<P><B>Here is a description of the main Tinderbox subsystems:</B>
<ol>
<p><li> Tinderbox is an automatic build master. The build module
allows an organization to dispense with the dedicated employee
whose title is 'build master'. A fleet of dedicated build
machines continually run the compilations and any automated
tests of the latest source code. Developers can see at a glance
whether the most recent changes in the version control system
will break the build of the product, break any automated style
(lint) checks, cause the automated unit tests to fail or cause
the code coverage of the unit tests to drop below a required
minimum. These builds are not run daily as with most
organizations but are run continually for immediate feedback.
Each developer can monitor whether his changes break the
automated build/tests and each developer can see at a glance
which developer caused an problems which are being reported.
The build/test logs are available at the click of a web link so
that developers need not have access to the build/test
machine/architecture to fix any compilation/test problems.
Tinderbox allows the build organization to push back the
responsibility of ensuring the code builds to the developer who
just checked in the code. Anyone with a browser can see if the
build failed and read what the error message was. Tinderbox
does not prevent any development from occurring. Should it ever
be necessary to allow development to proceed even though the
tests are broken it is easy for developers to ignore the reports
of failing tests and to configure Tinderbox to not display any
tests which are not currently being monitored. Tinderbox does
not enforce any development methodology it only displays the
current 'state of development'.
<p><li> Tinderbox displays the history of recent changes to the
code stored in a Version Control system. This allows developers
to see at a glance which portions of the code are being changed
and who is changing the code. It is no longer necessary to
configure the Version Control system to mail each developer when
changes are occurring. Any developer who needs to know what is
going on with the sources can see at a glance what changes were
made. When the builds/tests fail it is easy to figure out what
person is responsible for the problem. The person who "broke
the build" is any person who did a checkin between the last good
build and the broken build. This quickly narrows the possible
suspects and allows for transparent accountability for any
problems. After the Project Manager closes the tree for further
checkins all checkins appear in a shaded color (grey) so that it
is easy to desert which checkins were made after the tree was
closed and see of any checkin policies have been violated.
<p><li> Tinderbox box will displays the trouble tickets which
were closed. Since the changes in the code were likely made to
fix bugs, it is convenient to have the current changes to the
bug tracking system displayed on the Tinderbox pages. This
allows for cross correlation between version control changes,
changes in the state of trouble tickets and the current state of
the build and test suites.
<p><li> Since the Tinderbox web pages are a centralized place
for Project information there is a "Message of the Day" for
managment messages, "Tree State" for current checkin policy and
a "Notice Board" where developers can post information of
interest the project. Managment can set the "Tree State" to
notify the developers what type of checkin dicipline is expected
for version control use. Since many modern version control
systems do not have a project state to enforce checkin disipline
this can be the only mechanism for developers to learn what is
expected of them at the current time. Typically the notice
board is used to announce when a developer makes major changes
to the source code or to confirm that a recent build failure is
being fixed or backed out.
</ol>
<P><B>How can I have the source so that I can run it on my own projects?</B>
<p>
Please see our <A HREF="../../cvs.html">CVS page</A> for information on using
our CVS server. (The Tinderbox and Bonsai sources are currently only
available via CVS.)
<pre>
To check out the sources, you need to be running CVS 1.10 or later, and have your $CVSROOT set to
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
The password for user anonymous is anonymous.
cvs checkout mozilla/webtools/tinderbox2
</pre>
Anyone can check out the sources via CVS, but only certain people have
the ability to check in. Those people, basically, are the module
owners and their delegates. Read our document on <A
HREF="../../hacking/index.html"> hacking mozilla </a> to find out how to get
the ability to check in.
<P><B>Is there a mailing list or news group for Tinderbox?</B>
<p> We host some mailing lists and newsgroups at mozilla.org, to
foster open communication in the developer community. We add new
forums with some regularity, in response to the needs of you, the
developers. What forums do you want? As new special-interest
groups appear, we will create new newsgroups and mailing lists, or
whatever seems most useful. Let us know. For an overview of the
hottest newsgroup articles and threads, check out NewsBot.
<p>Please see our <A HREF="http://www.mozilla.org/community.html">
Community page </A> for information on subscribing to one of the
mailing list and for the ground rules for participation in these
forums. Please respect these rules, and each other.
<P> The mailing lists and newsgroups described here are for
Mozilla <I><B>developers</B></I>, not for end-<WBR>users. These
lists are for discussions related to the Mozilla source code, by
and for the Mozilla developer community.
<p> Since some people prefer newsgroups, and some people prefer
mailing lists, we have created our discussion forums in pairs:
both a newsgroup and a mailing list. Each one mirrors its mate:
messages sent to one of the newsgroups will also show up in its
corresponding mailing list, and vice versa. That way, you get your
pick of whether you'd like to read the message via news or mail.
</UL>
<A NAME="mozilla-webtools"></A>
<TABLE BORDER=0 CELLSPACING=3 CELLPADDING=0 WIDTH="100%"><TR>
<TH ALIGN=LEFT VALIGN=TOP ROWSPAN=2><B>Mozilla-Webtools</B></TH>
<TD VALIGN=TOP ALIGN=RIGHT>
<A HREF="news://news.mozilla.org/netscape.public.mozilla.webtools">
<B>netscape.public.mozilla.webtools</B></A><BR>
<A HREF="mailto:mozilla-webtools-request@mozilla.org?subject=subscribe">
<B>mozilla-webtools@mozilla.org</B></A>
<BR>
<FONT SIZE=-1>
<A HREF="mailto:mozilla-webtools-request@mozilla.org?subject=unsubscribe">
unsubscribe</A>
</FONT>
</TD></TR></TABLE><UL>
Mozilla.org has developed several web-based tools that is used to
help manage the code. These tools include <a href="../../bugs/"> Bugzilla
</a> (bug tracking), <a href="../../bonsai.html"> Bonsai </a> (CVS
queries), and <a href="index.html"> Tinderbox </a> (continuous
automated builds). In the spirit of open software, the source of
these tools is freely available, and people may work on them and use
them for their own purposes. This forum is for discussions about
these tools.
</UL>
<p>
</TD>
</TR>
<TR>
<TD COLSPAN="2" ALIGN="RIGHT" VALIGN="TOP">
<FONT SIZE="-1">
Copyright &copy; 1998-2001 The Mozilla Organization.
<BR>
Last modified December 21, 2001.
<BR>
<A HREF="http://www.mozilla.org/webtools/bonsai/cvslog.cgi?file=mozilla-org/html/projects/tinderbox/index.html&amp;rev=&amp;root=/cvsroot/">Document History</A>.
</FONT>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>