File: contributing.html

package info (click to toggle)
viewcvs 0.9.2-4woody1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 752 kB
  • ctags: 655
  • sloc: python: 6,591; sh: 80; makefile: 68
file content (173 lines) | stat: -rw-r--r-- 7,289 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <title>Contributing to ViewCVS Development</title>
  </head>

  <body background="images/chalk.jpg">

    <table width="100&#37;" cellspacing=5>
     <tr>
        <td width="1%"><a href="index.html"><img border=0
	      src="images/logo.png"></a>
	</td>
	<td>
	  <h1>Contributing to ViewCVS Development</h1>
	</td>
	<td width="1%"><a href="http://sourceforge.net/"><img border=0
	      src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS&nbsp;project&nbsp;page</a>
	</td>
     </tr>
     <tr><td width="1%" valign=top>
         <a href="index.html">Home</a><br>
         <a href="upgrading.html">Upgrading</a><br>
	 Contributing<br>
         <a href="license-1.html">License</a><br>
         <a href="who.html">Who</a><br>
     </td><td colspan=2>

      <p>
      Contributions to ViewCVS are very welcome.
      </p>

      <h2>Getting Started</h2>
      <p>
      Some basic knowledge about <a href="http://www.python.org"><i>Python</i></a> and
      development Tools like <code>diff</code> is required.  Best is you start
      with a fresh snapshot, which you may obtain from the 
      <a href="http://sourceforge.net/cvs/?group_id=18760">CVS-Repository</a> 
      at SourceForge.
      </p>

      <h2>Testing and reporting</h2>
      <p>
      Testing usability and the installation process on different platforms is
      also a valuable contribution.  Please report your results back to 
      us developers.  But always tell us, which version of ViewCVS
      you used on which platform.  
      </p><p>
      If you are using the latest current development version please note 
      the date of your latest download or cvs update when reporting.
      </p>
      
      <h2>Does a Certain Coding Style Guide apply?</h2>
      <p>
      Maintain whatever style is present in the code being modified.  New
      code can use anything sane (which generally means 
      <a href="http://python.sourceforge.net/peps/pep-0008.html"><i>PEP&nbsp;8</i></a>).
      Greg's only real peeve is if someone writes a function call as:  
      <code>some_func&nbsp;(args)</code>  -- that space is Huge Badness. 
      Otherwise... <i>shrug</i>.
      </p>

      <h2>Submitting patches</h2>
      <p>
      Please use the
      <a href="http://sourceforge.net/tracker/?func=add&group_id=18760&atid=318760">SourceForge&nbsp;project&nbsp;patch&nbsp;manager</a>
      to submit your patches.  Unified context diffs relative to the latest 
      development version are preferred.
      </p><p>
      If you have commit access, then you should know what
      you're doing.  Just make changes directly.  Subscribing to
      the <a href="http://mailman.lyra.org/mailman/listinfo/viewcvs-dev"><i>developer&nbsp;mailing&nbsp;list</i></a> 
      is recommended in any case.
      </p>

      <h2>Preserving security</h2>
      <p>
      Since ViewCVS is used in the internet, security is a major issue.
      If you need to pass data from the request into an external program, 
      please don't use <code>os.system()</code> or <code>os.popen()</code>.
      Please use the module <code>lib/popen</code> that comes with ViewCVS
      instead.
      </p>

      <h2>Adding new features</h2>
      <p>
      If a new file or module is added, a new line in the installer program
      <code>viewcvs-install</code> is required.
      </p><p>
      The library subdirectory contains a module <code>debug</code>, which may
      useful to make performance tests.
      </p><p>
      If you need a new configuration option think carefully, into 
      which section it belongs.  Try to keep the content of 
      <code>cgi/viewcvs.conf.dist</code> file and the library module
      <code>lib/config.py</code> in sync.
      </p>

      <h2>Hacking on templates</h2>
      <p>
      The library module <code>ezt</code> contains a module doc string which
      describes the directives used in the HTML templates, which can be found
      in the <code>templates</code> sub directory.
      </p>

      <h2>Cutting a release</h2>
      <p>
      Also there actually is a script <code>tools/make-release</code>, 
      which creates a release directory, all other steps required to get 
      a ViewCVS release out of the door will be currently executed manually 
      by Greg Stein.
      </p><p>
      Nevertheless in case he ever wants to retire from this job, it is 
      probably a good idea to write the procedure down here:
      <ol>
        <li>Add a new subsection to the file 
	 <code>website/upgrading.html</code> describing all user visible 
	 changes for users of previous releases of ViewCVS.
        <li>Test, Test, Test!  At the time of this writing (0.8-dev) there
	 is no automatic testsuite available.  So just run with permuting
	 different <code>viewcvs.conf</code> settings and ... pray.
	<li>Review any <a 
	 href="http://sourceforge.net/tracker/?atid=118760&group_id=18760&func=browse">
	 bug reports, that are still marked open.</a>
	<li>Edit the file <code>lib/viewcvs.py</code>  and remove the
	 <tt>"-dev"</tt> suffix from <code>__version__</code>.  The remainder 
	 should be of the form X.Y, where X is a positive number and 
	 Y is a single digit.
	<li>commit this changed version of <code>lib/viewcvs.py</code>
	 and than <code>cvs tag V</code><i>X</i><code>_</code><i>Y</i>, where
	 <i>X</i> and <i>Y</i> should be replaced by the release number
	 from above.  If a developer is willing to volunteer as a
	 bug fix patch release manager, it is now possible to start here
	 at this point with a feature freezed branch using the command 
	 <blockquote>
         <code>cvs tag -b V</code><i>X</i><code>_</code><i>Y</i><code>_maint</code>
	 </blockquote>
	<li>go into an empty directory and run the command:
	  <blockquote>
	   <code>tools/make-release V</code><i>X_Y</i> <code>viewcvs-</code><i>X.Y</i>
	  </blockquote>
	 This step requires anonymous CVS access to repository at SourceForge.
	<li>pack the content of this <code>viewcvs-</code><i>X.Y</i> directory
	 into a tarball.  
	<li>Upload the created tarball into the download files section of the
	 ViewCVS project at SourceForge. 
	 <br><b>Greg:</b><i>Could you please elaborate this step?</i>
	<li>Edit the file <code>lib/viewcvs.py</code> again and this time 
	 increment the <code>__version__</code> for the next release cycle,
	 again append the <code>"-dev"</code> to the version and again
	 <blockquote>
	  <code>cvs commit -m "new release cycle begins" lib/viewcvs.py</code>.
	 </blockquote>
	<li>Write an announcement explaining all the cool new features
	  and put it out to:
	  <ul>
	   <li><a href="http://www.freshmeat.net"><i>www.freshmeat.net</i></a>
	   <li><a href="http://www.vex.net/parnassus/apyllo.py?i=91022454"><i>Vaults of Parnassus</i></a>
	   <li><a href="news:comp.lang.python">comp.lang.python</a>
	   <li><i>Where else? I dunno. Suggestions welcome.</i>
	  </ul>
      </ol>
     </td></tr>
    </table>

    <hr>
    <address><a href="mailto:viewcvs-dev@lyra.org">ViewCVS Group</a></address>
<!-- Created: Thu Oct 18 09:05:40 CEST 2001 -->
<!-- hhmts start -->
Last modified: Mon Nov 19 20:25:38 CEST 2001
<!-- hhmts end -->
  </body>
</html>