I may be willing to support this. I have 18 month's of Python
experience (mostly 2.4) and I have been out of work for a long time
due to illness, so a project like this may look good on my CV!

I have never been involved in an OS project before, though I am aware
of the guidelines.

At present the only machine I have available is a Windows Vista
laptop :-( Are there development/test servers available?


Cheers,

Richard


On Sep 14, 1:03 pm, Jannis Leidel <lei...@gmail.com> wrote:
> Hi all,
>
> After last week's sprint I wanted to get you up-to-speed about the
> current state of porting Django toPython3.
>
> As some may be aware Martin von Löwis has been working on a port for
> a while [1] but only recently I've had the chance to meet with him and
> talk through the porting process.
>
> I'm not going to hide the fact that it'll be a long process, but I'm
> also convinced it's an important step for Django to make. I'm writing
> this in the hope to find volunteers to join the porting efforts.
>
> Goals
> -----
>
> To allow Django to run onPython3there are several goals to achieve,
> some of which are our respsonsibility, some depend on 3rd party libraries
> we use internally and some left to the users that use Django to build
> their websites. It's my understanding that we can't solve everything
> at once, so take this with a grain of salt:
>
> - get Django to run onPython3
> - provide helpers and docs for porting Django-based projects
> - help out 3rd party projects we rely only to make the jump (if needed)
>
> Porting strategies
> ------------------
>
> As you can imagine there are still quite a few open questions at
> the moment about specific porting problems but taking from the
> experience in thePythoncommunity I think we have a good general
> strategy.
>
> There are a few assumptions we're applying either because it's
> unrealistic or impossible to maintain as long asPython2.X is in
> use for the forseeable future; so these strategy *don't* work:
>
> - Create aPython3only port ("burning the bridges")
>
>   This is outright a no-go since it would leave all thePython2.X
>   projects in dead water. Instead we need to provide a migration
>   path for them.
>
> - Maintaing a separatePython3branch ("dual releases")
>
>   While this would allow for new projects to usePython3, I'm
>   convinced this has the potential to split the community. It'd
>   also be a major burden for the core team to maintain both
>   branches. Instead we need a combined effort.
>
> So as a result of that the only viable option is to support both major
> versions ofPythonat the same time, with the same code base.
>
> Fortunately thePythoncommunity gained lots of experience in the past
> years to make this happen (e.g. Lennart Regebro's book [4]). There are
> also tools to ease the transition of Django and the Django-based
> projects. Some of which are:
>
> - six [3] -- a compatibility library that includes many (if not all)
>   needed import proxies and utilities to prepare Django and Django-based
>   projects to be ported toPython3.X. This only applies to API that
>   isn't syntactically changed, but only moved or enhanced in3.X.
>
> - 2to3 [2] -- an extensible library which is able to translate the rest
>   of thePython2 code to thePython3equivalent. For every Django
>   specific feature that isn't covered by the default 2to3 "fixers" we can
>   write our own if needed. It integrates with distutils (inPython3.X)
>   and is able to convert Django at installation time. Installing Django
>   withPython2 wouldn't trigger the translation process, of course.
>
> Code status
> -----------
>
> During the sprint we've moved Martin's code from a Bitbucket clone to
> an own SVN branch:
>
>  https://code.djangoproject.com/browser/django/branches/features/py3k/
>
> Some notable changes:
>
> - a modified ``setup.py`` which automatically calls 2to3 during installation
>
> - a ``py3ktest`` helper bash script which -- for now -- installs Django in
>   a directory called "3k" in the same directory to trigger the translation
>   fromPython2 toPython3code and then run the tests from the build
>   directory directly because they are not part of the installation in "3k"
>   because we don't include it. This script should be seen a temporary
>   workaround till we've found a better way to run the tests (Could we use
>   tox instead? [5]).
>
> - a new django.utils.py3 module which contains some helpers that are used
>   throughout the code as a common API to ease the pain of maintaining a
>   project that runs on bothPython2 and3. I expect it to grow in size
>   while we port Django, but even then it may not be complete enough to
>   be useful for Django-based user projects. Which is why I think Django
>   should ship the "six" library [3] instead, on the long run ("six" has
>   the advantage of being maintained by aPythoncore developer).
>
> A good overview of the current changes can be seen on Bitbucket:
>
>  https://bitbucket.org/django/django/compare/features/py3k..default
>
> Right now it's mostly changes to how byte and unicode strings are handled
> by using a b() and u() function instead of the 'u' prefix. That said,
> this is far from complete.
>
> How to help
> -----------
>
> We have multiple big pieces of the puzzle to solve:
>
> - Try out the branch by running the tests with the ``py3ktest`` script
>   and fix the failed tests (needs an installed ``python3`` binary), one
>   by one. This may be repetitive work, but could also be the chance for
>   you to dive into the internals of Django.
>
> - Write a tutorial to prepare a Django app to forPython3by using one
>   of the tools we provide. Have a look at the official porting guides [6]
>   for inspiration.
>
> - Help port the 3rd party libraries we rely on in Django (e.g. MySQLdb [7])
>   by getting in touch with their community.
>
> There are probably lots of other small steps to make, but I'm confident that
> we'll figure them out on the way.
>
> Let's start the porting,Python3is waiting for us,
> Jannis
>
> 1:https://bitbucket.org/loewis/django-3k/
> 2:http://docs.python.org/library/2to3.html3:http://pypi.python.org/pypi/six
> 4:http://python3porting.com/
> 5:http://tox.readthedocs.org/
> 6:http://docs.python.org/py3k/howto/pyporting.html
> 7:http://sourceforge.net/projects/mysql-python/forums/forum/70460/topic...

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to