File:  [LON-CAPA] / doc / build / Attic / software_review.html
Revision 1.1: download - view: text, annotated - select for diffs
Sat May 19 13:26:05 2001 UTC (23 years, 1 month ago) by harris41
Branches: MAIN
CVS tags: HEAD
describing how others can submit software

    1: <html>
    2: <head>
    3: <title>Software Review</title>
    4: </head>
    5: <body>
    6: <h1>Submitting software patches</h1>
    7: <p>
    8: The system works, yet there remains much tweaking to do.
    9: </p>
   10: <p>
   11: <img src='sharetweaks.gif' />
   12: </p>
   13: <h3>General Guidelines</h3>
   14: <ol>
   15: <li>submit patches to <tt>albertel@msu.edu</tt></li>
   16: <li>patches must be a unified diff format (-u)</li>
   17: <li>should be against a specific CVS tag (like HEAD, or when we get to
   18: releases, the most recent *_RELEASE tag)</li>
   19: <li>should contain a description of bugs they fix or functionality they
   20: add</li>
   21: <li>try to make each patch as _targetted_ as possible. (Fix 1 bug, or
   22: add 1 feature) to make it easier to see what is going on.</li>
   23: <li>Large functionality changes should probably get some discussion on
   24:  the mailing list before being submitted.</li>
   25: </ol>
   26: <h3>Example Scenario</h3>
   27: <table border=1><tr><td>
   28: <p>
   29: <b>Large functionality changes should probably get some discussion on
   30:  the mailing list before being submitted.</b>
   31: </p>
   32: <p>
   33: A fictional Dr. Sherbert is writing a handler to display web statistics
   34: (information present in /var/log/httpd/access.log).  Here is
   35: a list of e-mails and commands which take place.
   36: </p>
   37: <p>
   38: Dr. Sherbert e-mails the list with his idea
   39: <pre>
   40: <b>sherbert %&gt;</b> mail lon-capa@hobbes.lite.msu.edu
   41: Hi,
   42: 
   43: I want to create a handler to show web statistics (hits
   44: per hour, IP addresses, most popular URLs, hits per day,
   45: etc).  This would provide data I can show the
   46: administration as well as helping me better monitor
   47: how adequately my server cluster is performing.
   48: I plan on calling this handler lonapachestat.pm, associating
   49: with apachestat, and available only to those with roles (see
   50: roles.tab and rolesplain.tab) of "gan=generating anonymous
   51: statistics".  I would make appropriate changes to
   52: /etc/httpd/conf/srm.conf
   53: 
   54: -Bert
   55: </pre>
   56: </p>
   57: <p>
   58: Two others respond on the mailing list.
   59: <pre>
   60: <b>gwynne %&gt;</b> mail lon-capa@hobbes.lite.msu.edu
   61: Bert,
   62: 
   63: I like that idea, but don't you think that this is
   64: better handled as a batch-cron job?  Why not have
   65: these statistics compiled every day?  I think
   66: SOURCE="loncom/cron/loncapa" TARGET="etc/cron.d/loncapa"
   67: handles this.  Also, I assume you mean associating
   68: with the location http://MACHINENAME/adm/lonapachestat.
   69: 
   70: Gwynne
   71: 
   72: 
   73: <b>godfried %&gt;</b> mail lon-capa@hobbes.lite.msu.edu
   74: Bert,
   75: 
   76: This would be of immense help to some questions I have.
   77: I want to be able to "play-back" what each user session
   78: is doing for my course.  Also, if a student e-mails me,
   79: I want to be able to see where in the course sequence
   80: the student was working.  I would need the statistics calculated
   81: dynamically as opposed to a batch process.
   82: 
   83: Godfried
   84: </pre>
   85: </p>
   86: <p>
   87: After more discussion, Dr. Sherbert's idea is accepted.
   88: </p>
   89: </td></tr></table>
   90: <p>
   91: &nbsp;
   92: </p>
   93: <table border=1><tr><td>
   94: <p>
   95: <b>PATCHING /etc/httpd/conf/srm.conf</b>
   96: </p>
   97: <p>
   98: <b>submit patches to <tt>albertel@msu.edu</tt></b>
   99: <br /><b>patches must be a unified diff format (-u)</b>
  100: <br /><b>should be against a specific CVS tag (like HEAD, or when we get to
  101: releases, the most recent *_RELEASE tag)</b>
  102: <br /><b>should contain a description of bugs they fix or functionality they
  103: add</b>
  104: <br /><b>try to make each patch as _targetted_ as possible. (Fix 1 bug, or
  105: add 1 feature) to make it easier to see what is going on.</b>
  106: </p>
  107: <p>
  108: Dr. Sherbert wants to alter the web server configuration so that
  109: whenever http://MACHINENAME/apachestat is requested, the lonapachestat.pm
  110: handler is called.
  111: </p>
  112: <p>
  113: To do this, he needs to alter srm.conf.  After setting up CVS
  114: and checking out LON-CAPA (cvs co loncapa), he needs to find srm.conf
  115: in the CVS source repository.
  116: </p>
  117: <pre>
  118: [sherbert@morphy1 loncapa]$ find . -type f | grep srm.conf
  119: ./loncom/srm.conf
  120: [sherbert@morphy1 loncapa]$ 
  121: </pre>
  122: <p>
  123: Dr. Sherbert sees the following section of code in srm.conf.
  124: <pre>
  125: # -------------------------------------------------------------- Admin Programs
  126: 
  127: &lt;Location /adm/roles&gt;
  128: PerlAccessHandler       Apache::lonacc
  129: SetHandler perl-script
  130: PerlHandler Apache::lonroles
  131: ErrorDocument     403 /adm/login
  132: ErrorDocument	  500 /adm/errorhandler
  133: &lt;/Location&gt;
  134: 
  135: &lt;Location /adm/login&gt;
  136: SetHandler perl-script
  137: PerlHandler Apache::lonlogin
  138: &lt;/Location&gt;
  139: 
  140: &lt;Location /adm/logout&gt;
  141: PerlAccessHandler       Apache::lonacc
  142: SetHandler perl-script
  143: PerlHandler Apache::lonlogout
  144: ErrorDocument     403 /adm/login
  145: &lt;/Location&gt;
  146: </pre>
  147: </p>
  148: <p>
  149: Dr. Sherbert then adds in his handler.
  150: </p>
  151: <pre>
  152: # -------------------------------------------------------------- Admin Programs
  153: 
  154: &lt;Location /adm/apachestat&gt;
  155: PerlAccessHandler       Apache::lonacc
  156: SetHandler perl-script
  157: PerlHandler Apache::lonapachestat
  158: ErrorDocument     403 /adm/login
  159: ErrorDocument	  500 /adm/errorhandler
  160: &lt;/Location&gt;
  161: 
  162: &lt;Location /adm/roles&gt;
  163: PerlAccessHandler       Apache::lonacc
  164: SetHandler perl-script
  165: PerlHandler Apache::lonroles
  166: ErrorDocument     403 /adm/login
  167: ErrorDocument	  500 /adm/errorhandler
  168: &lt;/Location&gt;
  169: 
  170: &lt;Location /adm/login&gt;
  171: SetHandler perl-script
  172: PerlHandler Apache::lonlogin
  173: &lt;/Location&gt;
  174: 
  175: &lt;Location /adm/logout&gt;
  176: PerlAccessHandler       Apache::lonacc
  177: SetHandler perl-script
  178: PerlHandler Apache::lonlogout
  179: ErrorDocument     403 /adm/login
  180: &lt;/Location&gt;
  181: </pre>
  182: <p>
  183: Dr. Sherbert then creates a unified diff format of his changes
  184: against the HEAD (current) release.
  185: <pre>
  186: [sherbert@morphy1]$ cd loncapa/loncom
  187: [sherbert@morphy1]$ cvs diff -U 3 -r HEAD srm.conf
  188: Index: srm.conf
  189: ===================================================================
  190: RCS file: /home/cvs/loncom/srm.conf,v
  191: retrieving revision 1.14
  192: diff -U3 -r1.14 srm.conf
  193: --- srm.conf	2001/05/15 12:35:07	1.14
  194: +++ srm.conf	2001/05/19 13:14:53
  195: @@ -353,6 +353,14 @@
  196:  
  197:  # -------------------------------------------------------------- Admin Programs 
  198: +<Location /adm/apachestat>
  199: +PerlAccessHandler       Apache::lonacc
  200: +SetHandler perl-script
  201: +PerlHandler Apache::lonapachestat
  202: +ErrorDocument     403 /adm/login
  203: +ErrorDocument	  500 /adm/errorhandler
  204: +</Location>
  205: +
  206:  <Location /adm/roles>
  207:  PerlAccessHandler       Apache::lonacc
  208:  SetHandler perl-script
  209: </pre>
  210: </p>
  211: <p>
  212: Dr. Sherbert e-mails his patch to Guy.
  213: <pre>
  214: [sherbert@morphy1]$ cvs diff -U 3 -r HEAD srm.conf | mail -s 'patch to\
  215:  srm.conf to add adm/apachestat handling with lonapachestat.pm'\
  216: albertel@msu.edu
  217: </pre>
  218: </p>
  219: <p>
  220: Guy responds
  221: <pre>
  222: Bert,
  223: 
  224: Your change was checked into the LON-CAPA system.  Thanks!
  225: 
  226: -Guy
  227: </pre>
  228: </p>
  229: Dr. Sherbert did the following right things.
  230: <ul>
  231: <li>he described the fix in his mail message
  232: <br>patch to srm.conf to add adm/apachestat handling with lonapachestat.pm</li>
  233: <li>his submitted change fixed 1 bug/feature</li>
  234: <li>he created a unified diff format for his patch</li>
  235: </ul>
  236: </pre>
  237: </p>
  238: </td></tr></table>
  239: </body>
  240: </html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>