I am very happy to announce the release of the seventh alpha for Mailman 3.0, code named "Mission". Here are some of the highlights of a release with lots of new stuff (a more detailed NEWS.txt file excerpt is below).
- Significant improvements to the subscription model. Users can now subscribe to mailing lists with either an explicit address or a "preferred" address. When a user changes her preferred address, all of her subscriptions automatically track this change. All this and more have also all been exposed to the REST API.
- New rules for member and non-member moderation. This effectively ports and updates Mailman 2's moderation rules to the Mailman 3 framework.
- Support for SMTP AUTH added.
- The default password encryption scheme can be defined in the configuration file, and all passwords are by default encrypted (using SSHA1).
- 'bin/mailman status' command added to provide command line status of the master queue runner process.
- 'bin/mailman info' now prints the REST API root url and credentials.
- Basic Auth support for the REST API was added. (thanks Jimmy Bergman)
- Python 2.7 is supported.
I'm really excited about this release because it will provide a great baseline for our Google Summer of Code students. If you've been putting off taking a look at Mailman 3, I encourage you to download it and play with it. My goal is for a final release on 11.11.11 so there will not be too many more alphas. Now is the best time to influence our design decisions.
The tarball can be downloaded from Launchpad or the Cheeseshop:
The full documentation is also online:
3.0 alpha 7 -- "Mission"
- Significant updates to the subscription model. Members can now subscribe with a preferred address, and changes to that will be immediately reflected in mailing list subscriptions. Users who subscribe with an explicit address can easily change to a different address, as long as that address is verified. (LP: #643949)
- IUsers and IMembers are now assigned a unique, random, immutable id.
- IUsers now have created_on and .preferred_address properties.
- IMembers now have a .user attribute for easy access to the subscribed user.
- When created with add_member(), passwords are always stored encrypted.
- In all interfaces, "email" refers to the textual email address while
"address" refers to the
- mailman.chains.base.Chain no longer self registers.
- New member and nonmember moderation rules and chains. This effectively ports moderation rules from Mailman 2 and replaces attributes such as member_moderation_action, default_member_moderation, and generic_nonmember_action. Now, nonmembers exist as subscriptions on a mailing list and members have a moderation_action attribute which describes the disposition for postings from that address.
- Member.is_moderated was removed because of the above change.
- default_member_action and default_nonmember_action were added to mailing lists.
- All sender addresses are registered (unverified) with the user manager by the incoming queue runner. This way, nonmember moderation rules will always have an IAddress that they can subscribe to the list (as MemberRole.nonmember).
- Support for SMTP AUTH added via smtp_user and smtp_pass configuration variables in the [mta] section. (LP: #490044)
- IEmailValidator interface for pluggable validation of email addresses.
- .subscribe() is moved from the IAddress to the IMailingList
- IAddresses get their registered_on attribute set when the object is created.
- [devmode] section gets a new 'testing' variable.
- Added password_scheme and password_length settings for defining the default password encryption scheme.
- creator_pw_file and site_pw_file are removed.
- 'bin/mailman start' does a better job of producing an error when Mailman is already running.
- 'bin/mailman status' added for providing command line status on the master queue runner watcher process.
- 'bin/mailman info' now prints the REST root url and credentials.
- mmsitepass removed; there is no more site password.
- Add Basic Auth support for REST API security. (Jimmy Bergman)
- Include the fqdn_listname and email address in the member JSON representation.
- Added reply_goes_to_list, send_welcome_msg, welcome_msg, default_member_moderation to the mailing list's writable attributes in the REST service. (Jimmy Bergman)
- Expose the new membership model to the REST API. Canonical member resource URLs are now much shorter and live in their own top-level namespace instead of within the mailing list's namespace.
- /addresses/<email>/memberships gets all the memberships for a given email address.
- /users is a new top-level URL under which user information can be accessed. Posting to this creates new users.
- Users can subscribe to mailing lists through the REST API.
- Domains can be deleted via the REST API.
- PUT and PATCH to a list configuration now returns a 204 (No Content).
- Support Python 2.7. (LP: #667472)
- Disable site-packages in buildout.cfg because of LP: #659231.
- Don't include eggs/ or parts/ in the source tarball. (LP: #656946)
- flufl.lock is now required instead of locknix.
- Typo in scan_message(). (LP: #645897)
- Typo in add_member(). (LP: #710182) (Florian Fuchs)
- Re-enable bounce detectors. (LP: #756943)
- Clean up many pyflakes problems; ditching pylint.