GNU Mailman 3.0.0b1 "The Twilight Zone"

Milestone information

GNU Mailman
Code name:
The Twilight Zone
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.
1 Aamir Khan, 10 Barry Warsaw
No blueprints are targeted to this milestone.
11 Fix Released

Download files for this release

File Description Downloads

Release notes 

3.0 beta 1 -- "The Twilight Zone"

 * Schema migrations have been implemented.
 * Implement the style manager as a utility instead of an attribute hanging
   off the `mailman.config.config` object.
 * PostgreSQL support contributed by Stephen A. Goss. (LP: #860159)
 * Separate out the RFC 2369 header adding handler.
 * Dynamically calculate the `List-Id` header instead of storing it in the
   database. This means it cannot be changed.
 * Major redesign of the template search system, fixing LP: #788309. $var_dir
   is now used when search for all template overrides, site, domain, or
   mailing list. The in-tree English templates are used only as a last
 * Support downloading templates by URI, including mailman:// URIs. This is
   used in welcome and goodbye messages, as well as regular and digest headers
   and footers, and supports both language and mailing list specifications.
   E.g. mailman:///
 * $user_password is no longer supported as a placeholder in headers and
 * Mailing lists get multiple chains and pipelines. For example, normal
   postings go through the `posting_chain` while messages to owners to through
   `owners_chain`. The default `built-in` chain is renamed to
   `default-posting-chain` while the `built-in` pipeline is renamed
 * The experimental `maildir` runner is removed. Use LMTP.
 * The LMTP server now requires that the incoming message have a `Message-ID`,
   otherwise it rejects the message with a 550 error. Also, the LMTP server
   adds the `X-Message-ID-Hash` header automatically. The `inject` cli
   command will also add the `X-Message-ID-Hash` header, but it will craft a
   `Message-ID` header first if one is missing from the injected text. Also,
   `inject` will always set the correct value for the `original_size`
   attribute on the message object, instead of trusting a possibly incorrect
   value if it's already set. The individual `IArchiver` implementations no
   longer set the `X-Message-ID-Hash` header.
 * The Prototype archiver now stores its files in maildir format inside of
   `$var_dir/archives/prototype`, given by Toshio Kuratomi.
 * Improved "8 mile high" document distilled by Stephen J Turnbull from the
   Pycon 2012 Mailman 3 sprint. Also improvements to the Sphinx build given
   by Andrea Crotti.
 * Pipermail has been eradicated.
 * Configuration variable `[mailman]filtered_messages_are_preservable`
   controls whether messages which have their top-level `Content-Type`
   filtered out can be preserved in the `bad` queue by list owners.
 * Configuration section `[scrubber]` removed, as is the scrubber handler.
   This handler was essentially incompatible with Mailman 3 since it required
   coordination with Pipermail to store attachments on disk.

 * Schema changes:
   - welcome_msg -> welcome_message_uri
   - goodbye_msg -> goodbye_message_uri
   - send_welcome_msg -> send_welcome_message
   - send_goodbye_msg -> send_goodbye_message
   - msg_header -> header_uri
   - msg_footer -> footer_uri
   - digest_header -> digest_header_uri
   - digest_footer -> digest_footer_uri
   - start_chain -> posting_chain
   - pipeline -> posting_pipeline
   - real_name -> display_name (mailinglist, user, address)
 * Schema additions:
   - mailinglist.filter_action
   - mailinglist.owner_chain
   - mailinglist.owner_pipeline

 * Held messages can now be moderated through the REST API. Mailing list
   resources now accept a `held` path component. GETing this returns all held
   messages for the mailing list. POSTing to a specific request id under this
   url can dispose of the message using `Action` enums.
 * Mailing list resources now have a `member_count` attribute which gives the
   number of subscribed members. Given by Toshio Kuratomi.

 * Add property `IUserManager.members` to return all `IMembers` in the system.
 * Add property `IListmanager.name_components` which returns 2-tuples for
   every mailing list as (list_name, mail_host).
 * Remove previously deprecated `IListManager.get_mailing_lists()`.
 * `IMailTransportAgentAliases` now explicitly accepts duck-typed arguments.
 * `IRequests` interface is removed. Now just use adaptation from
   `IListRequests` directly (which takes an `IMailingList` object).
 * `handle_message()` now allows for `Action.hold` which is synonymous with
   `Action.defer` (since the message is already being held).
 * `IListRequests.get_request()` now takes an optional `request_type`
   argument to narrow the search for the given request.
 * New `ITemplateLoader` utility.
 * `ILanguageManager.add()` returns the `ILanguage` object just created.
 * `IMailinglist.decorators` removed; it was unused
 * `IMailingList.real_name` -> `IMailingList.display_name`
 * `IUser.real_name` -> `IUser.display_name`
 * `IAddress.real_name` -> `IAddress.display_name`
 * Add property `IRoster.member_count`.

 * IPython support in `bin/mailman shell` contributed by Andrea Crotti.
   (LP: #949926).
 * The `mailman.cfg` configuration file will now automatically be detected if
   it exists in an `etc` directory which is a sibling of argv0.
 * `bin/mailman shell` is an alias for `withlist`.
 * The `confirm` email command now properly handles `Re:`-like prefixes, even
   if they contain non-ASCII characters. (LP: #685261)
 * The `join` email command no longer accepts an `address=` argument. Its
   `digest=` argument now accepts the following values: `no` (for regular
   delivery), `mime`, or `plain`.
 * Added a `help` email command.
 * A welcome message is sent when the user confirms their subscription via
 * Global ``-C`` option now accepts an absolute path to the configuration
   file. Given by Andrea Crotti. (LP: #953707)

Bug fixes
 * Subscription disabled probe warning notification messages are now sent
   without a `Precedence:` header. Given by Mark Sapiro. (LP: #808821)
 * Fixed KeyError in retry runner, contributed by Stephen A. Goss.
   (LP: #872391)
 * Fixed bogus use of `bounce_processing` attribute (should have been
   `process_bounces`, with thanks to Vincent Fretin. (LP: #876774)
 * Fix `test_moderation` for timezones east of UTC+0000, given by blacktav.
   (LP: #890675)


This release does not have a changelog.

0 blueprints and 11 bugs targeted

Bug report Importance Assignee Status
860159 #860159 Mailman 3.0 support for Postgres 3 High Barry Warsaw  10 Fix Released
808821 #808821 Probe messages should not sent Precedence header 4 Medium Barry Warsaw  10 Fix Released
869317 #869317 Mailman startup script missing --force option. 4 Medium Barry Warsaw  10 Fix Released
872391 #872391 KeyError: u'outgoing' in runner 4 Medium Barry Warsaw  10 Fix Released
874929 #874929 Missing aliases in postfix_lmtp file when using more than one mailing-list 4 Medium Barry Warsaw  10 Fix Released
876774 #876774 AttributeError: 'MailingList' object has no attribute 'bounce_processing' 4 Medium Barry Warsaw  10 Fix Released
890675 #890675 test_moderation fails on approved_at date comparison 4 Medium Aamir Khan  10 Fix Released
953707 #953707 -C does not support relative paths 4 Medium Barry Warsaw  10 Fix Released
685261 #685261 emailed command in subject header is ignored 5 Low Barry Warsaw  10 Fix Released
788309 #788309 Allow $var_dir templates to override in-tree templates 6 Wishlist Barry Warsaw  10 Fix Released
949926 #949926 Add IPython support in "mailman withlist" 6 Wishlist Barry Warsaw  10 Fix Released
This milestone contains Public information
Everyone can see this information.