Christopher Meng, 27/08/2012 12:03:
> What about transifex?
I've never used it, but a developer and translator for an OpenStreetMap
piece of software recently said: «We ended up with Transifex, which
might look cooler but certainly is an inferior tool for the translator I
can say now after having used for some hours».
reaching the end of google summer of code, here is my final report. I
have pushed all code to my bzr repository and have a running demo of
the NNTP archive under mailman3.animux.de port 119 and 563. (The
postorius web interface under mailman3.animux.de is not working
completly correctly since I merged the mailman trunk back into my
Features that are working:
* NNTP Daemon could be started via the runner interface. It could be
listen on two ports. The first one is a plain tcp connection
supporting STARTTLS and the second allows nntps
connections. (Please notice, that thunderbird currently does only
support nntps connections and does not ask if it should accept the
certificate. To test the nntps connections you first have to add
the CACert root certificate to the list of trusted certificate
* The nntp daemon supports all mandatory commands and most of the
commands of the READER capability. Additional to that it supports
the AUTHINFO extension. The nntp daemon authenticates the user
against the user information stored by mailman core. Because it has
only access to the crypt passwords, it could only support
authentiaction mechanism that uses plain text passwords. Therefor
it supports and requires the STARTTLS extension (or the plain SSL
connection) for authentication.
* The nntp daemon provides access to all public list archives without
authentication. If a user is logged in, the user has also access to
its subscribed mailing lists, that has private archives. Currently
the nntp archive uses a slightly patched version of kittystore (to
allow access to mails based on its id in the mailing list). There
is also a module that fills the kittystore if sending a mail via
the lists. I currently imported some messages from an mbox into
bla(a)mailman3.animux.de and feed some real messages into
Although gsoc is over now, I would like to continue to work for
mailman3. Next steps for the NNTP archive and archives in general
* Currently the nntp archive uses a slightly patches version of
kittystore (allowing to access mails based on their database
id). The IArchiver implementation uses the SqlAlchemy interface to
feed data into the store. It would be much nicer not require a
second ORM mapper. On solution could be to convert the SqlAlchemy
interface to Storm models. But I think, before that the whole
message store infrastructure should be reconsidered. Currently it
works but their might be the same problems like with the user
information mentioned earlier on this mailing list. kittystore
currently stores a superset of all properties all archives
need. Maybe here (in contrast to the user information) it would be
a good idea to split it into private information of the archives
and simply commonly stored mails. (I wrote some thoughts about that
on my blog.)
* Because of the current architecture of the kittystore the NNTP
archive could not search for message ids over all known
mailing lists. This is a feature of the commands ARTICLE, BODY,
HEAD and STAT. I do not know if there are many news clients out
there supporting it, but it should be supported in any way.
* The NNTP protocols requires multiline responses to several
commands. Currently the responses are build as a list and then send
as whole to the client. For some commands it would be better to use
a generator and to steam the line as they are generated. Even now
(with only a few test lists) I noticed that the querying of the
database about the count of the articles in the different lists
slow down the LIST command. Streaming the lines it would be much
convenient for the user.
* (optional) Currently it is not possible to POST articles to a
mailing list via the NNTP archive. It was stated that most of the
news clients could send a mail as answer. Currently that is okay,
but I think that it would be not so hard to implement it later as
For reference: the current code is available at launchpad. I am
open for improvements and as I said, although gsoc is over now, I
would like to continue to work with mailman. (even though I do not
like bazaar as much as git)
On Aug 21, 2012, at 11:08 AM, Ethan Fremen wrote:
>I now have a job where I will be coding python again, and I was wondering
>if I could help push this forward? the
>http://wiki.list.org/display/DEV/Web+Interface+Status page says that a
>basic UI is being set up.
This is being driven forward in the Postorius project
which can still be discussed here on mailman-developers.
Florian, perhaps you can update the above wiki page to provide some more
updated information about Postorius?
I (failed) to help provide a new UI in the 2006 summer of code sprint. It
seems like now a framework is acceptable :) which makes me happy.
I now have a job where I will be coding python again, and I was wondering
if I could help push this forward? the
http://wiki.list.org/display/DEV/Web+Interface+Status page says that a
basic UI is being set up.
Is there a way I can jump in and help?
I'm working with Robert on a newsletter project where we want to use Mailman 3
Therefore we'll use a moderated list to send out content to the subscribers.
In my opinion or at least for our usecase it doesn't make much sense to send
2 mails to the subscriber, one that tells the user "Confirmation email sent" and
sending a mail to the user that he should confirm his email address.
If the command is successful, at least when there is only one command executed,
it should be enough to send the actual result of the command.
Would that be reasonable to make that configurable?
Where would be the right place to hook in and at least prevent such "double" send outs?
One other thing, I think it would be nice to have the actual list name in the subject
of the action mails, for example "MyMailinglist confirm 66c0886...." instead of confirm 66c0886...."
and it wouldn't interfere with the actual commands being executed as far as i could test it.
How about adding this to mailman3 core and where to add it?
agitator - weblösungen
Tel. +41 43 544 08 85
> Fri, 03 Aug 2012 10:48:46 -0700
> On Aug 03, 2012, at 04:55 PM, Robert Niederreiter wrote:
> >Is there a way to disable command summary sent by mail? e.g. after
> >subscription and subscription confirmation.
> Not currently. Why do you want to suppress the results?
Hi George. Sorry I was on vacation and mostly off-line.
On Aug 06, 2012, at 08:28 PM, George Chatzisofroniou wrote:
>I was wondering what is the best way to test an IArchive
>implementation. Are there any built in test modes that will allow me
>to send sample messages? I only care about the processing of the
>messages through my IArchive implementation rather than actually
>sending them out.
There is an existing test in src/mailman/archiving/tests/test_prototype.py
which tests the prototype archiver. It probably does way more than you need
though, since it interfaces with the file system. But it should give you a
fairly decent idea of how to set up a test for an IArchiver implementation.
A few important things to notice. You'll need to set a layer in the test
class. ConfigLayer ensures that the entire ZCA and configuration subsystem is
initialized before the test is run; you'll need at least that.
If you do want to send out a sample message, you can use SMTPLayer, which sets
up a fake SMTP server and ensures that any email you send through Mailman's
delivery system will get delivered to this fake server. Your test can then
check that the message arrived and has the contents you expect. If you grep
for SMTPLayer, you should find useful examples of that.
See src/mailman/testing/layers.py for the set of existing layers. Their use
is a bit funky because of the weird zope.testing semantics (something I want
to get rid of eventually). In particular, normal inheritance rules don't
apply, which is why you never see upcalls to super(). But that may be detail
you don't care about.
I hope that helps. I'm back from vacation now and happy to answer anything
else if I can.
We have reached the end of GSoC. I have pushed all the code to bzr repo.
There are tworepositories, one is django application  and other one is
django standalone project . It's almost the same way postorius manages
it's code in two separate repositories.
I never worked with django before GSoC. It was one of the greatest learning
experience for me. I learnt a lot about Django. When GSoC started the code
of HyperKitty was very raw and many things were hard coded (urls) and there
was no clear code structure. During my GSoC project I have implemented
features in HyperKitty as well as tried to fix these problems. We now have
a clear code structure, app is separate from project, urls are not hard
coded, unit tests are there in place. Though, HyperKitty is a big project
and we are not close to any release candidate yet, there are essential
features missing from HyperKitty for example we have to connect it to MM3,
plug KittyStore to MM3, cleaner UI.
As always you can check the demo here . (We are aware of the issue that
it throws 500 errors a lot of times :( )
I would like to thank pingou, toshio and the rest of Mailman community
help. As my school year had started I won't be able to work full time on
this project but I will keep pushing changes to HyperKitty when I will have
On Sun, Jul 8, 2012 at 5:22 AM, Aamir Khan <syst3m.w0rm(a)gmail.com> wrote:
> It has been some time since the last update about HyperKitty. I have
> deployed the latest code at mm3test.fedoraproject.org for everyone to
> take a look. Please file any bugs/missing features here
> HyperKitty offer features like upvoting/downvoting of messages, adding
> tags (to be implemented soon!) to threads, user profiles and other user
> specific features. We require users to be logged in before using any of
> these features. So, the first task for my GSoC project was to implement
> login procedure for hyperkitty. It uses django-social-auth application 
> to implement login functionality. Currently, there are four ways of logging
> into hyperkitty test server namely, Google openid, yahoo openid, browserid,
> and registering the user on the site itself. I have not enabled other ways
> of logging in (e.g, twitter) but it should be fairly easy to enable those.
> I have written a blog post about the essential features an archiver should
> posses in my opinion. The second most important thing for me is the
> ability to promote good content posted on the list. An archiver should be
> intelligent enough to suppress the "spamy" content and bring good content
> on the surface. For this we have implemented a feature in which a user can
> upvote/downvote a message. The users accessing a particular thread will be
> able to sort the messages based on votes of other users.
> I have also implemented the basic user profiles in which you can see your
> personal info and the messages you rated. You will be able to edit the user
> profiles soon.
> I have also started to write unit tests .
> Best regards,
>  https://fedorahosted.org/hyperkitty/
>  https://github.com/omab/django-social-auth
>  http://blog.aamirkhan.co.in/post/26723628968/unit-testing-hyperkitty
Aamir Khan | 3rd Year | Computer Science & Engineering | IIT Roorkee