On Thu, May 22, 2014 at 7:50 AM, Fredrik Blomqvist
<
fredrik.bl...@gmail.com> wrote:
> Back then they said all of them (the dependencies) were compatible with
> Python 3, but whatever. If I enjoy Kotti during my coming project (I'll just
> do Python 2), I might create that branch this summer ;)
What it needs is testing to determine what the incompatibilities are.
Then we can determine the scope of the work
I converted one Pylons application to Pyramid in 2012 and tested it in
both Python 2 and 3 as I went, and was able to keep it running on
both. Last February I finished my second conversion, which I did the
same way, except I repeatedly encountered fatal roadblocks in Python
3. I used Fanstatic in the second application, and it dependend on
'which', which was incompatible with Python 3. 'which' is a tiny
module that looks for an executable in your $PATH and returns the full
path to it. Fanstatic wanted it for some obscure features that I
didn't even think I would use. I tried to patch 'which' but it was too
complicated to figure out, because it did different things on Windows
and Unix and I don't know enough about Windows. I even contemplated
making a stub 'which' that always returned None. But I wasn't 100%
sure it wouldn't break something I'd want in production. So I just set
Python 3 testing aside. Then a couple months later 'shutilwhich'
appeared and was Python 3 compatible, and Fanstatic switched to it. So
I tried running my app in Python 3.3 again, and it got all sorts of
Setuptools and other errors that kept changing. I blew away my
virtualenv and recreated it, but still got too many weird and changing
errors that I was afraid to use it in production. Doubtless I'll try
again in a couple months.
I'm now on my third application conversion, and it uses LDAP.
'python_ldap' is not Python 3 compatible, but there's a new package
'python3_ldap' which is. (And is pure Python, and also works on Python
2.7.) I tested it on 3 and it behaved well. So the next time I get in
a testing mood, I'll try my third app on 3. It's also using Fanstatic
and Bootstrap, and SQLAlchemy.
The point of all this is, Kotti's dependencies are probably mostly
compatible, but it's still worth making a list of which parts aren't,
and then we'll see how far we have to go. Pyramid and SQLAlchemy have
been compatible for a long time, so they say, so there's the two
biggest dependencies right there.
But I don't have time to do it since I need to finish WebHelpers2 and
upgrade Unipath before working on anything else....