Hello, I've implemented an experimental mail bot to archive NM conversations. It contains mad science. The idea is that you Cc all your mails to: "archive-$SOMETHING@nm.debian.org" and then in https://nm.debian.org/public/process/$SOMETHING you get a "download mail archive" link. In the process page you can now also see the archive email address you can use. $SOMETHING can be: - the uid of the applicant (if it has already been chosen): archive-enrico@nm.d.o; - the email of the applicant, with = instead of @: archive-enrico=enricozini.org@nm.d.o; - or even *nothing*: archive@nm.d.o; in that case, the archive destination is inferred by looking at the email headers. Practical consequences: - If you do things right, you don't need to send an extra email with the mailbox when approving an applicant. If you need to send extra stuff like minechangelogs output, or IRC conversation transcripts, or whatever, you can just send it to archive-$SOMETHING@nm.d.o and we will find it. - When assigning applicants to AMs, we can now send only one automated email without a manual followup, since the assignment email now contains the URL to download the mailbox. - We can reassign applicants with inactive AMs without waiting for the inactive AM (or more likely the applicant) to send the partial mailbox. - We can have a look at the current conversation before pinging processes that look stuck. - We should now avoid problems with mail clients generating broken mailboxes, or mail software corrupting them during transfer. Usage examples: [for example's sake, let's pretend I'm the applicant. But do remember to replace my information with that of your applicants, obviously] * Conversation with an applicant Your address and the applicant's address are in the headers, that is enough to find your process record, so you can just Cc archive@nm.d.o * Conversation with an advocate or a comaintainer The bot won't be able to know which applicant you are inquiring about, so you need to cc archive-enrico@nm.d.o or archive-enrico=enricozini.org@nm.d.o * Mailing all your applicants Going on vacation and letting all your applicants know? You can send a single mail to all of them, and Cc archive@nm.d.o: the mail will be archived in all their mailboxes. * Pinging AMs Suppose I (as FD) want to ping all AMs that look inactive, and have that ping show up in every process mailbox. I can send a single mail to all the AMs, Cc archive@nm.d.o, and it will be stored in all the mailbox for all the applicants of all those AMs. * Archiving random mails, just for the records Cc or bounce them to archive-enrico@nm.d.o or archive-enrico=enricozini.org@nm.d.o * Populating the archives with your existing mailbox Ok, this feature is cool but wasn't there when you started with your current applicant(s). How do you catch up? Open your mailbox, select all messages, bounce them all to archive-enrico@nm.d.o or archive-enrico=enricozini.org@nm.d.o Questions that may be Frequently Asked in the future: Q: what if my applicant isn't Cc-ing the archive address in their replies? A: consider it a T&S test: it's quite important to keep interested parties in Cc during online email conversations. Q: anyone can send mails to the archive! Doesn't it mean that evil people could send rubbish, too? A: sure, and they could always send forged emails directly to your AM, pretending to be you. DO sign your emails :) Q: can I add information after a process is finished? A: mail is only archived for "active" processes. A process starts as active, and is marked inactive during the nightly maintenance, when its state is DONE or CANCELED. An application gets state DONE once the LDAP account is created, so mail can still be archived until the process is really done. I plan to let archival happen until after a month since the last process activity (so that, for example, followups can be archived for CANCELLED applications) regardless of the active/inactive state, but that's not implemnted yet. Q: where are the archives stored? A: on nm.debian.org, and they are not world readable. Q: where's the code? A: http://anonscm.debian.org/gitweb/?p=nm/nm2.git;a=summary together with the rest of the nm.debian.org codebase. Ciao, Enrico -- GPG ky: 4096R/E7AD5568 2009-05-08 Enrico Zini <enrico@enricozini.org>
Attachment:
signature.asc
Description: Digital signature