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