summaryrefslogtreecommitdiff
path: root/src/mailman/docs/NEWS.rst
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/docs/NEWS.rst')
-rw-r--r--src/mailman/docs/NEWS.rst515
1 files changed, 515 insertions, 0 deletions
diff --git a/src/mailman/docs/NEWS.rst b/src/mailman/docs/NEWS.rst
new file mode 100644
index 000000000..64948bdb3
--- /dev/null
+++ b/src/mailman/docs/NEWS.rst
@@ -0,0 +1,515 @@
+================================================
+Mailman - The GNU Mailing List Management System
+================================================
+
+Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+Here is a history of user visible changes to Mailman.
+
+
+3.0 alpha 8 -- "Where's My Thing?"
+==================================
+(201X-XX-XX)
+
+Architecture
+------------
+ * Port bounce detection to the Mailman 3 architecture.
+ * Unrecognized bounces can now also be forwarded to the site owner.
+ * mailman.qrunner log is renamed to mailman.runner
+ * master-qrunner.lck -> master.lck
+ * master-qrunner.pid -> master.pid
+
+REST
+----
+ * The IMailingList attribute ``host_name`` has been renamed to ``mail_host``
+ for consistency. This changes the REST API for mailing list
+ resources. (LP: #787599)
+
+Commands
+--------
+ * bin/qrunner is renamed to bin/runner.
+ * `bin/mailman aliases` gains -f and -s options.
+ * `bin/mailman create` no longer allows a list to be created with bogus owner
+ addresses. (LP: #778687)
+
+Documentation
+-------------
+ * Update the COPYING file to contain the GPLv3. (LP: #790994)
+ * Major terminology change: ban the terms "queue runners" and "qrunners" since
+ not all runners manage queue directories. Just call them "runners". Also,
+ the master is now just called "the master runner".
+
+Testing
+-------
+ * New configuration variable in [devmode] section, called `wait` which sets
+ the timeout value used in the test suite for starting up subprocesses.
+
+
+3.0 alpha 7 -- "Mission"
+========================
+(2011-04-29)
+
+Architecture
+------------
+ * 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 `IAddress` object.
+ * 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.
+
+Configuration
+-------------
+ * [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.
+
+Commands
+--------
+ * '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.
+
+REST
+----
+ * 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).
+
+Build
+-----
+ * 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.
+
+Bugs fixed
+----------
+ * 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.
+
+
+3.0 alpha 6 -- "Cut to the Chase"
+=================================
+(2010-09-20)
+
+Commands
+--------
+ * The functionality of 'bin/list_members' has been moved to
+ 'bin/mailman members'.
+ * 'bin/mailman info' -v/--verbose output displays the file system
+ layout paths Mailman is currently configured to use.
+
+Configuration
+-------------
+ * You can now configure the paths Mailman uses for queue files, lock files,
+ data files, etc. via the configuration file. Define a file system 'layout'
+ and then select that layout in the [mailman] section. Default layouts
+ include 'local' for putting everything in /var/tmp/mailman, 'dev' for local
+ development, and 'fhs' for Filesystem Hierarchy Standard 2.3 (LP #490144).
+ * Queue file directories now live in $var_dir/queues.
+
+REST
+----
+ * lazr.restful has been replaced by restish as the REST publishing technology
+ used by Mailman.
+ * New REST API for getting all the members of a roster for a specific mailing
+ list.
+ * New REST API for getting and setting a mailing list's configuration. GET
+ and PUT are supported to retrieve the current configuration, and set all
+ the list's writable attributes in one request. PATCH is supported to
+ partially update a mailing list's configuration. Individual options can be
+ set and retrieved by using subpaths.
+ * Subscribing an already subscribed member via REST now returns a 409 HTTP
+ error. LP: #552917
+ * Fixed a bug when deleting a list via the REST API. LP: #601899
+
+Architecture
+------------
+ * X-BeenThere header is removed.
+ * Mailman no longer touches the Sender or Errors-To headers.
+ * Chain actions can now fire Zope events in their _process()
+ implementations.
+ * Environment variable $MAILMAN_VAR_DIR can be used to control the var/
+ directory for Mailman's runtime files. New environment variable
+ $MAILMAN_UNDER_MASTER_CONTROL is used instead of the qrunner's --subproc/-s
+ option.
+
+Miscellaneous
+-------------
+ * Allow X-Approved and X-Approve headers, equivalent to Approved and
+ Approve. LP: #557750
+ * Various test failure fixes. LP: #543618, LP: #544477
+ * List-Post header is retained in MIME digest messages. LP: #526143
+ * Importing from a Mailman 2.1.x list is partially supported.
+
+
+3.0 alpha 5 -- "Distant Early Warning"
+======================================
+(2010-01-18)
+
+REST
+----
+ * Add REST API for subscription services. You can now:
+
+ - list all members in all mailing lists
+ - subscribe (and possibly register) an address to a mailing list
+ - unsubscribe an address from mailing list
+
+Commands
+--------
+ * 'bin/dumpdb' is now 'bin/mailman qfile'
+ * 'bin/unshunt' is now 'bin/mailman unshunt'
+ * Mailman now properly handles the '-join', '-leave', and '-confirm' email
+ commands and sub-addresses. '-subscribe' and '-unsubscribe' are aliases
+ for '-join' and '-leave' respectively.
+
+Configuration
+-------------
+ * devmode settings now live in their own [devmode] section.
+ * Mailman now searches for a configuration file using this search order. The
+ first file that exists is used.
+
+ - -C config command line argument
+ - $MAILMAN_CONFIG_FILE environment variable
+ - ./mailman.cfg
+ - ~/.mailman.cfg
+ - /etc/mailman.cfg
+
+
+3.0 alpha 4 -- "Vital Signs"
+============================
+(2009-11-28)
+
+Commands
+--------
+ * 'bin/inject' is now 'bin/mailman inject', with some changes
+ * 'bin/mailmanctl' is now 'bin/mailman start|stop|reopen|restart'
+ * 'bin/mailman version' is added (output same as 'bin/mailman --version')
+ * 'bin/mailman members' command line arguments have changed. It also
+ now ignores blank lines and lines that start with #. It also no longer
+ quits when it sees an address that's already subscribed.
+ * 'bin/withlist' is now 'bin/mailman withlist', and its command line
+ arguments have changed.
+ * 'bin/mailman lists' command line arguments have changed.
+ * 'bin/genaliases' is now 'bin/mailman aliases'
+
+Architecture
+------------
+ * A near complete rewrite of the low-level SMTP delivery machinery. This
+ greatly improves readability, testability, reuse and extensibility. Almost
+ all the old functionality has been retained. The smtp_direct.py handler is
+ gone.
+ * Refactor model objects into the mailman.model subpackage.
+ * Refactor most of the i18n infrastructure into a separate flufl.i18n package.
+ * Switch from setuptools to distribute.
+ * Remove the dependency on setuptools_bzr
+ * Do not create the .mo files during setup.
+
+Configuration
+-------------
+ * All log files now have a '.log' suffix by default.
+ * The substitution placeholders in the verp_format configuration variable
+ have been renamed.
+ * Add a devmode configuration variable that changes some basic behavior.
+ Most importantly, it allows you to set a low-level SMTP recipient for all
+ mail for testing purposes. See also devmode_recipient.
+
+
+3.0 alpha 3 -- "Working Man"
+============================
+(2009-08-21)
+
+Configuration
+-------------
+ * Configuration is now done through lazr.config. Defaults.py is
+ dead. lazr.config files are essentially hierarchical ini files.
+ * Domains are now stored in the database instead of in the configuration file.
+ * pre- and post- initialization hooks are now available to plugins. Specify
+ additional hooks to run in the configuration file.
+ * Add the environment variable $MAILMAN_CONFIG_FILE which overrides the -C
+ command line option.
+ * Make LMTP more compliant with Postfix docs (Patrick Koetter)
+ * Added a NullMTA for mail servers like Exim which just work automatically.
+
+Architecture
+------------
+ * 'bin/mailman' is a new super-command for managing Mailman from the command
+ line. Some older bin scripts have been converted, with more to come.
+ * Mailman now has an administrative REST interface which can be used to get
+ information from and manage Mailman remotely.
+ * Back port of Mailman 2.1's limit on .bak file restoration. After 3
+ restores, the file is moved to the bad queue, with a .psv extension. (Mark
+ Sapiro)
+ * Digest creation is moved into a new queue runner so it doesn't block main
+ message processing.
+
+Other changes
+-------------
+ * bin/make_instance is no longer necessary, and removed
+ * The debug log is turned up to info by default to reduce log file spam.
+
+Building and installation
+-------------------------
+ * All doc tests can now be turned into documentation, via Sphinx. Just run
+ bin/docs after bin/buildout.
+
+
+3.0 alpha 2 -- "Grand Designs"
+==============================
+(03-Jan-2009)
+
+Licensing
+---------
+
+ * Mailman 3 is now licensed under the GPLv3.
+
+Bug fixes
+---------
+
+ * Changed bin/arch to attempt to open the mbox before wiping the old
+ archive. Launchpad bug #280418.
+
+ * Added digest.mbox and pending.pck to the 'list' files checked by
+ check_perms. Launchpad bug #284802.
+
+Architecture
+------------
+
+ * Converted to using zope.testing as the test infrastructure. Use bin/test
+ now to run the full test suite.
+ <http://pypi.python.org/pypi/zope.testing/3.7.1>
+ * Partially converted to using lazr.config as the new configuration
+ regime. Not everything has been converted yet, so some manual editing
+ of mailman/Defaults.py is required. This will be rectified in future
+ versions. <http://launchpad.net/lazr.config>
+ * All web-related stuff is moved to its own directory, effectively moving
+ it out of the way for now.
+ * The email command infrastructure has been reworked to play more nicely
+ with the plug-in architecture. Not all commands have yet been
+ converted.
+
+Other changes
+-------------
+
+ * The LMTP server now properly calculates the message's original size.
+ * For command line scripts, -C names the configuration file to use. For
+ convenient testing, if -C is not given, then the environment variable
+ MAILMAN_CONFIG_FILE is consulted.
+ * Support added for a local MHonArc archiver, as well as archiving
+ automatically in the remote Mail-Archive.com service.
+ * The permalink proposal for supporting RFC 5064 has been adopted.
+ * Mailing lists no longer have a .web_page_url attribute; this is taken from
+ the mailing list's domain's base_url attribute.
+ * Incoming MTA selection is now taken from the config file instead of
+ plugins. An MTA for Postfix+LMTP is added. bin/genaliases works again.
+ * If a message has no Message-ID, the stock archivers will return None for
+ the permalink now instead of raising an assertion.
+ * IArchiver no longer has an is_enabled property; this is taken from the
+ configuration file now.
+
+Installation
+------------
+
+ * Python 2.6 is the minimal requirement.
+ * Converted to using zc.buildout as the build infrastructure. See
+ docs/ALPHA.txt for details.
+ <http://pypi.python.org/pypi/zc.buildout/1.1.1>
+
+
+3.0 alpha 1 -- "Leave That Thing Alone"
+=======================================
+(08-Apr-2008)
+
+User visible changes
+--------------------
+
+ * So called 'new style' subject prefixing is the default now, and the only
+ option. When a list's subject prefix is added, it's always done so before
+ any Re: tag, not after. E.g. '[My List] Re: The subject'.
+ * RFC 2369 headers List-Subscribe and List-Unsubscribe now use the preferred
+ -join and -leave addresses instead of the -request address with a subject
+ value.
+
+Configuration
+-------------
+
+ * There is no more separate configure; make; make install step. Mailman 3.0
+ is a setuptools package.
+ * Mailman can now be configured via a 'mailman.cfg' file which lives in
+ $VAR_PREFIX/etc. This is used to separate the configuration from the
+ source directory. Alternative configuration files can be specified via
+ -C/--config for most command line scripts. mailman.cfg contains Python
+ code. mm_cfg.py is no more. You do not need to import Defaults.py in
+ etc/mailman.cfg. You should still consult Defaults.py for the list of site
+ configuration variables available to you.
+
+ See the etc/mailman.cfg.sample file.
+ * PUBLIC_ARCHIVE_URL and DEFAULT_SUBJECT_PREFIX now takes $-string
+ substitutions instead of %-string substitutions. See documentation in
+ Defaults.py.in for details.
+ * Message headers and footers now only accept $-string substitutions;
+ %-strings are no longer supported. The substitution variable
+ '_internal_name' has been removed; use $list_name or $real_name
+ instead. The substitution variable $fqdn_listname has been added.
+ DEFAULT_MSG_FOOTER in Defaults.py.in has been updated accordingly.
+ * The KNOWN_SPAMMERS global variable is replaced with HEADER_MATCHES. The
+ mailing list's header_filter_rules variable is replaced with header_matches
+ which has the same semantics as HEADER_MATCHES, but is list-specific.
+ * DEFAULT_MAIL_COMMANDS_MAX_LINES -> EMAIL_COMMANDS_MAX_LINES
+ * All SMTP_LOG_* templates use $-strings and all consistently write the
+ Message-ID as the first item in the log entry.
+ * DELIVERY_MODULE now names a handler, not a module (yes, this is a
+ misnomer, but it will likely change again before the final release).
+
+Architecture
+------------
+
+ * Internally, all strings are Unicodes.
+ * Implementation of a chain-of-rules based approach for deciding whether a
+ message should initially be accepted, held for approval, rejected/bounced,
+ or discarded. This replaces most of the disposition handlers in the
+ pipeline. The IncomingRunner now only processes message through the rule
+ chains, and once accepted, places the message in a new queue processed by
+ the PipelineRunner.
+ * Substantially reworked the entire queue runner process management,
+ including mailmanctl, a new master script, and the qrunners. This should
+ be much more robust and reliable now.
+ * The Storm ORM is used for data storage, with the SQLite backend as the
+ default relational database.
+ * Zope interfaces are used to describe the major components.
+ * Users are now stored in a unified database, and shared across all mailing
+ lists.
+ * Mailman's web interface is now WSGI compliant. WSGI is a Python standard
+ (PEP 333) allowing web applications to be (more) easily integrated with any
+ number of existing Python web application frameworks. For more information
+ see:
+
+ http://www.wsgi.org/wsgi
+ http://www.python.org/dev/peps/pep-0333/
+
+ Mailman can still be run as a traditional CGI program of course.
+ * Mailman now provides an LMTP server for more efficient integration with
+ supporting mail servers (e.g. Postfix, Sendmail). The Local Mail Transport
+ Protocol is defined in RFC 2033:
+
+ http://www.faqs.org/rfcs/rfc2033.html
+ * Virtual domains are now fully supported in that mailing lists of the same
+ name can exist in more than one domain. This is accomplished by renaming
+ the lists/ and archives/ subdirectories after the list's posting address.
+ For example, data for list foo in example.com and list foo in example.org
+ will be stored in lists/foo@example.com and lists/foo@example.org.
+
+ For Postfix or manual MTA users, you will need to regenerate your mail
+ aliases. Use bin/genaliases.
+
+ VIRTUAL_HOST_OVERVIEW has been removed, effectively Mailman now operates
+ as if it were always enabled. If your site has more than one domain,
+ you must configure all domains by using add_domain() in your
+ etc/mailman.cfg flie (see below -- add_virtual() has been removed).
+ * If you had customizations based on Site.py, you will need to re-implement
+ them. Site.py has been removed.
+ * The site list is no more. You can remove your 'mailman' site list unless
+ you want to retain it for other purposes, but it is no longer used (or
+ required) by Mailman. You should set NO_REPLY_ADDRESS to an address that
+ throws away replies, and you should set SITE_OWNER_ADDRESS to an email
+ address that reaches the person ultimately responsible for the Mailman
+ installation. The MAILMAN_SITE_LIST variable has been removed.
+ * qrunners no longer restart on SIGINT; SIGUSR1 is used for that now.
+
+Internationalization Big Changes
+--------------------------------
+
+ * Translators should work only on messages/<lang>/LC_MESSAGES/mailman.po.
+ Templates files are generated from mailman.po during the build process.
+
+New Features
+------------
+
+ * Confirmed member change of address is logged in the 'subscribe' log, and if
+ admin_notify_mchanges is true, a notice is sent to the list owner using a
+ new adminaddrchgack.txt template.
+ * There is a new list attribute 'subscribe_auto_approval' which is a list of
+ email addresses and regular expressions matching email addresses whose
+ subscriptions are exempt from admin approval. RFE 403066.
+
+Command line scripts
+--------------------
+
+ * Most scripts have grown a -C/--config flag to allow you to specify a
+ different configuration file. Without this, the default etc/mailman.cfg
+ file will be used.
+ * the -V/--virtual-host-overview switch in list_lists has been removed, while
+ -d/--domain and -f/--full have been added.
+ * bin/newlist is renamed bin/create_list and bin/rmlist is renamed
+ bin/remove_list. Both take fully-qualified list names now (i.e. the list's
+ posting address), but also accept short names, in which case the default
+ domain is used. newlist's -u/--urlhost and -e/--emailhost switches have
+ been removed. The domain that the list is being added to must already
+ exist.
+ * Backport the ability to specify additional footer interpolation variables
+ by the message metadata 'decoration-data' key.
+
+Bug fixes and other patches
+---------------------------
+
+ * Removal of DomainKey/DKIM signatures is now controlled by Defaults.py
+ mm_cfg.py variable REMOVE_DKIM_HEADERS (default = No).
+ * Queue runner processing is improved to log and preserve for analysis in the
+ shunt queue certain bad queue entries that were previously logged but lost.
+ Also, entries are preserved when an attempt to shunt throws an exception
+ (1656289).
+ * The processing of Topics regular expressions has changed. Previously the
+ Topics regexp was compiled in verbose mode but not documented as such which
+ caused some confusion. Also, the documentation indicated that topic
+ keywords could be entered one per line, but these entries were not handled
+ properly. Topics regexps are now compiled in non-verbose mode and multi-
+ line entries are 'ored'. Existing Topics regexps will be converted when
+ the list is updated so they will continue to work.
+ * The List-Help, List-Subscribe, and List-Unsubscribe headers were
+ incorrectly suppressed in messages that Mailman sends directly to users.
+ * The 'adminapproved' metadata key is renamed 'moderator_approved'.