head	1.6;
access;
symbols
	TIGRIS_1_1_0RC2:1.6
	TIGRIS_1_1_0RC1:1.6
	TIGRIS_1_1:1.6.0.14
	TIGRIS_1_0_8:1.6
	TIGRIS_1_0_8RC3:1.6
	TIGRIS_1_0_8RC2:1.6
	TIGRIS_1_0_8RC1:1.6
	TIGRIS_1_0_7:1.6
	TIGRIS_1_0_7RC3:1.6
	TIGRIS_1_0_7RC2:1.6
	TIGRIS_1_0_7RC1:1.6
	TIGRIS_1_0_6:1.6
	TIGRIS_1_0_6RC5:1.6
	TIGRIS_1_0_6RC4:1.6
	TIGRIS_1_0_6RC3:1.6
	TIGRIS_1_0_6RC2:1.6
	TIGRIS_1_0_6RC1:1.6
	TIGRIS_1_0_5:1.6
	TIGRIS_1_0_5RC6:1.6
	TIGRIS_1_0_5RC5:1.6
	TIGRIS_1_0_5RC4:1.6
	TIGRIS_1_0_5RC3:1.6
	TIGRIS_1_0_5RC2:1.6
	TIGRIS_1_0_5RC1:1.6
	TIGRIS_1_0_4:1.6
	TIGRIS_1_0_3:1.6
	TIGRIS_1_0_2:1.6
	TIGRIS_1_0_1:1.6
	TIGRIS_1_0:1.6.0.16
	TIGRIS_1_0_0:1.6
	TIGRIS_1_0_0_RC1:1.6.0.12
	dlr:1.1.1
	TIGRIS_0_9_2_4:1.6
	TIGRIS_0_9_2_3:1.6
	HELM_PEER_PORT_BRANCH:1.1.1.1
	TURBINE_PEER:1.6
	TIGRIS_0_9_2_1:1.6
	TIGRIS_0_9_2:1.6.0.10
	TIGRIS_0_9_0:1.6.0.8
	TIGRIS_0_8_4:1.6.0.6
	TIGRIS_NOV_12_2000:1.6
	OLDHELM:1.6.0.4
	TIGRIS_NOV_11_2000:1.6
	TIGRIS_SEP_13_2000:1.6.0.2
	TIGRIS_BASELINE:1.6;
locks; strict;
comment	@# @;


1.6
date	2000.07.07.00.39.37;	author shane;	state Exp;
branches;
next	1.5;

1.5
date	2000.07.07.00.34.46;	author shane;	state Exp;
branches;
next	1.4;

1.4
date	2000.07.07.00.14.51;	author shane;	state Exp;
branches;
next	1.3;

1.3
date	2000.06.29.00.46.43;	author jrobbins;	state Exp;
branches;
next	1.2;

1.2
date	2000.06.27.06.34.57;	author jrobbins;	state Exp;
branches;
next	1.1;

1.1
date	2000.06.26.19.50.46;	author jrobbins;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2001.02.21.00.37.05;	author dlr;	state Exp;
branches;
next	;


desc
@@


1.6
log
@Last fixes I promise
PR:
Obtained from:
Submitted by:
Reviewed by:
@
text
@<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>

<HEAD>
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
<META NAME="VPSiteProject" CONTENT="file:///D|/jr/cvs/tigris/helm/www/docs/Project.vpp">

	<TITLE>untitled</TITLE>
</HEAD>

<BODY>

<P>
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> How Tigris Works</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>This document gives a series of step-by-step descriptions of how the tigris components work together to accomplish
			various tasks:</P>
			<UL>
				<LI>Administrative fundtions
				<UL>
					<LI><A HREF="#AdminServlets">Logging into the Admin Servlers</A>
					<LI><A HREF="#NewUser">Adding a New User</A>
					<LI><A HREF="#NewProject">Adding a New Project</A>
					<LI><A HREF="#NewModule">Adding a New Module</A>
					<LI><A HREF="#NewList">Adding a New Mailing List</A>
				</UL>
				<LI>Mail and Mailing Lists and Archives
				<UL>
					<LI><A HREF="#MailToUser">Mail to user@@domain</A>
					<LI><A HREF="#MailToList">Mail to list@@project.domain</A>
				</UL>
				<LI>Web site content
				<UL>
					<LI><A HREF="#CheckinginContent">Checking in Web Content</A>
					<LI><A HREF="#DynamicBranding">Dynamically Branding Web Content</A>
				</UL>
				<LI>Bug tracking
				<UL>
					<LI><A HREF="#LoggingintoBugzilla">Logging into Bugzilla</A>
					<LI><A HREF="#AddBug">Adding/Modifying a Bug</A>
				</UL>
				<LI>Configuration management
				<UL>
					<LI><A HREF="#LoggingintoCVS">Logging in to CVS</A>
					<LI><A HREF="#CheckingOutFiles">Checking Out Files</A>
					<LI><A HREF="#CommitingChanges">Commiting Changes</A>
				</UL>
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="AdminServlets"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into the Admin Servlets</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>User visits TLogin page
				<LI>User enters name and password
				<LI>Login servlet (base class of TLogin) checks user name and password against User table
				<LI>Login decides if it is a valid login
				<LI>If valid login, an internal redirect is done to TStartPage (Is TStartPage in a config?)
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>It would be nice to avoid TLogin and just use Login
			</UL>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="NewUser"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New User</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Assuming user is logged in to Helm servlets and has admin privleges
				<LI>User visits UserAdd and fills in form
				<LI>UserAdd servlet adds to domain_users table
				<LI>UserAdd calls TigrisUpdate
				<LI>TigrisUpdate invokes update.cgi?add_user
				<LI>update.cgi invokes each perl .pm file
				<LI>each perl .pm file does its thing, namely:
				<UL>
					<LI>QmailAlias.pm writes a file $SANDBOX/tigrisq/.qmail-$username with the user's forwarding email address
					<LI>QmailAlias.pm writes a file $SANDBOX/tigrisq/.qmail-$project-$username with the user's forwarding email address
				</UL>
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>The current .pm files should be replace with event-driven scripts that incrementally update config files
				<LI>Get rid of final step that sets up user@@project.domain, that causes far too many little config files?
				<LI>Or find some other way to make it more managable
			</UL>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="NewProject"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New Project</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Assuming user is logged in and has admin privleges
				<LI>User visits ProjectAdd servlet and fills in form
				<LI>ProjectAdd servlet adds to domain_projects, project_mlists, project_modules table
				<LI>ProjectAdd calls TigrisUpdate
				<LI>TigrisUpdate invokes update.cgi?add_project
				<LI>update.cgi invokes each perl .pm file
				<LI>each perl .pm file does its thing, namely:
				<UL>
					<LI>CVSConfig.pm writes entries to $SANDBOX/tigrisc/repository/CVSROOT/loginfo
					<LI>ApacheModules.pm adds a virtual host enty to webmodules.conf
					<LI>QmailAlias.pm writes a file $SANDBOX/tigrisq/.qmail-$project-$username with the user's forwarding email address
					<LI>QmailLists.pm calls ezmlm-make for each new list
					<LI>QmailAlias.pm writes $SANDBOX/tigrisq/tigris-qmail and tigris-qmail-$project for use in &quot;table-synchronization&quot;
					<LI>ezmlm-make writes a directory $SANDBOX/tigrisq/$project-$listname and a buch of .qmail files
					<LI>QmailLists.pm also updates a $SANDBOX/tigrisq/tigris-ezmlm for use in &quot;table-synchronization&quot;
				</UL>
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>The current .pm files should be replace with event-driven scripts that incrementally update config files
				<LI>webmodules.conf should just be a set of include directives that include $project.vhost.conf files
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="NewModule"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New Module</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Assuming user is logged in
				<LI>User visits ModuleAdd servlet and fills in form
				<LI>ModuleAdd servlet adds to project_modules table, and web_modules?
				<LI>ModuleAdd calls TigrisUpdate
				<LI>TigrisUpdate invokes update.cgi
				<LI>update.cgi invokes each perl .pm file
				<LI>each perl .pm file does its thing, namely:
				<UL>
					<LI>CVSConfig.pm writes entries to $SANDBOX/tigrisc/repository/CVSROOT/loginfo, if the web_modules table lists
					the given module
				</UL>
			</UL>
			<P>
			<P>Desired Steps:</P>
			<UL>
				<LI>The current .pm files should be replace with event-driven scripts that incrementally update config files
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="NewList"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New Mailing List</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Assuming user is logged in
				<LI>User visits ProjMailAdd servlet and fills in form
				<LI>ProjMailAdd servlet adds to project_modules table, and web_modules?
				<LI>ProjMailAdd calls TigrisUpdate
				<LI>TigrisUpdate invokes update.cgi
				<LI>update.cgi invokes each perl .pm file
				<LI>each perl .pm file does its thing, namely:
				<UL>
					<LI>QmailLists.pm calls ezmlm-make
					<LI>ezmlm-make writes a directory $SANDBOX/tigrisq/$project-$listname and a buch of .qmail files
					<LI>ezmlm-make reads #SANDBOX/tigrisq/ezmlmrc to get templates for the contents of the mailing list dir
					<LI>QmailLists.pm also updates a $SANDBOX/tigrisq/tigris-ezmlm for use in &quot;table-synchronization&quot;
				</UL>
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="MailToUser"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Mail to user@@domain or user@@project.domain</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<P>In the case of <I>user</I>@@<I>domain</I>
			<UL>
				<LI>Mail message comes to qmail addressed to <I>user</I>@@<I>domain</I>
				<LI>qmail consults /var/qmail/control/rcpthosts to see if it wants to accept email to that domain
				<LI>qmail consults /var/qmail/control/virtualdomains and finds a rule of the form<BR>
				<TT><I>domain</I>:tigrisq<BR>
				</TT>This rewrites the email address as<BR>
				<TT>tigrisq-<I>user</I></TT>
				<LI>qmail does normal local delivery to user tigrisq (with home dir /usr/tigris/tigrisq)
				<LI>The file /usr/tigris/tigrisq/.qmail-<I>user</I> is consulted
				<LI>That file contains the forwarding address for that user
				<LI>Qmail delivers the message to the forwarding address
			</UL>
			<P><BR>
			In the case of <I>user</I>@@<I>project.domain</I>, everything is the same except that:
			<UL>
				<LI>The virtualdomains file has a rule of the form<BR>
				<I>project.domain</I>:tigrisq-<I>project</I>
				<LI>The file /usr/tigris/tigrisq/.qmail-<I>project</I>-<I>user</I> is consulted
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>Should make domain name more explicit in .qmail files and and in virtualdomains
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="MailToList"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Mail to list@@project.domain</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Mail message comes to qmail addressed to <I>list</I>@@<I>project.domain</I>
				<LI>qmail consults /var/qmail/control/rcpthosts to see if it wants to accept email to that domain
				<LI>qmail consults /var/qmail/control/virtualdomains and finds a rule of the form<BR>
				<TT><I>project.domain</I>:tigrisq-<I>project</I><BR>
				</TT>This rewrites the email address as<BR>
				<TT>tigrisq-<I>project-list</I></TT>
				<LI>qmail does normal local delivery to user tigrisq (with home dir /usr/tigris/tigrisq)
				<LI>The file /usr/tigris/tigrisq/.qmail-<I>project-list</I> is consulted
				<LI>That &quot;file&quot; is a soft link to /usr/tigris/tigrisq/<I>project-list</I>/editor
				<LI>The editor file contains the qmail commands to process the message and send it out to the mailing list or to
				the moderators
				<UL>
					<LI>the prefix file controls the text put in front of the subject line
					<LI>the headeradd file lists message header lines that should be added, specifically, most of our lists set reply-to:
					to go back to the mailing list.
					<LI>One of the addresses that we put on the list is the achiver address:<BR>
					<TT>archive-</TT><I><TT>project-list</TT></I><TT>@@</TT><I><TT>domain</TT><BR>
					</I>This is handled by /usr/tigris/tigrisq/.qmail-archive-default and invokes the webnewmail script to generate
					HTML in directory<BR>
					<TT>$SANDBOX/html/<I>project</I>/www/<I>project-list</I>/current/</TT>
				</UL>
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>Should make domain name more explicit in .qmail files and and in virtualdomains
				<LI>The qmail config files in /var/qmail/control do not refer to the developer's sandbox
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="CheckinginContent"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Checking in Web Content</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>User logs into CVS and commits a change (see <A HREF="#CommitingChanges">below</A>)
				<LI>For files in the www module or a subdirectory of it, a rule in $SANDBOX/tigrisc/repository/CVSROOT/loginfo
				of the following form is matched:<BR>
				<TT>^<I>project</I>/www (sleep 2; cd /home/httpd/html/<I>project</I>/www; /usr/local/bin/cvs -q update -d) &amp;</TT>
				<LI>The causes a copy of the content just checked in to be checked out under the apache document root for the project's
				virtual host
				<LI>The content is now accessible via apache
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>There should really be an approval cycle, once content is checked in, it should go to a restricted area of
				the web site until someone with an approval privledge approves it for viewing on the live web site. Also, a &quot;your
				content is pending approval&quot; email message or console message should be displayed. This can allow site owners
				to more freely give out commit access, and it can allow all users to preview and debug their HTML in a safer way.
				<LI>Maybe use a separate CVSROOT for web content since checking loginfo rules is an operation that could get slow
				if there are many projects on one host
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="DynamicBranding"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Dynamically Branding Web Content</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<P>A user browses a a URL on the site. Assuming the URL is of the form http://project.domain/path.html
			<UL>
				<LI>Apache finds the virtual host directive for project.domain
				<LI>In that directive there are mod_rewrite rules are applied to the URL
				<LI>If the first part of the path is &quot;nonav&quot; or the path has &quot;api&quot; anywhere in it, the path
				is passed directly to apache to serve without any branding.
				<LI>The path info is rewritten as /servlets/TView?project=domain&amp;page=path.html
				<LI>The TView servlet is invoked and it computes the project document root and puts this path into webmacro context
				variable $projectDocRoot
				<LI>TView uses the TView.wm webmacro template which does an #include of $projectDocRoot/$page
				<LI>In tigris, the TView.wm template also includes $projectDocRoot/project_nav.html, and $projectDocRoot/project_header.html,
				and $projectDocRoot/project_footer.html
				<LI>WebMacro outputs the nav bars from the TView.wm template and the content incuded
				<LI>The user sees a web page with nav bars and content
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>Same as above
			</UL>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="LoggingintoBugzilla"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into Bugzilla</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>User visists a project web page and clicks on the &quot;bugs&quot; link in the project options section of the
				web nav bar, e.g., http://helm.tigris.org/project_bugs.html
				<LI>There are links there to enter bugs, query, and metrics
				<LI>The user clicks on &quot;Enter a new bug&quot; and sees a login screen
				<LI>The user enters their email address and bugzilla password
				<LI>Bugzilla checks these against the <TT>profiles </TT>table
				<LI>If the user does not have a bugzilla membership, he/she goes to the join.html page
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>Bugzilla account info should be merged into other account info
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="AddBug"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding/Modifying a Bug Report</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Asssuming user has logged into bugzilla
				<LI>User clicks on &quot;Enter a new bug&quot;
				<LI>Alternatively, the user clicks on &quot;Query the bug database&quot; and fills in form, and clicks on one of
				the results
				<LI>User fills in form and hits submit button
				<LI>Bugzilla updates informatiion in the <TT>bugs</TT><I> </I>table and other tables
				<LI>Bugzilla sends an email notification to the addresses listed in the reported-by, assigned-to, and cc fields
				<LI>Each bug report is initially assigned to the owner of the component that the bug was reported against, by default,
				that owner is bugs@@<I>project.domain</I> (the bugs mailing list).
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>need more detail describing which scripts and functions are involved
			</UL>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="LoggingintoCVS"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into CVS</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>User issues cvs command of the form:<BR>
				<TT>cvs -d :pserver:</TT><I><TT>user</TT></I><TT>@@</TT><I><TT>domain</TT></I><TT>:/cvs login</TT><BR>
				where <I>user</I> is either the user's login name on the site, or &quot;guest&quot; or &quot;anoncvs&quot;
				<LI>User enters password
				<LI>CVS pserver on host machine checks the name and password against the <TT>domain_users</TT> table
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>
<P><A NAME="CheckingOutFiles"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Checking Out Files</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Assuming the user is logged in to CVS
				<LI>User issues cvs command of the form:<BR>
				<TT>cvs -d :pserver:</TT><I><TT>user</TT></I><TT>@@</TT><I><TT>domain</TT></I><TT>:/cvs co </TT><I><TT>project</TT></I><TT><BR>
				</TT>or<TT><BR>
				<TT>cvs -d :pserver:</TT><I><TT>user</TT></I><TT>@@</TT><I><TT>domain</TT></I><TT>:/cvs co </TT>-c<TT> (which will list the projects that are available)<BR>
				</TT>or<TT><BR>
				cvs update</TT>
				<LI>CVS pserver on host machine checks the name against permissions listed in the <TT>domain_privs</TT> table,
				the <TT>project_privs</TT> table, and the <TT>module_privs</TT> table
				<LI>If the user has read access to each file requested, it is set back to the CVS client
			</UL>
			<P>
		</TD>
	</TR>
</TABLE>
</P>

<P><A NAME="CommitingChanges"></A> 
<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">
	<TR>
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Commiting Changes</FONT></STRONG></TD>
	</TR>
	<TR>
		<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#F0F0F0">
			<P>Current Steps:</P>
			<UL>
				<LI>Assuming the user is logged in to CVS
				<LI>User issues cvs command of the form:<BR>
				<TT>cvs commit</TT>
				<LI>CVS pserver on host machine checks the name against permissions listed in the <TT>domain_privs</TT> table,
				the <TT>project_privs</TT> table, and the <TT>module_privs</TT> table
				<LI>If the user has write access to each file, that change is accepted
				<LI>For each file, the rules in $SANDBOX/tigrisc/repository/CVSROOT/loginfo are applied
				<UL>
					<LI>If any file committed is in the www module (or any module listed in loginfo as a web module) it is published
					<LI>For each file committed, the rule <BR>
					<TT>ALL $CVSROOT/CVSROOT/log_accum -u $USER %s</TT><BR>
					is applied to invoke the log_accum script
					<LI>Log accum somehow accumulates commit logs that are only attomic by directory into one atomic commit and sends
					an email message to cvs@@project.domain
					<LI>The $USER environment variable contains the login name of the remote CVS user
				</UL>
			</UL>
			<P>
			<P>Notes:</P>
			<UL>
				<LI>Need more detail on how log_accum works
				<LI>Need more info on exactly how often loginfo is consulted
			</UL>
		</TD>
	</TR>
</TABLE>


</BODY>

</HTML>
@


1.5
log
@Added a comment about the -c option to cvs co
the -c option lists which modules are available in a cvs repository
PR:
Obtained from:
Submitted by:
Reviewed by:
@
text
@d442 1
a442 1
				<TT>cvs -d :pserver:</TT><I><TT>user</TT></I><TT>@@</TT><I><TT>domain</TT></I><TT>:/cvs co </TT>-c<TT>(which will list the projects that are available<BR>
@


1.4
log
@Fixing a small typo
PR:
Obtained from:
Submitted by:
Reviewed by:
@
text
@d442 2
@


1.3
log
@added a step for consulting ezmlmrc in response to a question
@
text
@d70 1
a70 1
				<LI>Login decides if it is a valid ligin
d492 1
a492 1
</HTML>@


1.2
log
@added new documents and details
@
text
@a7 1
	<META NAME="GENERATOR" Content="Visual Page 2.0 for Windows">
d58 1
a58 2

<P><A NAME="AdminServlets"></A>
d69 1
a69 1
				<LI>Login servlet (base class of TLogin) checks user name and password against User table 
d73 1
a73 2
			<P></P>

d82 1
a82 2

<P><A NAME="NewUser"></A>
d103 1
a103 2
			<P></P>

d114 1
a114 2

<P><A NAME="NewProject"></A>
d140 1
a140 2
			<P></P>

d151 1
a151 2

<P><A NAME="NewModule"></A>
d172 1
a172 2
			<P></P>

d182 1
a182 2

<P><A NAME="NewList"></A>
d201 1
d210 1
a210 2

<P><A NAME="MailToUser"></A>
a217 1

d221 1
a221 1
				<LI>qmail consults /var/qmail/control/rcpthosts to see if it wants to accept email to that domain 
d236 1
a236 1
				<LI>The file  /usr/tigris/tigrisq/.qmail-<I>project</I>-<I>user</I> is consulted
d238 1
a238 2
			<P></P>

a242 2
			<P></P>

d248 1
a248 2

<P><A NAME="MailToList"></A>
d258 1
a258 1
				<LI>qmail consults /var/qmail/control/rcpthosts to see if it wants to accept email to that domain 
d279 1
a279 2
			<P></P>

d290 1
a290 2

<P><A NAME="CheckinginContent"></A>
d307 1
a307 2
			<P></P>

d311 1
a311 1
				the web site until someone with an approval privledge approves it for viewing on the live web site.  Also, a &quot;your
d322 1
a322 2

<P><A NAME="DynamicBranding"></A>
a329 1

d341 1
a341 1
				and $projectDocRoot/project_footer.html 
d345 1
a345 2
			<P></P>

d354 1
a354 2

<P><A NAME="LoggingintoBugzilla"></A>
d371 1
a371 2
			<P></P>

d381 1
a381 2

<P><A NAME="AddBug"></A>
d400 1
a400 2
			<P></P>

d409 1
a409 2

<P><A NAME="LoggingintoCVS"></A>
d429 1
a429 2

<P><A NAME="CheckingOutFiles"></A>
d453 1
a453 1
<P><A NAME="CommitingChanges"></A>
d479 1
a479 2
			<P></P>

@


1.1
log
@added first document: how-tigris-works
@
text
@d60 1
a60 1
<P>
d63 1
a63 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into the </FONT></STRONG><FONT COLOR="#000033"
			FACE="Arial, Helvetica, sans-serif"><A NAME="AdminServlets"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Admin
			Servlets</FONT></STRONG></TD>
d86 1
a86 1
<P>
d89 1
a89 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a </FONT></STRONG><FONT COLOR="#000033"
			FACE="Arial, Helvetica, sans-serif"><A NAME="NewUser"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">New
			User</FONT></STRONG></TD>
d120 1
a120 1
<P>
d123 1
a123 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a </FONT></STRONG><FONT COLOR="#000033"
			FACE="Arial, Helvetica, sans-serif"><A NAME="NewProject"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">New
			Project</FONT></STRONG></TD>
d159 1
a159 1
<P>
d162 1
a162 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a </FONT></STRONG><FONT COLOR="#000033"
			FACE="Arial, Helvetica, sans-serif"><A NAME="NewModule"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">New
			Module</FONT></STRONG></TD>
d192 1
a192 1
<P>
d195 1
a195 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a </FONT></STRONG><FONT COLOR="#000033"
			FACE="Arial, Helvetica, sans-serif"><A NAME="NewList"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">New
			Mailing List</FONT></STRONG></TD>
d220 1
a220 1
<P>
d223 1
a223 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="MailToUser"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Mail to user@@domain
			or user@@project.domain</FONT></STRONG></TD>
d263 1
a263 1
<P>
d266 1
a266 2
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="MailToList"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Mail to list@@project.domain</FONT></STRONG></TD>
d287 5
d307 1
a307 1
<P>
d310 1
a310 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="CheckinginContent"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Checking
			in Web Content</FONT></STRONG></TD>
d341 1
a341 1
<P>
d344 1
a344 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="DynamicBranding"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Dynamically
			Branding Web Content</FONT></STRONG></TD>
d354 2
d376 1
a376 1
<P>
d379 1
a379 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="LoggingintoBugzilla"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Logging
			into Bugzilla</FONT></STRONG></TD>
d405 1
a405 1
<P>
d408 1
a408 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="AddBug"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Adding/Modifying a Bug
			Report</FONT></STRONG></TD>
d435 1
a435 1
<P>
d438 1
a438 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="LoggingintoCVS"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Logging into
			CVS</FONT></STRONG></TD>
d456 1
a456 1
<P>
d459 1
a459 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="CheckingOutFiles"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Checking Out
			Files</FONT></STRONG></TD>
d480 1
a480 1
<P>
d483 1
a483 3
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> </FONT></STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"><A
			NAME="CommitingChanges"></A></FONT><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif">Commiting
			Changes</FONT></STRONG></TD>
@


1.1.1.1
log
@Replacing the HEAD with the HELM_PEER_PORT_BRANCH.
@
text
@d8 1
d59 2
a60 1
<P><A NAME="AdminServlets"></A> 
d63 3
a65 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into the Admin Servlets</FONT></STRONG></TD>
d73 2
a74 2
				<LI>Login servlet (base class of TLogin) checks user name and password against User table
				<LI>Login decides if it is a valid login
d77 2
a78 1
			<P>
d87 2
a88 1
<P><A NAME="NewUser"></A> 
d91 3
a93 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New User</FONT></STRONG></TD>
d111 2
a112 1
			<P>
d123 2
a124 1
<P><A NAME="NewProject"></A> 
d127 3
a129 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New Project</FONT></STRONG></TD>
d152 2
a153 1
			<P>
d164 2
a165 1
<P><A NAME="NewModule"></A> 
d168 3
a170 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New Module</FONT></STRONG></TD>
d188 2
a189 1
			<P>
d199 2
a200 1
<P><A NAME="NewList"></A> 
d203 3
a205 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding a New Mailing List</FONT></STRONG></TD>
a220 1
					<LI>ezmlm-make reads #SANDBOX/tigrisq/ezmlmrc to get templates for the contents of the mailing list dir
d229 2
a230 1
<P><A NAME="MailToUser"></A> 
d233 3
a235 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Mail to user@@domain or user@@project.domain</FONT></STRONG></TD>
d240 1
d244 1
a244 1
				<LI>qmail consults /var/qmail/control/rcpthosts to see if it wants to accept email to that domain
d259 1
a259 1
				<LI>The file /usr/tigris/tigrisq/.qmail-<I>project</I>-<I>user</I> is consulted
d261 2
a262 1
			<P>
d267 2
d274 2
a275 1
<P><A NAME="MailToList"></A> 
d278 2
a279 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Mail to list@@project.domain</FONT></STRONG></TD>
d286 1
a286 1
				<LI>qmail consults /var/qmail/control/rcpthosts to see if it wants to accept email to that domain
a299 5
					<LI>One of the addresses that we put on the list is the achiver address:<BR>
					<TT>archive-</TT><I><TT>project-list</TT></I><TT>@@</TT><I><TT>domain</TT><BR>
					</I>This is handled by /usr/tigris/tigrisq/.qmail-archive-default and invokes the webnewmail script to generate
					HTML in directory<BR>
					<TT>$SANDBOX/html/<I>project</I>/www/<I>project-list</I>/current/</TT>
d302 2
a303 1
			<P>
d314 2
a315 1
<P><A NAME="CheckinginContent"></A> 
d318 3
a320 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Checking in Web Content</FONT></STRONG></TD>
d334 2
a335 1
			<P>
d339 1
a339 1
				the web site until someone with an approval privledge approves it for viewing on the live web site. Also, a &quot;your
d350 2
a351 1
<P><A NAME="DynamicBranding"></A> 
d354 3
a356 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Dynamically Branding Web Content</FONT></STRONG></TD>
d361 1
a365 2
				<LI>If the first part of the path is &quot;nonav&quot; or the path has &quot;api&quot; anywhere in it, the path
				is passed directly to apache to serve without any branding.
d371 1
a371 1
				and $projectDocRoot/project_footer.html
d375 2
a376 1
			<P>
d385 2
a386 1
<P><A NAME="LoggingintoBugzilla"></A> 
d389 3
a391 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into Bugzilla</FONT></STRONG></TD>
d405 2
a406 1
			<P>
d416 2
a417 1
<P><A NAME="AddBug"></A> 
d420 3
a422 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Adding/Modifying a Bug Report</FONT></STRONG></TD>
d438 2
a439 1
			<P>
d448 2
a449 1
<P><A NAME="LoggingintoCVS"></A> 
d452 3
a454 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Logging into CVS</FONT></STRONG></TD>
d471 2
a472 1
<P><A NAME="CheckingOutFiles"></A> 
d475 3
a477 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Checking Out Files</FONT></STRONG></TD>
a486 2
				<TT>cvs -d :pserver:</TT><I><TT>user</TT></I><TT>@@</TT><I><TT>domain</TT></I><TT>:/cvs co </TT>-c<TT> (which will list the projects that are available)<BR>
				</TT>or<TT><BR>
d498 1
a498 1
<P><A NAME="CommitingChanges"></A> 
d501 3
a503 1
		<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><FONT COLOR="#000033" FACE="Arial, Helvetica, sans-serif"> Commiting Changes</FONT></STRONG></TD>
d526 2
a527 1
			<P>
d540 1
a540 1
</HTML>
@


