[Mailman-Developers] python 3

Barry Warsaw barry at list.org
Sat Mar 24 00:15:29 CET 2012


On Mar 23, 2012, at 08:19 PM, Andrea Crotti wrote:

>Someone told me that I should poke Barry about Python3 support, so here
>I am ;)
>
>It's clearly something that can be done really soon, but I think it's
>worth to start thinking about it.

Probably you meant s/can/can't/ ... but still, it may not be so dire.  It
won't happen for Mailman 3.0 but I think it should definitely be a goal for
Mailman 3.1 (which will *not* take another 4 years :).

I've tried to be very careful in writing Mailman 3 so that *its* code should
be relatively easy to port to Python 3.  No doubt there will be gotchas, but I
am definitely keeping that in mind as I go.

>In particular I noticed that lazr.config have been untouched since 2009,
>which makes me think that is less likely that they will be ported to
>Python 3.
>
>Is it a valid assumption or there is a porting plan?
>
>Are there any other blocking factors in general from libraries or other
>issues??

Really, we need to get our dependency stack ported.  I'm committed to making
Mailman 3 a Python 3 application as soon as it's possible.  Martin von Loewis
was working on porting Storm at Pycon, which obviously is a critical
component, but I don't think he quite finished.

We need restish.io ported, along with its dependency stack, as well as several
of the still-unported Zope libraries, and *their* dependency stacks.  By
looking in buildout's eggs directory, you can get a good sense of what is
currently required:

flufl.bounce-2.1-py2.7.egg/
flufl.enum-3.3.1-py2.7.egg/
flufl.i18n-1.1-py2.7.egg/
flufl.lock-2.2-py2.7.egg/
flufl.password-1.2-py2.7.egg/
httplib2-0.7.4-py2.7.egg/
lazr.config-1.1.3-py2.7.egg/
lazr.delegates-1.2.0-py2.7.egg/
lazr.smtptest-1.3-py2.7.egg/
mimeparse-0.1.3-py2.7.egg/
restish-0.12.1-py2.7.egg/
setuptools-0.6c12dev_r88846-py2.7.egg/
six-1.1.0-py2.7.egg/
storm-0.19-py2.7-linux-x86_64.egg/
WebOb-1.2b3-py2.7.egg/
z3c.recipe.scripts-1.0.1-py2.7.egg/
z3c.recipe.tag-0.4.1-py2.7.egg/
zc.buildout-1.5.2-py2.7.egg/
zc.recipe.egg-1.3.2-py2.7.egg/
zc.recipe.testrunner-1.4.0-py2.7.egg/
zope.component-3.12.0-py2.7.egg/
zope.configuration-3.8.0-py2.7.egg/
zope.event-3.5.1-py2.7.egg/
zope.exceptions-3.6.1-py2.7.egg/
zope.i18nmessageid-3.6.1-py2.7-linux-x86_64.egg/
zope.interface-3.8.0-py2.7-linux-x86_64.egg/
zope.schema-4.0.1-py2.7.egg/
zope.testing-3.10.3-py2.7.egg/
zope.testrunner-4.0.4-py2.7.egg/

The flufl packages are of course ported. :)

Not all of that will be needed.  For example, I do want to eventually get rid
of zc.buildout, zope.testing, and zope.testrunner, so some of those
dependencies will go away as a result of that.

The best way to help is to work with those upstreams to get official Python 3
support in their libraries.  If you're looking for guidance, start with storm,
WebOb, restish, lazr.*, and the unported zope.* libraries (minus .testing and
.testrunner, and possibly .i18nmessageid). 

The email6 package availability will probably help us a lot too.  Help
R. David Murray on that package, or just pay him money to finish it. :)

Cheers,
-Barry


More information about the Mailman-Developers mailing list