aboutsummaryrefslogtreecommitdiffstats
path: root/admin/www/devs.html
blob: 6c27adcab09183db30737a57e85d85e2cbf964bf (plain) (blame)
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html4/loose.dtd" >
<html>
<!-- THIS PAGE IS AUTOMATICALLY GENERATED.  DO NOT EDIT. -->
<!-- Sat Feb 12 12:13:21 2005 -->
<!-- USING HT2HTML 2.0 -->
<!-- SEE http://ht2html.sf.net -->
<!-- User-specified headers:
Title: Mailman Developer Resources

-->

<head>
<title>Mailman Developer Resources</title>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" >
<meta name="generator" content="HT2HTML/2.0" >
<style type="text/css">
body { margin: 0px; }
</style>
</head>
<body bgcolor="#ffffff" text="#000000"
      marginwidth="0" marginheight="0"
      link="#0000bb"  vlink="#551a8b"
      alink="#ff0000">
<!-- start of page table -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<!-- start of banner row -->
<tr>
<!-- start of corner cells -->
<td width="150" valign="middle" bgcolor="white" class="corner">

<center>
    <a href="./index.html">
    <img border=0 src="./images/logo-70.jpg"></a></center> </td>
<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
<!-- end of corner cells -->
<!-- start of banner -->
<td width="90%" bgcolor="#eecfa1" class="banner">
<!-- start of site links table -->
<table width="100%" border="0"
       CELLSPACING=0 CELLPADDING=0
       bgcolor="#ffffff">
<tr>
    <td bgcolor="#eecfa1">
<a href="./index.html">Home</a>
    </td>
    <td bgcolor="#eecfa1">
<a href="./security.html">Security</a>
    </td>
    <td bgcolor="#eecfa1">
<a href="./docs.html">Documentation</a>
    </td>
    <td bgcolor="#eecfa1">
<a href="./lists.html">Mailing lists</a>
    </td>
</tr><tr>
    <td bgcolor="#eecfa1">
&nbsp;
    </td>
    <td bgcolor="#eecfa1">
<a href="./help.html">Help</a>
    </td>
    <td bgcolor="#eecfa1">
<a href="./download.html">Download</a>
    </td>
    <td bgcolor="#eecfa1">
<b>Developers</b>
    </td>
</tr>
</table><!-- end of site links table -->

</td><!-- end of banner -->
</tr><!-- end of banner row -->
<tr><!-- start of sidebar/body row -->
<!-- start of sidebar cells -->
<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
<!-- start of sidebar table -->
<table width="100%" border="0" cellspacing="0" cellpadding="3"
       bgcolor="#ffffff">
<tr><td bgcolor="#36648b"><b><font color="#ffffff">
Developer Exits
</font></b></td></tr>
<tr><td bgcolor="#eecfa1">
<a href="http://sourceforge.net/projects/mailman">SourceForge Project Page</a>
</td></tr>
<tr><td bgcolor="#eecfa1">
<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/">Mailman Wiki</a>
</td></tr>
<tr><td bgcolor="#eecfa1">
<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanThreePointOh">Mailman 3.0 Wiki</a>
</td></tr>
<tr><td bgcolor="#eecfa1">
<a href="http://mail.python.org/mailman/listinfo/mailman-developers">mailman-developers list</a>
</td></tr>
<tr><td bgcolor="#eecfa1">
<a href="http://demo.iuveno-net.de/iuveno/Products/ZMailman/">ZMailman</a>
</td></tr>
<tr><td bgcolor="#eecfa1">&nbsp;</td></tr>
<tr><td bgcolor="#36648b"><b><font color="#ffffff">
Email Us
</font></b></td></tr>
<tr><td bgcolor="#eecfa1">
<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
</td></tr>
<tr><td bgcolor="#eecfa1">
&nbsp;
</td></tr>
<tr><td bgcolor="#eecfa1">
<a href="http://www.python.org/"><img border=0
                          src="./images/PythonPoweredSmall.png"
                          ></a>&nbsp;<a href="http://sourceforge.net"><img 
                          src="http://sourceforge.net/sflogo.php?group_id=103"
                          width="88" height="31" border="0"
                          alt="SourceForge Logo"></a>
</td></tr>
<tr><td bgcolor="#eecfa1">
&nbsp;
</td></tr>
<tr><td bgcolor="#eecfa1">
&copy; 1998-2005
Free Software Foundation, Inc.  Verbatim copying and distribution of this
entire article is permitted in any medium, provided this notice is preserved.

</td></tr>
</table><!-- end of sidebar table -->

</td>
<td width="15">&nbsp;&nbsp;</td><!--spacer-->
<!-- end of sidebar cell -->
<!-- start of body cell -->
<td valign="top" width="90%" class="body"><br>
<h3>Developer Resources</h3>

If you're the kind of person who loves to get elbow deep in code,
there are lots of opportunities to dig into Mailman.  You may want to
find a project on our Mailman
<a href="todo.html">TODO list</a> or on the
<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/">Mailman
design notes wiki</a>.  Because Wikis are intended to be
collaborative, you're free to contribute to this page in true Wiki
fashion.  You will also definitely want to subscribe
to the <a href="http://mail.python.org/mailman/listinfo/mailman-developers"
>mailman-developers</a> mailing list.

<h3>SourceForge Project Page</h3>

Developers should start with the
<a href="http://sourceforge.net/projects/mailman">Mailman project at
SourceForge</a>.  All patches and bugs should be submitted here so
they won't get lost, although it is also requested that you inform the
mailman-developers list about your submissions.

<h3>IRC</h3>

Some of the Mailman developers also occasionally hang out on the
<em>mailman</em> IRC channel at openprojects.net, though attendance
has been spotty lately.

<!--table-stop-->

<h3>Future plans</h3>

Now that Mailman 2.1 has been released, I want to start thinking about
what will be in <a
href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanThreePointOh">Mailman
3.0</a>.  I intend to use the wiki for most design artifacts, and the
mailman-developers mailing list for most discussions.  The items that
are high on my list (which is by no means complete or definitive)
include:

<ul>
<li><b>Consolidated user database</b> -- A user should have just one
account for every mailing list they are members of at a site, and they
should be able to manage all their options through this account.
It should be possible to integrate these databases with a site's
existing user management system to reduce duplication of data and
effort.

<p><li><b>Unified template system</b> -- Mailman has a somewhat fractured
and inconvenient templating system, using both a homegrown HTML object
model in Python and coarse templates filled in with data at rendering
time.  It can be near impossible to change the look and feel of the
administration pages, and a small change to the u/i of other pages
requires updates in all supported languages.  I want to use a
templating system like
<a href="http://dev.zope.org/Wikis/DevSite/Projects/ZPT/">ZPT</a> or
<a href="http://www.mems-exchange.org/software/quixote/">Quixote</a>.
Actually, I plan to generalize the web interface so that many different
templating systems could be used, although we'll pick one to ship by
default.

<p><li><b>A Real Database</b> -- Mailman uses an inefficient persistency
system based on Python pickles, and every mailing list has its own
pickled state.  This has several disadvantages, including poor
scalability, difficulty in doing cross-mailing list operations, and
the virtual host limitation on list names.  Mailman 3.0 will use a
real database, perhaps based on
<a href="http://www.zope.org/Wikis/ZODB/">ZODB</a> or
<a href="http://www.sleepycat.com">BerkeleyDB</a>.  Again, the goal is
to generalize the interface to the backend database so that others can
be used, but choose one and ship it by default.

<p><li><b>Component Architecture</b> -- Zope3's
<a href="http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/"
>component architecture</a> provides some very nice organizational
tools and software development methodologies.  We'll be adopting many
of these for Mailman 3.0, which will allow us to do the kinds of
templating and database generalization described above.
</ul>

Stephan Richter has let an effort called
<a href="http://demo.iuveno-net.de/iuveno/Products/ZMailman/"
>ZMailman</a> for integrating Zope and Mailman.  I consider this a
proof of concept of some of the ideas outlined above.

</td><!-- end of body cell -->
</tr><!-- end of sidebar/body row -->
</table><!-- end of page table -->
</body></html>