Rework digests and add a send-digests subcommand.
Several improvements to digests, including a fix for issue #159 (closed), allowing digest_send_periodic
and digest_volume_frequency
to be set through the REST API. This also adds a mailman send-digests
subcommand which replaces the MM2.1 senddigests
cron script.
This branch also renames digestable
to digests_enabled
and gets rid of the unused nondigestable
attribute on IMailingList
objects. Another change is to rename the data directory for mailing lists from using the list's fqdn list name to using its List-ID.
@abompard I'll be especially interested in your take for 70af5a4e5790_digests.py where I'm using a batch_alter_table
to rename the column. This works without any need to special case SQLite, and is a newish feature of SQLAlchemy. It uses a suggestion of mine from a while ago (and based on an implementation we used to carry when we were using Storm), where for databases that have an actual ALTER command, it just DTRT, but for SQLite which doesn't, it creates a new table and migrates the data to it, then pivots the new table in place. AFAICT, it's working perfectly in the SQLite case locally, so let's see how CI with PostgreSQL goes.
@abompard I'll also be interested in your opinion of the send-digest
command since in your live lists there previously was no way to send digests on a daily basis when the size threshold hadn't been met.