| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Also, allow doctest cleanups to be tuples, in which case the first item is the
callable and the subsequent items are the arguments. Makes for
config.pop()'ing much nicer.
|
| |
|
|
|
|
|
|
| |
- Add explicit dependency on zope.event in setup.py.
- Use Python 3 compatible syntax for specifying that a class implements an
interface, i.e. the @implementer class decorator.
- print_function futures.
- Whitespace normalization.
|
| |
|
|
| |
Beta testers can can safely remove `$var_dir/queue/news`.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
------------
* 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.
Configuration
-------------
* 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.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
|
| | |
| |
| |
| | |
some new APIs I suspect.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"display_name" across the board.
* `IMailingList.real_name` -> `IMailingList.display_name`
* `IUser.real_name` -> `IUser.display_name`
* `IAddress.real_name` -> `IAddress.display_name`
* Schema changes:
- real_name -> display_name (mailinglist, user, address)
|
| |/
|
|
| |
`$var_dir/archives/prototype`, given by Toshio Kuratomi.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |\
| |
| |
| | |
(LP: #949926).
|
| |/ |
|
| |
|
|
|
|
|
|
| |
IMailingList documentation.
Also:
* `ILanguageManager.add()` returns the `ILanguage` object just created.
|
| |
|
|
|
|
|
|
|
|
| |
email.
Also:
- The user's Full Name is included on the To line of a welcome message.
- Clean up some tests.
- The welcome_message_uri for lists using the default style is set to
mailman:///welcome.txt so a welcome message is sent by default.
|
| |
|
|
|
|
|
| |
Also:
- updated the 'join' command's descriptions
- email commands should now have a short_description. The description
(i.e. long description) should not repeat this information.
|
| |
|
|
|
|
|
|
|
| |
`digest=` argument now accepts the following values: `no` (for regular
delivery), `mime`, or `plain`.
Also:
- Fix get_queue_messages() to properly sort on the string representation of a
header, since it could be a Header instance.
|
| |
|
|
|
|
| |
in the database, namely strip out empty lines and comments first, otherwise
PostgreSQL spews "empty statement" errors at us.
- Down to 4 test failures.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Create an IMailTransportAgentAliases utility that contains all the logic for
generating all the aliases for a mailing list, both the fully-qualified ones
and the local-part ones.
* Add -f and -s options to `bin/mailman aliases` to facilitate outputing the
aliases in other formats than the configured one, and for printing out a
simple list of the aliases.
* IMailTransportAgentAliases -> IMailTransportAgentLifecycle; also add a new
definition for IMailTransportAgentAliases
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
both encrypted according to a scheme, and a bytes object.
add_member(): Use encrypt_password().
cli_members: Give the user a default, user-friendly password. Of course, this
will be encrypted so it can't be retrieved, but it can be reset.
Passwords are stored as bytes objects, not unicode now.
ConfigLayer: Set the default test password scheme to cleartext.
General test repair.
|
| |
|
|
|
| |
* Find users by user_id via the user manager.
* Extend the repr of users to include the user id.
|
| | |
|
| |
|
|
|
|
| |
IAddress.email and IAddress.original_address to IAddress.original_email. From
now on we'll use "address" to talk about the IAddress object and "email" to
talk about the textual email address.
|
| |
|
|
|
|
| |
ports are still hard coded.
Also, 'bin/mailman info' dumps the REST root url and credentials.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
does a pretty good job anyway.
* Remove master.get_lock_data() now that flufl.lock 2.1 provides the same
detailed information.
* Add WatcherState.none to indicate that the master is not running.
* Instrument master_state() and acquire_lock_1() for testing, and add
unittests.
* LBYL for 'bin/mailman start' so that the error message when the master is
already running happens in the foreground process and is more user friendly.
* Add 'bin/mailman status' to provide master queue runner status on the
command line.
|
| | |
|
| |
|
|
| |
process just the front-end.
|
| |
|
|
| |
* Move DigestFrequency from mailinglist to digests.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
support the Filesystem Hierarchy Standard. This is done through the
configuration file.
* add a --paths/-p option to 'bin/mailman info'
* PIDFILE -> PID_FILE
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
* -a option uses input_filename internally and a metavar of FILENAME
* Change the assertion for when there isn't 1 argument
* Do a better job of converting input to unicode.
|
| |
|
|
|
|
|
| |
This is because registration confirmation messages must come from the mailing
list that the subscription request came from.
Remove IDomain.confirm_address() since this lives only on the IMailingList now.
|
| |\ |
|
| | | |
|
| |/
|
|
|
|
|
|
| |
* 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.
|
| | |
|
| |
|
|
|
|
|
|
| |
* Give IMailingList a .domain attribute which looks up the IDomain for its
.host_name. This cleans up a lot of code.
* Add a test for the 'confirm' email command.
* Suppress blank lines in email command responses.
* Make the IDomainCollection a utility.
|
| |
|
|
|
| |
* when postfix is not installed
* because the Subject values are instances, not strings
|
| | |
|
| | |
|