<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>Apache Tcl</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <? title ?>
    <table class="main">
	<tr>
	  <? navbar ?>
	  <td valign="top">
	    <h2>About Apache Tcl</h2>
	    <p>
	      The Apache Tcl project was established as part of the <a
	      href="http://www.apache.org/foundation/">Apache Software
	      Foundation</a> in <a
	      href="http://www.apache.org/foundation/records/minutes/2000/board_minutes_2000_07_24.txt">July,
	      2000</a> with the following mission:
	    </p>
	    <blockquote>
	      ... creation and maintenance of open-source software
	      related to the TCL scripting language for distribution
	      at no charge to the public.
	    </blockquote>

	    <p>
	      All Apache projects are "managed using a collaborative,
	      consensus-based process".  Although we are a smaller
	      group, and don't have as much procedural overhead, there
	      are some good guidelines that the Jakarta people have
	      written up that are worth looking over: <a
	      href="http://jakarta.apache.org/site/guidelines.html">http://jakarta.apache.org/site/guidelines.html</a> .
	    </p>

	    <h2>Credits</h2>
	    <p>
	      Current Members of the Project Maintainership Committee
	      - these are the people who are responsible for running
	      and overseeing the project:
	    </p>
	    <ul>
	      <li><a href="http://people.apache.org/~ronnie/">Ronnie Brunner</a></li>
	      <li>Damon Courtney</li>
	      <li>Dirk-Willem van Gulik</li>
	      <li><a href="mailto:mlink@apache.org">Michael Link</a></li>
	      <li>Daniel Ridruejo</li>
	      <li><a href="http://www.dedasys.com/davidw/">David Welton</a></li>
	    </ul>
	    <p>We would also like to thank the following for their
	    time, help and or contributions:</p>

	    <ul>
	      <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
	      <li><a href="http://www.phaseit.net">Cameron
		  Laird</a></li>
	      <li><a href="http://www.covalent.net/">Covalent Technologies</a></li>
	    </ul>

	    <p>
	      Contributions for individual projects are credited on
	      the pages associated with those projects.
	    </p>

	    <h2>Join Us!</h2>
	    <p>
	      The Apache Tcl group is interested in bringing new
	      Tcl-related projects on board.  What we are looking for
	      is good code, and a good comunity around the software.
	      Your project doesn't necessarily have to be related to
	      the Apache web server!  Please contact the PMC (see
	      below) if you are interested in discussing a code
	      donation.
	    </p>
	    <p>
	      And, of course, we are always looking for motivated and
	      talented volunteers who are keen to help out with our
	      existing projects.  The best place to start is the
	      mailing list for the project that interests you.
	    </p>

	    <h2>Mailing Lists</h2>
	    <p>
	      These are the mailing lists for the Apache Tcl projects.
	      <b>Please</b> use them instead of contacting individuals
	      directly so that your conversation will be archived, and
	      others may benefit from your questions.
	    </p>
	    <p>
	      It is possible to subscribe to any of these lists by
	      sending a message to: <tt style="font-size:
	      larger">list<b>-subscribe@tcl.apache.org</b></tt>.
	    </p>
	    <table class="lists">
	      <tbody>
		<tr>
		  <th>Post</th>
		  <th>Description</th>
		  <th>Archive</th>
		  <th>Subscribe</th>
		</tr>
		<tr>
		  <th>
		    <a
		    href="mailto:general@tcl.apache.org">general@tcl.apache.org</a>
		  </th>
		  <td>
		    For general questions about Apache Tcl that
		    don't regard any specific project.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-general/">general@tcl.apache.org</a></td>
		  <td>
		    <a
		      href="mailto:general-subscribe@tcl.apache.org">general-subscribe@tcl.apache.org</a>
		  </td>
		</tr>
		<tr>
		  <th>
		    <a href="mailto:mod_dtcl@tcl.apache.org">mod_dtcl@tcl.apache.org</a>
		  </th>
		  <td>
		    User/developer list for mod_dtcl.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-mod_dtcl/">mod_dtcl@tcl.apache.org</a>
		  </td>
		  <td>
		    <a
		      href="mailto:mod_dtcl-subscribe@tcl.apache.org">mod_dtcl-subscribe@tcl.apache.org</a>
		  </td>
		</tr>

		<tr>
		  <th>
		    <a href="mailto:mod_tcl-dev@tcl.apache.org">mod_tcl-dev@tcl.apache.org</a>
		  </th>
		  <td>
		    List for the discussion of mod_tcl development.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-mod_tcl-dev/">mod_tcl-dev@tcl.apache.org</a>
		  </td>
		  <td>
		    <a
		      href="mailto:mod_tcl-dev-subscribe@tcl.apache.org">mod_tcl-dev-subscribe@tcl.apache.org</a>
		  </td>
		</tr>
		<tr>
		  <th>
		    <a href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>
		  </th>
		  <td>
		    Developer list for Rivet.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/">rivet-dev@tcl.apache.org</a>
		  </td>
		  <td>
		    <a
		      href="mailto:rivet-dev-subscribe@tcl.apache.org">rivet-dev-subscribe@tcl.apache.org</a>
		  </td>
		</tr>
		<tr>
		  <th>
		    <a href="mailto:rivet-user@tcl.apache.org">rivet-user@tcl.apache.org</a>
		  </th>
		  <td>
		    User list for Rivet.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-rivet-user/">rivet-user@tcl.apache.org</a>
		  </td>
		  <td>
		    <a
		      href="mailto:rivet-user-subscribe@tcl.apache.org">rivet-user-subscribe@tcl.apache.org</a>
		  </td>
		</tr>
		<tr>
		  <th>
		    <a href="mailto:websh-dev@tcl.apache.org">websh-dev@tcl.apache.org</a>
		  </th>
		  <td>
		    Developer list for Websh.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-websh-dev/">websh-dev@tcl.apache.org</a>
		  </td>
		  <td>
		    <a
		      href="mailto:websh-dev-subscribe@tcl.apache.org">websh-dev-subscribe@tcl.apache.org</a>
		  </td>
		</tr>
		<tr>
		  <th>
		    <a href="mailto:websh-user@tcl.apache.org">websh-user@tcl.apache.org</a>
		  </th>
		  <td>
		    User list for Websh.
		  </td>
		  <td>
		    <a
		      href="http://mail-archives.apache.org/mod_mbox/tcl-websh-user/">websh-user@tcl.apache.org</a>
		  </td>
		  <td>
		    <a
		      href="mailto:websh-user-subscribe@tcl.apache.org">websh-user-subscribe@tcl.apache.org</a>
		  </td>

		</tr>

		<tr>
		  <th>
		    <a href="mailto:pmc@tcl.apache.org">pmc@tcl.apache.org</a>
		  </th>
		  <td>
		    The Apache Tcl Project Management Committee, the
		    group responsible for running the project.  Please
		    <b>do not</b> write here unless you are really
		    sure.  Most likely, you should write to the
		    general list instead, as it's open to all.
		  </td>
		  <td>Not archived publically.</td>
		  <td>For private discussions only.</td>
		</tr>
	      </tbody>
	    </table>
	  </td>
	</tr>
    </table>
    <? powered ?>
  </body>
</html>
