Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Does anyone know how they decided on that porting strategy? Why not move to Python three and run 3to2 for backwards compatibility?


3to2 as I understand it works best for supporting Python 2.6 and 2.7

Django had committed to supporting older versions of Python 2.x that weren't Python 3 friendly (largely because of older installations of RHEL and CentOS).

Here was a discussion asking about dropping 2.4 support during development of Django 1.3: http://python.6.n6.nabble.com/Django-1-3-and-Python-2-4-td50...

Django 1.2 still supported Python 2.3+, Django 1.3 supported Python 2.4+, Django 1.4 supported Python 2.5+.

Django 1.5 (which is the current trunk) finally has Python 2.6.5 as its minimum platform which reduces some of the major compatibility pain points.


The porting strategy was decided by rough consensus in the core team.

We wanted a solution that would be convenient for authors of pluggable apps, so they could use the same strategy as Django itself. This is why we used six rather than an ad-hoc compatibility library.


A big advantage of this approach is that they can test on 2.x and 3.x without needing to run any 'translater'. That means the develop-test cycle goes quicker.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: