GNU Mailman 3.0.0b2 "Freeze"

Milestone information

GNU Mailman
Code name:
Barry Warsaw
Release registered:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata


Assigned to you:
No blueprints or bugs assigned to you.
16 Barry Warsaw, 2 Mark Sapiro
No blueprints are targeted to this milestone.
19 Fix Released

Download files for this release

File Description Downloads

Release notes 

3.0 beta 2 -- "Freeze"

 * The link between members and the mailing lists they are subscribed to, is
   now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting
   address). This is because while the posting address can change if the
   mailing list is moved to a new server, the list id is fixed.
   (LP: #1024509)

   - IListManager.get_by_list_id() added.
   - IListManager.list_ids added.
   - IMailingList.list_id added.
   - Several internal APIs that accepted fqdn list names now require list ids,
     e.g. ISubscriptionService.join() and .find_members().
   - IMember.list_id attribute added; .mailing_list is now an alias that
     retrieves and returns the IMailingList.

 * `passlib`_ is now used for all password hashing instead of flufl.password.
   The default hash is `sha512_crypt`. (LP: #1015758)
 * Internally, all datetimes are kept in the UTC timezone, however because of
   LP: #280708, they are stored in the database in naive format.
 * `received_time` is now added to the message metadata by the LMTP runner
   instead of by `Switchboard.enqueue()`. This latter no longer depends on
   `received_time` in the metadata.
 * The `ArchiveRunner` no longer acquires a lock before it calls the
   individual archiver implementations, since not all of them need a lock. If
   they do, the implementations must acquire said lock themselves.
 * The `news` runner and queue has been renamed to the more accurate `nntp`.
   The runner has also been ported to Mailman 3 (LP: #967409). Beta testers
   can can safely remove `$var_dir/queue/news`.
 * A mailing list's *moderator password* is no longer stored in the clear; it
   is hashed with the currently selected scheme.
 * An `AddressVerificationEvent` is triggered when an `IAddress` is verified
   or unverified. (LP: #975698)
 * A `PasswordChangeEvent` is triggered when an `IUser`'s password changes.
   (LP: #975700)
 * When a queue runner gets an exception in its _dispose() method, a
   `RunnerCrashEvent` is triggered, which contains references to the queue
   runner, mailing list, message, metadata, and exception. Interested parties
   can subscribe to that `zope.event` for notification.
 * Events renamed and moved:
   * `mailman.chains.accept.AcceptNotification`
   * `mailman.chains.base.ChainNotification`
   * `mailman.chains.discard.DiscardNotification`
   * `mailman.chains.hold.HoldNotification`
   * `mailman.chains.owner.OwnerNotification`
   * `mailman.chains.reject.RejectNotification`
   changed to (respectively):
   * `mailman.interfaces.chains.AcceptEvent`
   * `mailman.interfaces.chains.ChainEvent`
   * `mailman.interfaces.chains.DiscardEvent`
   * `mailman.interfaces.chains.HoldEvent`
   * `mailman.interfaces.chains.AcceptOwnerEvent`
   * `mailman.interfaces.chains.RejectEvent`
 * A `ConfigurationUpdatedEvent` is triggered when the system-wide global
   configuration stack is pushed or popped.
 * The policy for archiving has now been collapsed into a single enum, called
   ArchivePolicy. This describes the three states of never archive, archive
   privately, and archive_publicly. (LP: #967238)

 * Schema migrations (LP: #971013)

   - mailinglist.include_list_post_header -> allow_list_posts
   - mailinglist.news_prefix_subject_too -> nntp_prefix_subject_too
   - mailinglist.news_moderation -> newsgroup_moderation
   - mailinglist.archive and mailinglist.archive_private have been collapsed
     into archive_policy.
   - mailinglist.nntp_host has been removed.
   - mailinglist.generic_nonmember_action has been removed (LP: #975696)

 * Schema migrations (LP: #1024509)
   - member.mailing_list -> list_id
 * The PostgreSQL port of the schema accidentally added a moderation_callback
   column to the mailinglist table. Since this is unused in Mailman, it was
   simply commented out of the base schema for PostgreSQL.

 * Expose `archive_policy` in the REST API. Contributed by Alexander
   Sulfrian. (LP: #1039129)

 * New configuration variables `clobber_date` and `clobber_skew` supported in
   every `[archiver.<name>]` section. These are used to determine under what
   circumstances a message destined for a specific archiver should have its
   `Date:` header clobbered. (LP: #963612)
 * With the switch to `passlib`_, `[passwords]password_scheme` has been
   removed. Instead use `[passwords]path` to specify where to find the
   `passlib.cfg` file. See the comments in `schema.cfg` for details.
 * Configuration schema variable changes:
   * [nntp]username -> [nntp]user
   * [nntp]port (added)
 * Header check specifications in the `mailman.cfg` file have changed quite
   bit. The previous `[]` sections have been removed.
   Instead, there's a new `[antispam]` section that contains a `header_checks`
   variable. This variable takes multiple lines of `Header: regexp` values,
   one per line. There is also a new `jump_chain` variable which names the
   chain to jump to should any of the header checks (including the
   list-specific, and programmatically added ones) match.

 * Some additional documentation on related components such as Postorius and
   hyperkitty have been added, given by Stephen J Turnbull.

Bug fixes
 * Fixed the RFC 1153 digest footer to be compliant. (LP: #887610)
 * Fixed a UnicodeError with non-ascii message bodies in the `approved` rule,
   given by Mark Sapiro. (LP: #949924)
 * Fixed a typo when returning the configuration file's header match checks.
   (LP: #953497)
 * List-Post should be NO when posting is not allowed. (LP: #987563)
 * Non-unicode values in msgdata broke pending requests. (LP: #1031391)
 * Show devmode in `bin/mailman info` output. (LP: #1035028)
 * Fix residual references to the old `IMailingList` archive variables.
   (LP: #1031393)

.. _`passlib`:


This release does not have a changelog.

0 blueprints and 19 bugs targeted

Bug report Importance Assignee Status
971013 #971013 3.0b2 database schema migrations 2 Critical Barry Warsaw  10 Fix Released
867459 #867459 REST API: Implement a simple way to check user credentials  3 High Barry Warsaw  10 Fix Released
949924 #949924 UnicodeDecodeError when delivering message 3 High Mark Sapiro  10 Fix Released
967238 #967238 Expose IMailingList.archive and .archive_private in the REST API 3 High Barry Warsaw  10 Fix Released
975696 #975696 Eradicate generic_nonmember_action 3 High Barry Warsaw  10 Fix Released
975698 #975698 On email validation confirmation, trigger an event 3 High Barry Warsaw  10 Fix Released
975700 #975700 On password change, trigger an event 3 High Barry Warsaw  10 Fix Released
987563 #987563 List-Post should be NO when posting is not allowed 3 High   10 Fix Released
1015757 #1015757 Migrate from flufl.password to passlib 3 High Barry Warsaw  10 Fix Released
1015758 #1015758 Deprecate in favor of passlib 3 High Barry Warsaw  10 Fix Released
1024509 #1024509 Link between members and mailing lists should use List-ID 3 High Barry Warsaw  10 Fix Released
1031391 #1031391 Non-string in msgdata breaks pending requests 3 High Barry Warsaw  10 Fix Released
1031393 #1031393 wrong attribute name according to mailman.interfaces.mailinglist.IMailingList 3 High Barry Warsaw  10 Fix Released
1035028 #1035028 bin/mailman info -v could be improved 3 High Barry Warsaw  10 Fix Released
1039129 #1039129 archive_policy should be exposed via REST interface 3 High Barry Warsaw  10 Fix Released
953497 #953497 Unused variable in loop 4 Medium Barry Warsaw  10 Fix Released
963612 #963612 ArchiveRunner has Pipermail artifacts 4 Medium Barry Warsaw  10 Fix Released
967409 #967409 NewsRunner needs to be ported to Mailman 3 4 Medium Barry Warsaw  10 Fix Released
887610 #887610 RFC 1153 digests should not work around VM bug 5 Low Mark Sapiro  10 Fix Released
This milestone contains Public information
Everyone can see this information.