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.