summaryrefslogtreecommitdiff
path: root/src/mailman/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename the member recipients calculating handler to make way for the ownerBarry Warsaw2012-03-231-1/+1
| | | | recipients handler.
* Rename the src/mailman/pipeline directory to src/mailman/handlers since that'sBarry Warsaw2012-03-231-1/+1
| | | | how I think about them anyway.
* * Pipermail has been eradicated.Barry Warsaw2012-03-163-27/+100
| | | | | | | | | | | | * 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 additions: - mailinglist.filter_action
* Eradicate Pipermail. Everything but the scrubber test works. That will takeBarry Warsaw2012-03-151-3/+1
| | | | some new APIs I suspect.
* * Mailing lists get multiple chains and pipelines. For example, normalBarry Warsaw2012-03-073-4/+5
| | | | | | | | | | | 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 `default-posting-pipeline`. * Schema changes: - start_chain -> posting_chain - pipeline -> posting_pipeline
* Restore the RFC 2369 headers to accepted list posts.Barry Warsaw2012-03-013-0/+63
|
* * The `mailman.cfg` configuration file will now automatically be detected ifBarry Warsaw2012-02-271-4/+11
| | | | it exists in an `etc` directory which is a sibling of argv0.
* * The `confirm` email command now properly handles `Re:`-like prefixes, evenBarry Warsaw2012-02-261-2/+2
| | | | | | | | | | | | if they contain non-ASCII characters. (LP: #685261) Also: - When the registrar confirms an email address, the verified_on value gets set using the Mailman datetime interface. This simply improves testability for that API. - In Runner._one_iteration(), be sure to commit the database transaction *before* calling _short_circuit().
* copybumpBarry Warsaw2012-01-0111-11/+11
|
* A couple of small cleanups.Barry Warsaw2011-11-041-4/+1
|
* * Fix a couple of spelling errors.Barry Warsaw2011-11-021-2/+2
| | | | | | * Code cleanup (<> -> != ... sigh) * Minor refactoring of database setup code so that touch() is moved to the SQLiteDatabase class; it's not relevant for PostgreSQL.
* * `bin/mailman start --force` option is fixed. (LP: #869317)Barry Warsaw2011-10-161-10/+14
| | | | | | | | | | | | * acquire_lock_1(): No need to unlink the tempfile * Start.process(): Don't print error message when the lock is in stale_lock or host_mismatch status and --force has been given. * control.rst: Refactor test code into test_control.py. * test_create.py: To more accurately mimic argparse, FakeParser.error() needs to `sys.exit(1)`. The `SystemExit` must also be caught in the appropriate tests. * logging.py: Locking is now down by the flufl.lock package, so apply the `mailman.lock` configuration to it.
* Finally, all doctests are named .rstBarry Warsaw2011-09-231-0/+0
|
* * Moderating a message with Action.accept now sends the message. (LP: #827697)Barry Warsaw2011-08-221-0/+7
| | | | | | | | | | | Also: * Use utilities.datetime.now() so that moderation related dates are predictable during the test suite. * When a message is accepted, drop it in the pipeline queue. The above bug was caused by the message going in the incoming queue, and then being re-moderated. * Expose mailman.bin.master.Loop in __all__. * Add some helpful debug logging.
* Basic infrastructure for fixing bug 827036.Barry Warsaw2011-08-171-0/+2
| | | | | | | | | * Use zope.events to signal when a mailing list has been created or deleted. * Register a handler for the ListDeletedEvent which cleans up member subscriptions. * Relax the criteria for find_members(), both internally and in the REST API, so that the subscriber is not required. E.g. you can now find all members of a mailing list.
* Remove all pylint vestiges.Barry Warsaw2011-08-032-6/+0
|
* Major terminology shift:Barry Warsaw2011-06-014-28/+30
| | | | | | | | | | | | | | | | | * Queue runners are now called just 'Runners' since several of them don't manage queue directories. * Ban the term 'qrunner' too. * The master queue runner watcher should now just be called the 'master' or the 'master runner'. * bin/qrunner -> bin/runner * mailman.qrunner log file -> mailman.runner * master-qrunner.lck -> master.lck * master-qrunner.pid -> master.pid Also: * Remove some obsolete files * Begin the .txt -> .rst renaming
* Rename 'queue' directory to 'runners' since not all subprocesses run a queue.Barry Warsaw2011-05-295-0/+778
|
* Test (and fix!) the path in the outgoing runner where a socket.error getsBarry Warsaw2011-05-171-3/+3
| | | | | | raised during the delivery function. Modify the ReopenableFileHandler so that the filename is a public attribute.
* Happy New Year.Barry Warsaw2011-01-019-9/+9
|
* This is part 1 of the merge of Jimmy Bergman's branchBarry Warsaw2010-12-281-16/+16
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lp:~jimmy-sigint/mailman/restapi_additional_attributes Ostensibly, this adds support for a few additional attributes through the REST API: * default_member_moderation * generic_nonmember_action * member_moderation_action * reply_goes_to_list * send_welcome_msg * welcome_msg However, I had never previously fleshed out the conversion of default_member_moderation and member_moderation_action into the MM3 way of things. That is now done. Non-member moderation still needs to be done. Specific changes: * mailman.chains.base.Chain no longer self registers * The built-in chain gets a new link for checking 'member-moderation'. If this rule matches, it jumps to the 'member-moderation' chain, which checks member_moderation_action and returns a link that jumps to the appropriate terminal chain. * Chain initialization is done by the same auto-detection as rules, handlers, etc. The one tricky thing is that abstract base classes such as Chain and TerminalChainBase can't be instantiated. For now, there's an ugly special case to skip these. * default_member_moderation is now exposed in the IMailingList interface. * Member.is_moderated gets set in the constructor from the mailing list's default_member_moderation. * The 'moderation' rule is renamed 'member-moderation'. TODO: * Work out non-member moderation * Add member_moderation_action to IMailingList * Double check tests for reply_goes_to_list, send_welcome_msg, and welcome_msg
* | Support Python 2.7. (LP: 667472)Barry Warsaw2010-10-271-1/+1
|/
* Fix the obvious errors identified by pyflakes. Skip false positives (mostlyBarry Warsaw2010-10-085-6/+2
| | | | | due to _() interpolation) and a few other problems that did not have immediately obvious fixes.
* Rip out lazr.restful and replace it with restish. This simpifies a lot of theBarry Warsaw2010-02-231-2/+1
| | | | | REST architecture, at the expense of a few features, and less support. So far so good though.
* Oh FFS. lazr.restful 0.9.18 totally broke our shit by introducingBarry Warsaw2010-02-161-10/+9
| | | | | | | | | | | | | | multiversioned web services. In concept, that's a great idea, but in (current as of 0.9.18) practice it sucks because it /forces/ us to adopt multiversions when really I could care less. After gobs of painful experimentation, this passes all the tests. I guess that means it's right <wink>. Another, more reasonable fix is to re-order when logging is initialized. This is moved to the start of initialize_2() because in the test environment, we don't want to initialize the loggers until after the test configuration has been pushed. Otherwise, because of the changes to support the FHS, logging will go to the wrong place. This really only affects tests, since in operational mode, initialize always happens immediately one after another.
* Checkpointint support for different path layouts, allowing us to optionallyBarry Warsaw2010-01-271-1/+0
| | | | | | | | support the Filesystem Hierarchy Standard. This is done through the configuration file. * add a --paths/-p option to 'bin/mailman info' * PIDFILE -> PID_FILE
* Happy New Year.Barry Warsaw2010-01-019-9/+9
|
* * Leave a mailing list via the REST API.Barry Warsaw2009-12-281-1/+0
| | | | | | * delete_member(): If the address is not associated with a member, raise NotAMemberError. * NotAMemberError -> interfaces/member.py
* * Add REST interface for joining a mailing list.Barry Warsaw2009-12-281-31/+10
| | | | | | * add_member() now returns the newly created IMember. * Reorganized several exceptions and exposed them to the REST API. * Added NoSuchListError.
* The test suite has to be able to inhibit the loading of any configurationBarry Warsaw2009-12-131-0/+9
| | | | files.
* Extend the mailman.cfg search algorithm, and make it work across allBarry Warsaw2009-12-131-0/+31
| | | | applications.
* * Refactor the language manager off of the config object and into a utility.Barry Warsaw2009-12-102-4/+6
| | | | | | | | * Fix a few small typos in exception handlers. * Move the initialization of the Zope Component Architecture into the first initialization step. The only reason we couldn't do that previously was because the domain object referenced the config, causing a circularity problem. Refactor the Domain implementation to avoid that.
* * Mostly eradicate mentions of mailmanctl.Barry Warsaw2009-12-051-1/+2
| | | | * In most human readable text, qrunner -> queue runner
* Do not create the .mo files during setup. This makes things go much faster.Barry Warsaw2009-11-241-4/+11
| | | | | The tests do require a partial French translation for digester.txt, so just include the bare minimum, already msgfmt'd in the mailman.testing package.
* Factor out most of the i18n subsystem and convert to using the flufl.i18nBarry Warsaw2009-11-153-1/+113
| | | | package.
* Move a module.Barry Warsaw2009-11-041-0/+59
|
* smtp_direct.py is dead and gone.Barry Warsaw2009-11-031-9/+4
|
* mailmanctl must use absolute importsBarry Warsaw2009-08-171-0/+2
| | | | | | Turn debug log level up to info so we're not spammed. Apparently we now have to add a \n to the stream output in emit().
* Move BadDomainSpecificationError to domain.txt interface. Try to set this toBarry Warsaw2009-07-261-4/+0
| | | | | | return an HTTP 400 error, though it does not seem to work. Expose list creation through the API.
* More REST server updates.Barry Warsaw2009-06-291-9/+7
| | | | | | | * Get rid of in-Python adapter registration in favor of ZCML. Eventually, I'd like to get rid of the ZCML. * Set the view_permission to None, but it's still not right. * Add IDomainSet and an adapter from Configuration to IDomainSet.
* Refactor __import__'s into a separate utility module.Barry Warsaw2009-05-161-9/+4
|
* Add initialization pre- and post- hooks, configurable in the config file.Barry Warsaw2009-05-151-5/+17
| | | | | | | | | | | This lets you run a bit of Python at various stages of the initialization process. Move the warnings filters to the top mailman package __init__.py so you always get it. lazr.restful is too chatty. The environment variable $MAILMAN_CONFIG_FILE now overrides -C. Hmm, I think we really want it the original way.
* Checkpointing restful annotations.Barry Warsaw2009-04-011-1/+5
|
* Hook in lazr.restful (which isn't in the Cheeseshop yet).Barry Warsaw2009-04-011-0/+48
| | | | | | | Add infrastructure that the first REST interface will use, i.e. providing the Mailman and Python versions. Update bin/version
* Add argparse 'cause I think this might end up being cool.Barry Warsaw2009-03-292-4/+4
| | | | | | | | Refactor the finding of components so that it's much easier to find and register the ones that come with Mailman by default. Move all the old cmd_*.py commands into the attic. These will eventually be ported to the new framework.
* Bye bye plugins module.Barry Warsaw2009-03-291-74/+0
|
* typoBarry Warsaw2009-03-291-1/+1
|
* Get rid of the mailman.rules entry point.Barry Warsaw2009-03-091-9/+8
|
* Get rid of the mailman.handlers entry point.Barry Warsaw2009-03-091-9/+8
|
* Remove the mailman.database setup.py plugin, instead opting for defining theBarry Warsaw2009-03-051-4/+6
| | | | database class in the configuration file.