~sambuddhabasu1/mailman/fix_mailman_run_error

6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
1
================================================
6461 by bwarsaw
reorganize READMEs and other documentation. more still to do.
2
Mailman - The GNU Mailing List Management System
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
3
================================================
4
7078 by Barry Warsaw
* Schema migrations have been implemented.
5
Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
6461 by bwarsaw
reorganize READMEs and other documentation. more still to do.
6
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
7
8
Here is a history of user visible changes to Mailman.
9
6889 by Barry Warsaw
A bit of clean up.
10
7133 by Barry Warsaw
Beta 2 of course.
11
3.0 beta 2 -- "Freeze"
7132 by Barry Warsaw
Architecture
12
======================
13
(20XX-XX-XX)
14
15
Architecture
16
------------
17
 * Internally, all datetimes are kept in the UTC timezone, however because of
18
   LP: #280708, they are stored in the database in naive format.
19
 * `received_time` is now added to the message metadata by the LMTP runner
20
   instead of by `Switchboard.enqueue()`.  This latter no longer depends on
21
   `received_time` in the metadata.
22
 * The `ArchiveRunner` no longer acquires a lock before it calls the
23
   individual archiver implementations, since not all of them need a lock.  If
24
   they do, the implementations must acquire said lock themselves.
7139.1.1 by Barry Warsaw
* The `news` runner and queue has been renamed to the more accurate `nntp`.
25
 * The `news` runner and queue has been renamed to the more accurate `nntp`.
7139.1.2 by Barry Warsaw
More tests, though still not 100% coverage.
26
   The runner has also been ported to Mailman 3 (LP: #967409).  Beta testers
27
   can can safely remove `$var_dir/queue/news`.
7132 by Barry Warsaw
Architecture
28
29
Configuration
30
-------------
31
 * New configuration variables `clobber_date` and `clobber_skew` supported in
32
   every `[archiver.<name>]` section.  These are used to determine under what
33
   circumstances a message destined for a specific archiver should have its
7134 by Barry Warsaw
Add bug tag
34
   `Date:` header clobbered.  (LP: #963612)
7139.1.4 by Barry Warsaw
The port of NNTPRunner to Mailman 3 is complete.
35
 * Configuration schema variable changes:
36
   [nntp]username -> [nntp]user
37
   [nntp]port (added)
7132 by Barry Warsaw
Architecture
38
7138 by Barry Warsaw
* Some additional documentation on related components such as Postorius and
39
Documentation
40
-------------
41
 * Some additional documentation on related components such as Postorius and
42
   hyperkitty have been added, given by Stephen J Turnbull.
43
7132 by Barry Warsaw
Architecture
44
7056 by Barry Warsaw
Bump version numbers
45
3.0 beta 1 -- "The Twilight Zone"
46
=================================
7128 by Barry Warsaw
Prepping for 3.0b1.
47
(2012-03-23)
7056 by Barry Warsaw
Bump version numbers
48
7062 by Barry Warsaw
* Implement the style manager as a utility instead of an attribute hanging
49
Architecture
50
------------
7078 by Barry Warsaw
* Schema migrations have been implemented.
51
 * Schema migrations have been implemented.
7062 by Barry Warsaw
* Implement the style manager as a utility instead of an attribute hanging
52
 * Implement the style manager as a utility instead of an attribute hanging
53
   off the `mailman.config.config` object.
7060 by Barry Warsaw
PostgreSQL support contributed by Stephen A. Goss, with refactoring and test
54
 * PostgreSQL support contributed by Stephen A. Goss. (LP: #860159)
7066 by Barry Warsaw
* Stop adding the X-BeenThere header.
55
 * Separate out the RFC 2369 header adding handler.
56
 * Dynamically calculate the `List-Id` header instead of storing it in the
57
   database.  This means it cannot be changed.
7090 by Barry Warsaw
* Major redesign of the template search system, fixing LP: #788309. $var_dir
58
 * Major redesign of the template search system, fixing LP: #788309.  $var_dir
59
   is now used when search for all template overrides, site, domain, or
60
   mailing list.  The in-tree English templates are used only as a last
61
   fallback.
7091 by Barry Warsaw
* Support downloading templates by URI, including mailman:// URIs. This is
62
 * Support downloading templates by URI, including mailman:// URIs.  This is
7097 by Barry Warsaw
Template indirection now also in effect for regular and digest headers and
63
   used in welcome and goodbye messages, as well as regular and digest headers
64
   and footers, and supports both language and mailing list specifications.
65
   E.g. mailman:///test@example.com/it/welcome.txt
7099 by Barry Warsaw
Update NEWS
66
 * $user_password is no longer supported as a placeholder in headers and
67
   footers.
7103 by Barry Warsaw
* Mailing lists get multiple chains and pipelines. For example, normal
68
 * Mailing lists get multiple chains and pipelines.  For example, normal
69
   postings go through the `posting_chain` while messages to owners to through
70
   `owners_chain`.  The default `built-in` chain is renamed to
71
   `default-posting-chain` while the `built-in` pipeline is renamed
72
   `default-posting-pipeline`.
7106 by Barry Warsaw
* The experimental `maildir` runner is removed. Use LMTP.
73
 * The experimental `maildir` runner is removed.  Use LMTP.
7111 by Barry Warsaw
* The LMTP server now requires that the incoming message have a `Message-ID`,
74
 * The LMTP server now requires that the incoming message have a `Message-ID`,
75
   otherwise it rejects the message with a 550 error.  Also, the LMTP server
76
   adds the `X-Message-ID-Hash` header automatically.  The `inject` cli
77
   command will also add the `X-Message-ID-Hash` header, but it will craft a
78
   `Message-ID` header first if one is missing from the injected text.  Also,
79
   `inject` will always set the correct value for the `original_size`
80
   attribute on the message object, instead of trusting a possibly incorrect
81
   value if it's already set.  The individual `IArchiver` implementations no
82
   longer set the `X-Message-ID-Hash` header.
7113.1.1 by Barry Warsaw
* The Prototype archiver now stores its files in maildir format inside of
83
 * The Prototype archiver now stores its files in maildir format inside of
84
   `$var_dir/archives/prototype`, given by Toshio Kuratomi.
7123 by Barry Warsaw
Merge the Pipermail eradication branch. The scrubber is also removed.
85
 * Improved "8 mile high" document distilled by Stephen J Turnbull from the
7122 by Barry Warsaw
* Improved "8 mile high" document distilled by Stephen Turnbull from the
86
   Pycon 2012 Mailman 3 sprint.  Also improvements to the Sphinx build given
87
   by Andrea Crotti.
7112.2.2 by Barry Warsaw
* Pipermail has been eradicated.
88
 * Pipermail has been eradicated.
89
 * Configuration variable `[mailman]filtered_messages_are_preservable`
90
   controls whether messages which have their top-level `Content-Type`
91
   filtered out can be preserved in the `bad` queue by list owners.
92
 * Configuration section `[scrubber]` removed, as is the scrubber handler.
93
   This handler was essentially incompatible with Mailman 3 since it required
94
   coordination with Pipermail to store attachments on disk.
7091 by Barry Warsaw
* Support downloading templates by URI, including mailman:// URIs. This is
95
96
Database
97
--------
98
 * Schema changes:
7097 by Barry Warsaw
Template indirection now also in effect for regular and digest headers and
99
   - welcome_msg      -> welcome_message_uri
100
   - goodbye_msg      -> goodbye_message_uri
7091 by Barry Warsaw
* Support downloading templates by URI, including mailman:// URIs. This is
101
   - send_welcome_msg -> send_welcome_message
102
   - send_goodbye_msg -> send_goodbye_message
7097 by Barry Warsaw
Template indirection now also in effect for regular and digest headers and
103
   - msg_header       -> header_uri
104
   - msg_footer       -> footer_uri
105
   - digest_header    -> digest_header_uri
106
   - digest_footer    -> digest_footer_uri
7103 by Barry Warsaw
* Mailing lists get multiple chains and pipelines. For example, normal
107
   - start_chain      -> posting_chain
108
   - pipeline         -> posting_pipeline
7118.1.1 by Barry Warsaw
Schema change. After discussion at Pycon, we decided to change "real_name" to
109
   - real_name        -> display_name (mailinglist, user, address)
7112.2.2 by Barry Warsaw
* Pipermail has been eradicated.
110
 * Schema additions:
111
   - mailinglist.filter_action
7125.1.2 by Barry Warsaw
Add a simple owner processing chain.
112
   - mailinglist.owner_chain
113
   - mailinglist.owner_pipeline
7060 by Barry Warsaw
PostgreSQL support contributed by Stephen A. Goss, with refactoring and test
114
7076 by Barry Warsaw
* Held messages can now be moderated through the REST API. Mailing list
115
REST
116
----
117
 * Held messages can now be moderated through the REST API.  Mailing list
118
   resources now accept a `held` path component.  GETing this returns all held
119
   messages for the mailing list.  POSTing to a specific request id under this
120
   url can dispose of the message using `Action` enums.
7120 by Barry Warsaw
* Mailing list resources now have a `member_count` attribute which gives the
121
 * Mailing list resources now have a `member_count` attribute which gives the
122
   number of subscribed members.  Given by Toshio Kuratomi.
7076 by Barry Warsaw
* Held messages can now be moderated through the REST API. Mailing list
123
7070 by Barry Warsaw
A faster implementation of SubscriptionService.get_members().
124
Interfaces
125
----------
126
 * Add property `IUserManager.members` to return all `IMembers` in the system.
7075 by Barry Warsaw
* `IMailTransportAgentAliases` now explicitly accepts duck-typed arguments.
127
 * Add property `IListmanager.name_components` which returns 2-tuples for
7073 by Barry Warsaw
* Add property `IListmanager.name_compoments` which returns 2-tuples for
128
   every mailing list as (list_name, mail_host).
7074 by Barry Warsaw
* Remove previously deprecated `IListManager.get_mailing_lists()`.
129
 * Remove previously deprecated `IListManager.get_mailing_lists()`.
7075 by Barry Warsaw
* `IMailTransportAgentAliases` now explicitly accepts duck-typed arguments.
130
 * `IMailTransportAgentAliases` now explicitly accepts duck-typed arguments.
7076 by Barry Warsaw
* Held messages can now be moderated through the REST API. Mailing list
131
 * `IRequests` interface is removed.  Now just use adaptation from
132
   `IListRequests` directly (which takes an `IMailingList` object).
133
 * `handle_message()` now allows for `Action.hold` which is synonymous with
134
   `Action.defer` (since the message is already being held).
135
 * `IListRequests.get_request()` now takes an optional `request_type`
136
   argument to narrow the search for the given request.
7091 by Barry Warsaw
* Support downloading templates by URI, including mailman:// URIs. This is
137
 * New `ITemplateLoader` utility.
7096 by Barry Warsaw
Fix welcome_message_uri to do the placeholder interpolations guaranteed in the
138
 * `ILanguageManager.add()` returns the `ILanguage` object just created.
7097 by Barry Warsaw
Template indirection now also in effect for regular and digest headers and
139
 * `IMailinglist.decorators` removed; it was unused
7118.1.1 by Barry Warsaw
Schema change. After discussion at Pycon, we decided to change "real_name" to
140
 * `IMailingList.real_name` -> `IMailingList.display_name`
141
 * `IUser.real_name` -> `IUser.display_name`
142
 * `IAddress.real_name` -> `IAddress.display_name`
7121 by Barry Warsaw
* Add property `IRoster.member_count`.
143
 * Add property `IRoster.member_count`.
7070 by Barry Warsaw
A faster implementation of SubscriptionService.get_members().
144
7066.1.1 by Barry Warsaw
* `bin/mailman shell` is an alias for `withlist`.
145
Commands
146
--------
7107 by Barry Warsaw
* IPython support in `bin/mailman shell` contributed by Andrea Crotti.
147
 * IPython support in `bin/mailman shell` contributed by Andrea Crotti.
148
   (LP: #949926).
7080 by Barry Warsaw
* The `mailman.cfg` configuration file will now automatically be detected if
149
 * The `mailman.cfg` configuration file will now automatically be detected if
150
   it exists in an `etc` directory which is a sibling of argv0.
7066.1.1 by Barry Warsaw
* `bin/mailman shell` is an alias for `withlist`.
151
 * `bin/mailman shell` is an alias for `withlist`.
7079 by Barry Warsaw
* The `confirm` email command now properly handles `Re:`-like prefixes, even
152
 * The `confirm` email command now properly handles `Re:`-like prefixes, even
153
   if they contain non-ASCII characters.  (LP: #685261)
7085 by Barry Warsaw
* The `join` email command no longer accepts an `address=` argument. Its
154
 * The `join` email command no longer accepts an `address=` argument.  Its
155
   `digest=` argument now accepts the following values: `no` (for regular
7086 by Barry Warsaw
print functions!
156
   delivery), `mime`, or `plain`.
7089 by Barry Warsaw
* Added a `help` email command.
157
 * Added a `help` email command.
7094 by Barry Warsaw
* A welcome message is sent when the user confirms their subscription via
158
 * A welcome message is sent when the user confirms their subscription via
159
   email.
7110 by Barry Warsaw
* Global ``-C`` option now accepts an absolute path to the configuration
160
 * Global ``-C`` option now accepts an absolute path to the configuration
161
   file.  Given by Andrea Crotti.  (LP: #953707)
7066.1.1 by Barry Warsaw
* `bin/mailman shell` is an alias for `withlist`.
162
7061 by Barry Warsaw
* Fixed KeyError in retry runner, contributed by Stephen A. Goss.
163
Bug fixes
164
---------
7117 by Barry Warsaw
* Subscription disabled probe warning notification messages are now sent
165
 * Subscription disabled probe warning notification messages are now sent
166
   without a `Precedence:` header.  Given by Mark Sapiro. (LP: #808821)
7061 by Barry Warsaw
* Fixed KeyError in retry runner, contributed by Stephen A. Goss.
167
 * Fixed KeyError in retry runner, contributed by Stephen A. Goss.
168
   (LP: #872391)
7062 by Barry Warsaw
* Implement the style manager as a utility instead of an attribute hanging
169
 * Fixed bogus use of `bounce_processing` attribute (should have been
170
   `process_bounces`, with thanks to Vincent Fretin.  (LP: #876774)
7109 by Barry Warsaw
Typo
171
 * Fix `test_moderation` for timezones east of UTC+0000, given by blacktav.
7108 by Barry Warsaw
* Fix `test_moderation` for timezones East of UTC+0000, given by blacktav.
172
   (LP: #890675)
7061 by Barry Warsaw
* Fixed KeyError in retry runner, contributed by Stephen A. Goss.
173
7056 by Barry Warsaw
Bump version numbers
174
6999 by Barry Warsaw
* Fix styleguide (given by Mark Sapiro).
175
3.0 alpha 8 -- "Where's My Thing?"
176
==================================
7053 by Barry Warsaw
Version number bump for 3.0.0a8 release.
177
(2011-09-23)
6999 by Barry Warsaw
* Fix styleguide (given by Mark Sapiro).
178
7021 by Barry Warsaw
NEWS file updates
179
Architecture
180
------------
7027.1.1 by Barry Warsaw
Factor out bounce detection to flufl.bounce.
181
 * Factor out bounce detection to `flufl.bounce`.
7021 by Barry Warsaw
NEWS file updates
182
 * Unrecognized bounces can now also be forwarded to the site owner.
183
 * mailman.qrunner log is renamed to mailman.runner
184
 * master-qrunner.lck -> master.lck
185
 * master-qrunner.pid -> master.pid
7037 by Barry Warsaw
* Four new events are created, and notifications are sent during mailing list
186
 * Four new events are created, and notifications are sent during mailing list
187
   lifecycle changes:
188
   - ListCreatingEvent - sent before the mailing list is created
189
   - ListCreatedEvent  - sent after the mailing list is created
190
   - ListDeletingEvent - sent before the mailing list is deleted
191
   - ListDeletedEvent  - sent after the mailing list is deleted
7048 by Barry Warsaw
* Four new events are created, and notifications are sent during domain
192
 * Four new events are created, and notifications are sent during domain
193
   lifecycle changes:
194
   - DomainCreatingEvent - sent before the domain is created
195
   - DomainCreatedEvent  - sent after the domain is created
196
   - DomainDeletingEvent - sent before the domain is deleted
197
   - DomainDeletedEvent  - sent after the domain is deleted
198
 * Using the above events, when a domain is deleted, associated mailing lists
199
   are deleted.  (LP: #837526)
7040 by Barry Warsaw
Rename IDomain.email_host to .mail_host for consistency. Similarly in the
200
 * IDomain.email_host -> .mail_host (LP: #831660)
7043 by Barry Warsaw
* User and Member ids are now proper UUIDs. The UUIDs are pended as unicodes,
201
 * User and Member ids are now proper UUIDs.
7052 by Barry Warsaw
Improved the way flufl.enum.Enums are stored in the database. Now, they
202
 * Improved the way enums are stored in the database, so that they are more
203
   explicitly expressed in the code, and more database efficient.
7021 by Barry Warsaw
NEWS file updates
204
7026 by Barry Warsaw
* The IMailingList attribute ``host_name`` has been renamed to ``mail_host``
205
REST
206
----
7051 by Barry Warsaw
* Preferences for addresses, users, and members can be accessed, changed, and
207
 * Preferences for addresses, users, and members can be accessed, changed, and
208
   deleted through the REST interface.  Hierarchical, combined preferences for
209
   members, and system preferences can be read through the REST interface.
210
   (LP: #821438)
7026 by Barry Warsaw
* The IMailingList attribute ``host_name`` has been renamed to ``mail_host``
211
 * The IMailingList attribute ``host_name`` has been renamed to ``mail_host``
212
   for consistency.  This changes the REST API for mailing list
213
   resources. (LP: #787599)
7031 by Barry Warsaw
* New REST resource http://.../members/find can be POSTed to in order to find
214
 * New REST resource http://.../members/find can be POSTed to in order to find
7037 by Barry Warsaw
* Four new events are created, and notifications are sent during mailing list
215
   member records.  Optional arguments are `subscriber` (email address to
216
   search for), `fqdn_listname`, and `role` (i.e. MemberRole).  (LP: #799612)
7047 by Barry Warsaw
* You can now query or change a member's `delivery_mode` attribute through
217
 * You can now query or change a member's `delivery_mode` attribute through
218
   the REST API (LP: #833132).  Given by Stephen A. Goss.
7044 by Barry Warsaw
* New REST resource http://.../<domain>/lists can be GETed in order to find
219
 * New REST resource http://.../<domain>/lists can be GETed in order to find
220
   all the mailing lists in a specific domain (LP: #829765).  Given by
221
   Stephen A. Goss.
7032 by Barry Warsaw
Fixed broken API for getting a membership via role and email from a mailing
222
 * Fixed /lists/<fqdn_listname>/<role>/<email> (LP: #825570)
7033 by Barry Warsaw
Remove role plurals from /lists/<fqdn_listname/rosters/<role>
223
 * Remove role plurals from /lists/<fqdn_listname/rosters/<role>
7034 by Barry Warsaw
* Fixed incorrect error code for /members/<bogus> (LP: #821020). Given by
224
 * Fixed incorrect error code for /members/<bogus> (LP: #821020).  Given by
225
   Stephen A. Goss.
7035 by Barry Warsaw
* DELETE users via the REST API. (LP: #820660)
226
 * DELETE users via the REST API.  (LP: #820660)
7043 by Barry Warsaw
* User and Member ids are now proper UUIDs. The UUIDs are pended as unicodes,
227
 * Moderators and owners can be added via REST (LP: #834130).  Given by
228
   Stephen A. Goss.
7045 by Barry Warsaw
* Getting the roster or configuration of a nonexistent list did not give a
229
 * Getting the roster or configuration of a nonexistent list did not give a
230
   404 error (LP: #837676).  Given by Stephen A. Goss.
7046 by Barry Warsaw
* PATCHing an invalid attribute on a member did not give a 400 error
231
 * PATCHing an invalid attribute on a member did not give a 400 error
232
   (LP: #833376).  Given by Stephen A. Goss.
7050 by Barry Warsaw
* Getting the memberships for a non-existent address did not give a 404 error
233
 * Getting the memberships for a non-existent address did not give a 404 error
234
   (LP: #848103).  Given by Stephen A. Goss.
7026 by Barry Warsaw
* The IMailingList attribute ``host_name`` has been renamed to ``mail_host``
235
7021 by Barry Warsaw
NEWS file updates
236
Commands
237
--------
7058 by Barry Warsaw
* `bin/mailman start --force` option is fixed. (LP: #869317)
238
 * `bin/qrunner` is renamed to `bin/runner`.
239
 * `bin/mailman aliases` gains `-f` and `-s` options.
7021 by Barry Warsaw
NEWS file updates
240
 * `bin/mailman create` no longer allows a list to be created with bogus owner
241
   addresses.  (LP: #778687)
7058 by Barry Warsaw
* `bin/mailman start --force` option is fixed. (LP: #869317)
242
 * `bin/mailman start --force` option is fixed.  (LP: #869317)
7021 by Barry Warsaw
NEWS file updates
243
7018 by Barry Warsaw
Update COPYING file to GPLv3. (LP: #790994)
244
Documentation
245
-------------
246
 * Update the COPYING file to contain the GPLv3.  (LP: #790994)
7021 by Barry Warsaw
NEWS file updates
247
 * Major terminology change: ban the terms "queue runners" and "qrunners" since
248
   not all runners manage queue directories.  Just call them "runners".  Also,
249
   the master is now just called "the master runner".
7018 by Barry Warsaw
Update COPYING file to GPLv3. (LP: #790994)
250
7005 by Barry Warsaw
NEWS
251
Testing
252
-------
253
 * New configuration variable in [devmode] section, called `wait` which sets
254
   the timeout value used in the test suite for starting up subprocesses.
7036 by Barry Warsaw
* Handle SIGTERM in the REST server so that the test suite always shuts down
255
 * Handle SIGTERM in the REST server so that the test suite always shuts down
256
   correctly.  (LP: #770328)
7005 by Barry Warsaw
NEWS
257
7043 by Barry Warsaw
* User and Member ids are now proper UUIDs. The UUIDs are pended as unicodes,
258
Other bugs and changes
259
----------------------
7038 by Barry Warsaw
* Moderating a message with Action.accept now sends the message. (LP: #827697)
260
 * Moderating a message with Action.accept now sends the message. (LP: #827697)
7041 by Barry Warsaw
* Fix AttributeError triggered by i18n call in autorespond_to_sender()
261
 * Fix AttributeError triggered by i18n call in autorespond_to_sender()
262
   (LP: #827060)
7042 by Barry Warsaw
* Local timezone in X-Mailman-Approved-At caused test failure. (LP: #832404)
263
 * Local timezone in X-Mailman-Approved-At caused test failure. (LP: #832404)
7043 by Barry Warsaw
* User and Member ids are now proper UUIDs. The UUIDs are pended as unicodes,
264
 * InvalidEmailAddressError no longer repr()'s its value.
7049 by Barry Warsaw
* Rewrote a test for compatibility between Python 2.6 and 2.7. (LP: #833208)
265
 * Rewrote a test for compatibility between Python 2.6 and 2.7. (LP: #833208)
7059 by Barry Warsaw
* Fixed Postfix alias file generation when more than one mailing list
266
 * Fixed Postfix alias file generation when more than one mailing list
267
   exists.  (LP: #874929).  Given by Vincent Fretin.
7038 by Barry Warsaw
* Moderating a message with Action.accept now sends the message. (LP: #827697)
268
6999 by Barry Warsaw
* Fix styleguide (given by Mark Sapiro).
269
6953 by Barry Warsaw
Post release version bump.
270
3.0 alpha 7 -- "Mission"
271
========================
6997 by Barry Warsaw
Let's release 3.0.0a7 (Mission) today!
272
(2011-04-29)
6953 by Barry Warsaw
Post release version bump.
273
6973 by Barry Warsaw
Catch up on news for 3.0.0a7.
274
Architecture
275
------------
6993 by Barry Warsaw
Update NEWS.txt.
276
 * Significant updates to the subscription model.  Members can now subscribe
277
   with a preferred address, and changes to that will be immediately reflected
278
   in mailing list subscriptions.  Users who subscribe with an explicit
279
   address can easily change to a different address, as long as that address
280
   is verified.  (LP: #643949)
281
 * IUsers and IMembers are now assigned a unique, random, immutable id.
282
 * IUsers now have created_on and .preferred_address properties.
283
 * IMembers now have a .user attribute for easy access to the subscribed user.
284
 * When created with add_member(), passwords are always stored encrypted.
6973 by Barry Warsaw
Catch up on news for 3.0.0a7.
285
 * In all interfaces, "email" refers to the textual email address while
286
   "address" refers to the `IAddress` object.
287
 * mailman.chains.base.Chain no longer self registers.
288
 * New member and nonmember moderation rules and chains.  This effectively
289
   ports moderation rules from Mailman 2 and replaces attributes such as
290
   member_moderation_action, default_member_moderation, and
291
   generic_nonmember_action.  Now, nonmembers exist as subscriptions on a
292
   mailing list and members have a moderation_action attribute which describes
293
   the disposition for postings from that address.
294
 * Member.is_moderated was removed because of the above change.
295
 * default_member_action and default_nonmember_action were added to mailing
296
   lists.
297
 * All sender addresses are registered (unverified) with the user manager by
298
   the incoming queue runner.  This way, nonmember moderation rules will
299
   always have an IAddress that they can subscribe to the list (as
300
   MemberRole.nonmember).
301
 * Support for SMTP AUTH added via smtp_user and smtp_pass configuration
302
   variables in the [mta] section.  (LP: #490044)
6993 by Barry Warsaw
Update NEWS.txt.
303
 * IEmailValidator interface for pluggable validation of email addresses.
304
 * .subscribe() is moved from the IAddress to the IMailingList
305
 * IAddresses get their registered_on attribute set when the object is created.
306
307
Configuration
308
-------------
309
 * [devmode] section gets a new 'testing' variable.
310
 * Added password_scheme and password_length settings  for defining the
311
   default password encryption scheme.
312
 * creator_pw_file and site_pw_file are removed.
6973 by Barry Warsaw
Catch up on news for 3.0.0a7.
313
314
Commands
315
--------
316
 * 'bin/mailman start' does a better job of producing an error when Mailman is
317
   already running.
318
 * 'bin/mailman status' added for providing command line status on the master
319
   queue runner watcher process.
320
 * 'bin/mailman info' now prints the REST root url and credentials.
6993 by Barry Warsaw
Update NEWS.txt.
321
 * mmsitepass removed; there is no more site password.
6954 by Barry Warsaw
Fix typo in scan_message(). (LP: #645897)
322
6957 by Barry Warsaw
Add Basic Auth support to the REST API, given by Jimmy Bergman, with style
323
REST
324
----
6973 by Barry Warsaw
Catch up on news for 3.0.0a7.
325
 * Add Basic Auth support for REST API security.  (Jimmy Bergman)
326
 * Include the fqdn_listname and email address in the member JSON
327
   representation.
328
 * Added reply_goes_to_list, send_welcome_msg, welcome_msg,
329
   default_member_moderation to the mailing list's writable attributes in the
330
   REST service.  (Jimmy Bergman)
6993 by Barry Warsaw
Update NEWS.txt.
331
 * Expose the new membership model to the REST API.  Canonical member resource
332
   URLs are now much shorter and live in their own top-level namespace instead
333
   of within the mailing list's namespace.
334
 * /addresses/<email>/memberships gets all the memberships for a given email
335
   address.
336
 * /users is a new top-level URL under which user information can be
337
   accessed.  Posting to this creates new users.
338
 * Users can subscribe to mailing lists through the REST API.
339
 * Domains can be deleted via the REST API.
340
 * PUT and PATCH to a list configuration now returns a 204 (No Content).
6957 by Barry Warsaw
Add Basic Auth support to the REST API, given by Jimmy Bergman, with style
341
6959 by Barry Warsaw
Support Python 2.7. (LP: 667472)
342
Build
343
-----
344
 * Support Python 2.7. (LP: #667472)
6973 by Barry Warsaw
Catch up on news for 3.0.0a7.
345
 * Disable site-packages in buildout.cfg because of LP: #659231.
346
 * Don't include eggs/ or parts/ in the source tarball. (LP: #656946)
347
 * flufl.lock is now required instead of locknix.
348
349
Bugs fixed
350
----------
351
 * Typo in scan_message(). (LP: #645897)
6974.1.3 by Barry Warsaw
Fixed a typo in add_member() which prevented subscribing an email address that
352
 * Typo in add_member().  (LP: #710182) (Florian Fuchs)
6995 by Barry Warsaw
Add NEWS entry.
353
 * Re-enable bounce detectors. (LP: #756943)
6993 by Barry Warsaw
Update NEWS.txt.
354
 * Clean up many pyflakes problems; ditching pylint.
6959 by Barry Warsaw
Support Python 2.7. (LP: 667472)
355
6953 by Barry Warsaw
Post release version bump.
356
6877 by Barry Warsaw
Prep for 3.0a6.
357
3.0 alpha 6 -- "Cut to the Chase"
358
=================================
6952 by Barry Warsaw
* Allow X-Approved and X-Approve headers, equivalent to Approved and
359
(2010-09-20)
6877 by Barry Warsaw
Prep for 3.0a6.
360
6883 by Barry Warsaw
The functionality of 'bin/list_members' has been moved to 'bin/mailman
361
Commands
362
--------
363
 * The functionality of 'bin/list_members' has been moved to
6937 by Barry Warsaw
Update NEWS for 3.0a6
364
   'bin/mailman members'.
365
 * 'bin/mailman info' -v/--verbose output displays the file system
6887 by Barry Warsaw
More news.
366
   layout paths Mailman is currently configured to use.
6883 by Barry Warsaw
The functionality of 'bin/list_members' has been moved to 'bin/mailman
367
6886 by Barry Warsaw
News
368
Configuration
369
-------------
370
 * You can now configure the paths Mailman uses for queue files, lock files,
371
   data files, etc. via the configuration file.  Define a file system 'layout'
372
   and then select that layout in the [mailman] section.  Default layouts
373
   include 'local' for putting everything in /var/tmp/mailman, 'dev' for local
374
   development, and 'fhs' for Filesystem Hierarchy Standard 2.3 (LP #490144).
375
 * Queue file directories now live in $var_dir/queues.
376
6937 by Barry Warsaw
Update NEWS for 3.0a6
377
REST
378
----
379
 * lazr.restful has been replaced by restish as the REST publishing technology
380
   used by Mailman.
381
 * New REST API for getting all the members of a roster for a specific mailing
382
   list.
383
 * New REST API for getting and setting a mailing list's configuration.  GET
384
   and PUT are supported to retrieve the current configuration, and set all
385
   the list's writable attributes in one request.  PATCH is supported to
386
   partially update a mailing list's configuration.  Individual options can be
387
   set and retrieved by using subpaths.
388
 * Subscribing an already subscribed member via REST now returns a 409 HTTP
389
   error.  LP: #552917
390
 * Fixed a bug when deleting a list via the REST API.  LP: #601899
391
392
Architecture
393
------------
394
 * X-BeenThere header is removed.
395
 * Mailman no longer touches the Sender or Errors-To headers.
396
 * Chain actions can now fire Zope events in their _process()
397
   implementations.
398
 * Environment variable $MAILMAN_VAR_DIR can be used to control the var/
399
   directory for Mailman's runtime files.  New environment variable
400
   $MAILMAN_UNDER_MASTER_CONTROL is used instead of the qrunner's --subproc/-s
401
   option.
402
403
Miscellaneous
6939 by Barry Warsaw
Doc fixes
404
-------------
6952 by Barry Warsaw
* Allow X-Approved and X-Approve headers, equivalent to Approved and
405
 * Allow X-Approved and X-Approve headers, equivalent to Approved and
406
   Approve. LP: #557750
6937 by Barry Warsaw
Update NEWS for 3.0a6
407
 * Various test failure fixes.  LP: #543618, LP: #544477
408
 * List-Post header is retained in MIME digest messages.  LP: #526143
409
 * Importing from a Mailman 2.1.x list is partially supported.
410
6877 by Barry Warsaw
Prep for 3.0a6.
411
6832 by Barry Warsaw
Bump to version 3.0a5
412
3.0 alpha 5 -- "Distant Early Warning"
413
======================================
6876 by Barry Warsaw
update
414
(2010-01-18)
6871 by Barry Warsaw
Update the NEWS file for 3.0a5.
415
416
REST
417
----
418
 * Add REST API for subscription services.  You can now:
6872 by Barry Warsaw
Fix some markup.
419
420
   - list all members in all mailing lists
421
   - subscribe (and possibly register) an address to a mailing list
422
   - unsubscribe an address from mailing list
6856 by Barry Warsaw
Update NEWS file.
423
424
Commands
425
--------
426
 * 'bin/dumpdb' is now 'bin/mailman qfile'
427
 * 'bin/unshunt' is now 'bin/mailman unshunt'
428
 * Mailman now properly handles the '-join', '-leave', and '-confirm' email
429
   commands and sub-addresses.  '-subscribe' and '-unsubscribe' are aliases
430
   for '-join' and '-leave' respectively.
431
432
Configuration
433
-------------
434
 * devmode settings now live in their own [devmode] section.
435
 * Mailman now searches for a configuration file using this search order.  The
436
   first file that exists is used.
6872 by Barry Warsaw
Fix some markup.
437
438
   - -C config command line argument
439
   - $MAILMAN_CONFIG_FILE environment variable
440
   - ./mailman.cfg
441
   - ~/.mailman.cfg
442
   - /etc/mailman.cfg
6856 by Barry Warsaw
Update NEWS file.
443
6832 by Barry Warsaw
Bump to version 3.0a5
444
6783 by Barry Warsaw
Post-release bump of version number.
445
3.0 alpha 4 -- "Vital Signs"
446
============================
6824 by Barry Warsaw
Update NEWS.txt for 3.0a4.
447
(2009-11-28)
448
449
Commands
450
--------
451
 * 'bin/inject' is now 'bin/mailman inject', with some changes
452
 * 'bin/mailmanctl' is now 'bin/mailman start|stop|reopen|restart'
453
 * 'bin/mailman version' is added (output same as 'bin/mailman --version')
454
 * 'bin/mailman members' command line arguments have changed.  It also
455
   now ignores blank lines and lines that start with #.  It also no longer
456
   quits when it sees an address that's already subscribed.
457
 * 'bin/withlist' is now 'bin/mailman withlist', and its command line
458
   arguments have changed.
459
 * 'bin/mailman lists' command line arguments have changed.
460
 * 'bin/genaliases' is now 'bin/mailman aliases'
461
462
Architecture
463
------------
464
 * A near complete rewrite of the low-level SMTP delivery machinery.  This
465
   greatly improves readability, testability, reuse and extensibility.  Almost
466
   all the old functionality has been retained.  The smtp_direct.py handler is
467
   gone.
468
 * Refactor model objects into the mailman.model subpackage.
469
 * Refactor most of the i18n infrastructure into a separate flufl.i18n package.
470
 * Switch from setuptools to distribute.
471
 * Remove the dependency on setuptools_bzr
472
 * Do not create the .mo files during setup.
473
474
Configuration
475
-------------
476
 * All log files now have a '.log' suffix by default.
477
 * The substitution placeholders in the verp_format configuration variable
478
   have been renamed.
479
 * Add a devmode configuration variable that changes some basic behavior.
480
   Most importantly, it allows you to set a low-level SMTP recipient for all
481
   mail for testing purposes.  See also devmode_recipient.
6783 by Barry Warsaw
Post-release bump of version number.
482
483
6660 by Barry Warsaw
Bump version.
484
3.0 alpha 3 -- "Working Man"
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
485
============================
6782 by Barry Warsaw
News
486
(2009-08-21)
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
487
488
Configuration
489
-------------
490
 * Configuration is now done through lazr.config.  Defaults.py is
491
   dead.  lazr.config files are essentially hierarchical ini files.
492
 * Domains are now stored in the database instead of in the configuration file.
493
 * pre- and post- initialization hooks are now available to plugins.  Specify
494
   additional hooks to run in the configuration file.
495
 * Add the environment variable $MAILMAN_CONFIG_FILE which overrides the -C
496
   command line option.
497
 * Make LMTP more compliant with Postfix docs (Patrick Koetter)
498
 * Added a NullMTA for mail servers like Exim which just work automatically.
499
500
Architecture
501
------------
502
 * 'bin/mailman' is a new super-command for managing Mailman from the command
503
   line.  Some older bin scripts have been converted, with more to come.
504
 * Mailman now has an administrative REST interface which can be used to get
505
   information from and manage Mailman remotely.
506
 * Back port of Mailman 2.1's limit on .bak file restoration.  After 3
507
   restores, the file is moved to the bad queue, with a .psv extension. (Mark
508
   Sapiro)
509
 * Digest creation is moved into a new queue runner so it doesn't block main
510
   message processing.
511
512
Other changes
513
-------------
514
 * bin/make_instance is no longer necessary, and removed
515
 * The debug log is turned up to info by default to reduce log file spam.
516
517
Building and installation
518
-------------------------
519
 * All doc tests can now be turned into documentation, via Sphinx.  Just run
520
   bin/docs after bin/buildout.
6663 by Barry Warsaw
Update NEWS
521
6660 by Barry Warsaw
Bump version.
522
6630 by Barry Warsaw
Bump the version number
523
3.0 alpha 2 -- "Grand Designs"
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
524
==============================
6660 by Barry Warsaw
Bump version.
525
(03-Jan-2009)
6630 by Barry Warsaw
Bump the version number
526
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
527
Licensing
528
---------
529
530
 * Mailman 3 is now licensed under the GPLv3.
531
532
Bug fixes
533
---------
534
535
 * Changed bin/arch to attempt to open the mbox before wiping the old
536
   archive. Launchpad bug #280418.
537
538
 * Added digest.mbox and pending.pck to the 'list' files checked by
539
   check_perms. Launchpad bug #284802.
540
541
Architecture
542
------------
543
544
 * Converted to using zope.testing as the test infrastructure.  Use bin/test
545
   now to run the full test suite.
546
   <http://pypi.python.org/pypi/zope.testing/3.7.1>
547
 * Partially converted to using lazr.config as the new configuration
548
   regime.  Not everything has been converted yet, so some manual editing
549
   of mailman/Defaults.py is required.  This will be rectified in future
550
   versions.  <http://launchpad.net/lazr.config>
551
 * All web-related stuff is moved to its own directory, effectively moving
552
   it out of the way for now.
553
 * The email command infrastructure has been reworked to play more nicely
554
   with the plug-in architecture.  Not all commands have yet been
555
   converted.
556
557
Other changes
558
-------------
559
560
 * The LMTP server now properly calculates the message's original size.
561
 * For command line scripts, -C names the configuration file to use.  For
562
   convenient testing, if -C is not given, then the environment variable
563
   MAILMAN_CONFIG_FILE is consulted.
564
 * Support added for a local MHonArc archiver, as well as archiving
565
   automatically in the remote Mail-Archive.com service.
566
 * The permalink proposal for supporting RFC 5064 has been adopted.
567
 * Mailing lists no longer have a .web_page_url attribute; this is taken from
568
   the mailing list's domain's base_url attribute.
569
 * Incoming MTA selection is now taken from the config file instead of
570
   plugins.  An MTA for Postfix+LMTP is added.  bin/genaliases works again.
571
 * If a message has no Message-ID, the stock archivers will return None for
572
   the permalink now instead of raising an assertion.
573
 * IArchiver no longer has an is_enabled property; this is taken from the
574
   configuration file now.
575
576
Installation
577
------------
578
579
 * Python 2.6 is the minimal requirement.
580
 * Converted to using zc.buildout as the build infrastructure.  See
581
   docs/ALPHA.txt for details.
582
   <http://pypi.python.org/pypi/zc.buildout/1.1.1>
6651 by Barry Warsaw
* Update NEWS.txt and ALPHA.txt
583
6630 by Barry Warsaw
Bump the version number
584
6581.1.27 by Barry Warsaw
Fleshed out the doctest for the new incoming queue runner.
585
3.0 alpha 1 -- "Leave That Thing Alone"
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
586
=======================================
6630 by Barry Warsaw
Bump the version number
587
(08-Apr-2008)
6461 by bwarsaw
reorganize READMEs and other documentation. more still to do.
588
6780 by Barry Warsaw
* Updated NEWS.txt for 3.0a3.
589
User visible changes
590
--------------------
591
592
 * So called 'new style' subject prefixing is the default now, and the only
593
   option.  When a list's subject prefix is added, it's always done so before
594
   any Re: tag, not after.  E.g. '[My List] Re: The subject'.
595
 * RFC 2369 headers List-Subscribe and List-Unsubscribe now use the preferred
596
   -join and -leave addresses instead of the -request address with a subject
597
   value.
598
599
Configuration
600
-------------
601
602
 * There is no more separate configure; make; make install step. Mailman 3.0
603
   is a setuptools package.
604
 * Mailman can now be configured via a 'mailman.cfg' file which lives in
605
   $VAR_PREFIX/etc.  This is used to separate the configuration from the
606
   source directory.  Alternative configuration files can be specified via
607
   -C/--config for most command line scripts.  mailman.cfg contains Python
608
   code.  mm_cfg.py is no more.  You do not need to import Defaults.py in
609
   etc/mailman.cfg.  You should still consult Defaults.py for the list of site
610
   configuration variables available to you.
611
612
   See the etc/mailman.cfg.sample file.
613
 * PUBLIC_ARCHIVE_URL and DEFAULT_SUBJECT_PREFIX now takes $-string
614
   substitutions instead of %-string substitutions.  See documentation in
615
   Defaults.py.in for details.
616
 * Message headers and footers now only accept $-string substitutions;
617
   %-strings are no longer supported.  The substitution variable
618
   '_internal_name' has been removed; use $list_name or $real_name
619
   instead.  The substitution variable $fqdn_listname has been added.
620
   DEFAULT_MSG_FOOTER in Defaults.py.in has been updated accordingly.
621
 * The KNOWN_SPAMMERS global variable is replaced with HEADER_MATCHES.  The
622
   mailing list's header_filter_rules variable is replaced with header_matches
623
   which has the same semantics as HEADER_MATCHES, but is list-specific.
624
 * DEFAULT_MAIL_COMMANDS_MAX_LINES -> EMAIL_COMMANDS_MAX_LINES
625
 * All SMTP_LOG_* templates use $-strings and all consistently write the
626
   Message-ID as the first item in the log entry.
627
 * DELIVERY_MODULE now names a handler, not a module (yes, this is a
628
   misnomer, but it will likely change again before the final release).
629
630
Architecture
631
------------
632
633
 * Internally, all strings are Unicodes.
634
 * Implementation of a chain-of-rules based approach for deciding whether a
635
   message should initially be accepted, held for approval, rejected/bounced,
636
   or discarded.  This replaces most of the disposition handlers in the
637
   pipeline.  The IncomingRunner now only processes message through the rule
638
   chains, and once accepted, places the message in a new queue processed by
639
   the PipelineRunner.
640
 * Substantially reworked the entire queue runner process management,
641
   including mailmanctl, a new master script, and the qrunners.  This should
642
   be much more robust and reliable now.
643
 * The Storm ORM is used for data storage, with the SQLite backend as the
644
   default relational database.
645
 * Zope interfaces are used to describe the major components.
646
 * Users are now stored in a unified database, and shared across all mailing
647
   lists.
648
 * Mailman's web interface is now WSGI compliant.  WSGI is a Python standard
649
   (PEP 333) allowing web applications to be (more) easily integrated with any
650
   number of existing Python web application frameworks.  For more information
651
   see:
652
653
   http://www.wsgi.org/wsgi
654
   http://www.python.org/dev/peps/pep-0333/
655
656
   Mailman can still be run as a traditional CGI program of course.
657
 * Mailman now provides an LMTP server for more efficient integration with
658
   supporting mail servers (e.g. Postfix, Sendmail).  The Local Mail Transport
659
   Protocol is defined in RFC 2033:
660
661
   http://www.faqs.org/rfcs/rfc2033.html
662
 * Virtual domains are now fully supported in that mailing lists of the same
663
   name can exist in more than one domain.  This is accomplished by renaming
664
   the lists/ and archives/ subdirectories after the list's posting address.
665
   For example, data for list foo in example.com and list foo in example.org
666
   will be stored in lists/foo@example.com and lists/foo@example.org.
667
668
   For Postfix or manual MTA users, you will need to regenerate your mail
669
   aliases.  Use bin/genaliases.
670
671
   VIRTUAL_HOST_OVERVIEW has been removed, effectively Mailman now operates
672
   as if it were always enabled.  If your site has more than one domain,
673
   you must configure all domains by using add_domain() in your
674
   etc/mailman.cfg flie (see below -- add_virtual() has been removed).
675
 * If you had customizations based on Site.py, you will need to re-implement
676
   them.  Site.py has been removed.
677
 * The site list is no more.  You can remove your 'mailman' site list unless
678
   you want to retain it for other purposes, but it is no longer used (or
679
   required) by Mailman.  You should set NO_REPLY_ADDRESS to an address that
680
   throws away replies, and you should set SITE_OWNER_ADDRESS to an email
681
   address that reaches the person ultimately responsible for the Mailman
682
   installation.  The MAILMAN_SITE_LIST variable has been removed.
683
 * qrunners no longer restart on SIGINT; SIGUSR1 is used for that now.
684
685
Internationalization Big Changes
686
--------------------------------
687
688
 * Translators should work only on messages/<lang>/LC_MESSAGES/mailman.po.
689
   Templates files are generated from mailman.po during the build process.
690
691
New Features
692
------------
693
694
 * Confirmed member change of address is logged in the 'subscribe' log, and if
695
   admin_notify_mchanges is true, a notice is sent to the list owner using a
696
   new adminaddrchgack.txt template.
697
 * There is a new list attribute 'subscribe_auto_approval' which is a list of
698
   email addresses and regular expressions matching email addresses whose
699
   subscriptions are exempt from admin approval. RFE 403066.
700
701
Command line scripts
702
--------------------
703
704
 * Most scripts have grown a -C/--config flag to allow you to specify a
705
   different configuration file.  Without this, the default etc/mailman.cfg
706
   file will be used.
707
 * the -V/--virtual-host-overview switch in list_lists has been removed, while
708
   -d/--domain and -f/--full have been added.
709
 * bin/newlist is renamed bin/create_list and bin/rmlist is renamed
710
   bin/remove_list.  Both take fully-qualified list names now (i.e. the list's
711
   posting address), but also accept short names, in which case the default
712
   domain is used.  newlist's -u/--urlhost and -e/--emailhost switches have
713
   been removed.  The domain that the list is being added to must already
714
   exist.
715
 * Backport the ability to specify additional footer interpolation variables
716
   by the message metadata 'decoration-data' key.
717
718
Bug fixes and other patches
719
---------------------------
720
721
 * Removal of DomainKey/DKIM signatures is now controlled by Defaults.py
722
   mm_cfg.py variable REMOVE_DKIM_HEADERS (default = No).
723
 * Queue runner processing is improved to log and preserve for analysis in the
724
   shunt queue certain bad queue entries that were previously logged but lost.
725
   Also, entries are preserved when an attempt to shunt throws an exception
726
   (1656289).
727
 * The processing of Topics regular expressions has changed. Previously the
728
   Topics regexp was compiled in verbose mode but not documented as such which
729
   caused some confusion.  Also, the documentation indicated that topic
730
   keywords could be entered one per line, but these entries were not handled
731
   properly.  Topics regexps are now compiled in non-verbose mode and multi-
732
   line entries are 'ored'.  Existing Topics regexps will be converted when
733
   the list is updated so they will continue to work.
734
 * The List-Help, List-Subscribe, and List-Unsubscribe headers were
735
   incorrectly suppressed in messages that Mailman sends directly to users.
736
 * The 'adminapproved' metadata key is renamed 'moderator_approved'.