version 1.22, 2003/02/03 18:03:52
|
version 1.24, 2011/03/01 03:43:32
|
Line 2
|
Line 2
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<!-- The LearningOnline Network with CAPA --> |
<!-- The LearningOnline Network with CAPA --> |
<!-- $Id$ --> |
<!-- $Id$ --> |
<html> |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
<head> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> |
<title>LON-CAPA Software Developer Guide</title> |
<title>LON-CAPA Software Developer Guide</title> |
Line 10
|
Line 10
|
<body> |
<body> |
<h1>LON-CAPA Software Developer Guide</h1> |
<h1>LON-CAPA Software Developer Guide</h1> |
<p> |
<p> |
January 17, 2001</i> |
Created: <i>January 17, 2001</i> |
<br /><i>Last updated, August 14, 2002</i> |
<br />Last updated: <i>February 28, 2011</i> |
</p> |
</p> |
<ol> |
<ol> |
<li><a href="#Using_CVS">Using CVS</a> |
<li><a href="#Using_CVS">Using CVS</a> |
<ul> |
<ul> |
<li><a href="#cvslog">Logging in and out (cvs login; cvs logout)</a></li> |
<li><a href="#cvslog">Setting up cvs access</a></li> |
<li><a href="#cvsupdate">Updating files (cvs update -d)</a></li> |
<li><a href="#cvsupdate">Updating files (cvs update -d)</a></li> |
<li><a href="#cvssave">Saving files (cvs commit)</a></li> |
<li><a href="#cvssave">Saving files (cvs commit)</a></li> |
<li><a href="#cvsadd">Adding files (cvs add)</a></li> |
<li><a href="#cvsadd">Adding files (cvs add)</a></li> |
Line 28 January 17, 2001</i>
|
Line 28 January 17, 2001</i>
|
<li><a href="#makebuild">Compiling the software (make build)</a></li> |
<li><a href="#makebuild">Compiling the software (make build)</a></li> |
<li><a href="#loncapafiles">Adding/removing files from the LON-CAPA |
<li><a href="#loncapafiles">Adding/removing files from the LON-CAPA |
installation (doc/loncapafiles/loncapafiles.lpml)</a></li> |
installation (doc/loncapafiles/loncapafiles.lpml)</a></li> |
|
<li><a href="#makeaboutVERSION">Updating the LON-CAPA Version number</a></li> |
<li><a href="#configversusnonconfig">Configurable files versus |
<li><a href="#configversusnonconfig">Configurable files versus |
non-configurable files</a></li> |
non-configurable files</a></li> |
<li><a href="#makeinstall">Updating the non-configurable files on your |
<li><a href="#makeinstall">Updating the non-configurable files on your |
Line 44 These instructions assume that you are u
|
Line 45 These instructions assume that you are u
|
terminal. |
terminal. |
<ul> |
<ul> |
<li><a name="cvslog" /> |
<li><a name="cvslog" /> |
<h3>Using CVS: Logging in and out (cvs login; cvs logout)</h3> |
<h3>Setting up cvs access</h3> |
<p> |
<p> |
In order to log into CVS, CVS needs to be part of your system environment. |
CVS needs to be part of your system environment in order to access the LON-CAPA CVS repository, |
You can do this by: |
You can do this by: |
</p> |
</p> |
<p> |
<p> |
<font color="#008800"> |
<font color="#008800"> |
<tt>export CVSROOT=:pserver:USERNAME@install.lon-capa.org:/home/cvs</tt> |
<tt>export CVS_RSH=ssh</tt><br /> |
|
<tt>export CVSROOT=:ext:USERNAME@source.lon-capa.org:/home/cvs</tt> |
</font> |
</font> |
</p> |
</p> |
<p> |
<br /> |
To actually login, you will need to execute the following command: |
To actually issue CVS commands you will need to: |
</p> |
<br /><br /> |
<p> |
<ol> |
<font color="#008800"> |
<li>Have installed the CVS client, e.g., <font color="#008800"><tt>yum install cvs</tt></font></li> |
<tt>cvs login</tt> |
<li>Have been issued a CVS account, (send a request to the <a href="mailto:helpdesk@loncapa.org">LON-CAPA helpdesk</a>)</li> |
</font> |
<li>Have generated public and private keys via <font color="#008800"><tt>ssh-keygen -t dsa</tt></font> and sent the public key to the LON-CAPA helpdesk for installation on the CVS server.</li> |
</p> |
</ol> |
<p> |
|
You are then prompted for a password. |
|
If you do not have a password, or the password is not working, you |
|
should contact <a href="mailto:helen@lon-capa.org">helen@lon-capa.org</a>. |
|
</p> |
|
<p> |
<p> |
The first time you use CVS, you need to CHECKOUT the repository. |
The first time you use CVS, you need to CHECKOUT the repository. |
Generally speaking, you need to checkout <tt>loncapa</tt> only once |
Generally speaking, you need to checkout <tt>loncapa</tt> only once |
Line 80 To check-out the repository, use the <tt
|
Line 77 To check-out the repository, use the <tt
|
<tt>cd loncapa</tt> |
<tt>cd loncapa</tt> |
</font> |
</font> |
</p> |
</p> |
<p>After completing work with the CVS repository, |
|
you can log out: |
|
</p> |
|
<p> |
|
<font color="#008800"> |
|
<tt>cvs logout</tt> |
|
</font> |
|
</p> |
|
</li> |
</li> |
<li><a name="cvsupdate" /> |
<li><a name="cvsupdate" /> |
<h3>Using CVS: Updating files (cvs update -d)</h3> |
<h3>Using CVS: Updating files (cvs update -d)</h3> |
Line 196 cvs commit FILENAME
|
Line 185 cvs commit FILENAME
|
Note that CVS typically invokes the |
Note that CVS typically invokes the |
<a href="http://www.eng.hawaii.edu/Tutor/vi.html">vi</a> editor and solicits |
<a href="http://www.eng.hawaii.edu/Tutor/vi.html">vi</a> editor and solicits |
comments about your latest changes to the software. Your comments should be |
comments about your latest changes to the software. Your comments should be |
both short yet uniquely descriptive. For example: |
descriptive and informative. For example: |
</p> |
</p> |
<ul> |
<ul> |
<li><strong>BAD</strong> - "made some changes and am drinking soda"</li> |
<li><strong>BAD</strong> - "saving my work"</li> |
<li><strong>GOOD</strong> - "implemented syntax checking of perl scripts |
<li><strong>GOOD</strong> - "implemented syntax checking of perl scripts |
with -c flag"</li> |
with -c flag"</li> |
</ul> |
</ul> |
Line 479 well.
|
Line 468 well.
|
The <tt>lpml_parse.pl</tt>-<tt>loncapafiles.lpml</tt> |
The <tt>lpml_parse.pl</tt>-<tt>loncapafiles.lpml</tt> |
combination has been highly efficient and error-free. |
combination has been highly efficient and error-free. |
</p> |
</p> |
</li><li><a name="configversusnonconfig" /> |
</li> |
|
<li><a name="makeaboutVERSION" /> |
|
<h2>Updating files containing version number on your machine (make aboutVERSION)</h2> |
|
<strong>Commands</strong> |
|
<p><font color="#008800"><tt> |
|
cd loncom/build |
|
<br />make aboutVERSION |
|
</tt></font></p> |
|
<p> |
|
<strong>General description of what happens</strong> |
|
</p> |
|
<p> |
|
This is the actual make target code. |
|
</p> |
|
<pre> |
|
<!-- LONCAPA MAKETARGET=aboutVERSION START --> |
|
aboutVERSION: |
|
cat $(SOURCE)/loncom/license/about.html | \ |
|
perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \ |
|
$(SOURCE)/loncom/license/about.html.new |
|
mv -v $(SOURCE)/loncom/license/about.html.new \ |
|
$(SOURCE)/loncom/license/about.html |
|
cat $(SOURCE)/loncom/loncapa_apache.conf | \ |
|
perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \ |
|
$(SOURCE)/loncom/loncapa_apache.conf.new |
|
mv -v $(SOURCE)/loncom/loncapa_apache.conf.new \ |
|
$(SOURCE)/loncom/loncapa_apache.conf |
|
<!-- LONCAPA MAKETARGET=aboutVERSION END --> |
|
</pre> |
|
<p> |
|
The LON-CAPA Version number is updated in the following files: |
|
<ul> |
|
<li><tt>loncom/license/about.html</tt></li> |
|
<li><tt>loncom/loncapa_apache.conf</tt></li> |
|
</ul> |
|
</p> |
|
<p> |
|
Updating the version information in these files means that visitors to the static HTML page: "About LON-CAPA" on your server will see which version of LON-CAPA you are running. The same information is also displayed on the dynamic log-in page generated by <tt>lonlogin.pm</tt>. Furthermore, the version of LON-CAPA running on your server can determine which course roles may be selectable on that server, if a course contains resource(s) and/or parameter(s) which require a specific version (or newer) of LON-CAPA. It is also possible for Domain Coordinators in another domain to configure their domain to limit hosting of sessions for users from their own domain to LON-CAPA servers in other domains which are running a specific LON-CAPA version (or newer). |
|
</p> |
|
<p> On a development server, i.e., one where LON-CAPA is built and installed from a CVS checkout, running make aboutVERSION will cause the version number to be set to something of the form: M.N.CVS_HEAD-YYYYMMDDHH, where M.N will be the version number of the next stable (major) release (e.g., if the current stable release is 3.1; the next release would be 3.2), and YYYYMMDDHH is the datestamp when make aboutVERSION was last run. Note: make aboutVERSION will update the about.html and loncapa_apache.conf in the installation directory tree; it is not until <tt>make install</tt> is run that files served directly by the web server (or used for configuration) are updated with the versions in that tree. |
|
</p> |
|
</li> |
|
<li><a name="configversusnonconfig" /> |
<h2>Configurable files versus non-configurable files</h2> |
<h2>Configurable files versus non-configurable files</h2> |
<p> |
<p> |
<strong>Machine-specific information is the difference</strong> |
<strong>Machine-specific information is the difference</strong> |