Earlier quoted context omitted.
Because one is essentially EOL?
Well, I'm for user driven EOL, as opposed to top-down, we-know-better EOLining. And the latter doesn't work so well thus far for Python 3.
Removing Python 2.x support from Django for version 2.0
341–350 of 413 posts
Re: Removing Python 2.x support from Django for version 2.0
#342Earlier quoted context omitted.
Ruby also BROKE A LOT LESS, and offered immediate, tangible reasons to upgrade.
The reasons to upgrade are often dependent upon your usage case. To me, the Unicode improvements are reason enough on their own before you even get into the other great stuff (async work, type hinting, stdlib cleanup, pyc rework, etc). asyncio is going to be a slow build, as the ecosystem starts unifying around it. But as that happens, we'll be much better off for it.
Re: Removing Python 2.x support from Django for version 2.0
#343Earlier quoted context omitted.
Oh they do break, but it's a much slower process than RoR (as you described) IIRC the most impacting changes I remember were in Config, replacement of South with a native solution and some timezone issues
The upgrade process of south was pretty shitty. The documentation was telling something like: Ensure you applied all previous migrations and then start from scratch. Thats not an upgrade path. It may work for standalone web applications, but I have a python project (packaged as deb/rpm package and using the packaged django version of different distributions) that should work with multiple django versions and the user…
Re: Removing Python 2.x support from Django for version 2.0
#344Earlier quoted context omitted.
> instead of rethinking/refactoring. And breaking backwards compatibility Django is not RoR. Their users rely on being able to upgrade seamlessly. The overall Api makes sense, there are some rough corners (yes Sites, I'm talking about you) the docs are ok once you get the hang of them
When you say "Django is not RoR", are you saying Django doesn't break backwards compatibility but Ruby on Rails does? If so, I have to very strongly disagree. It's almost mind boggling to me how much they break backwards compatibility as a framework. They usually warn users with a deprecation warning in one version and then they make the backwards incompatible change in the next version, but the sheer amount of these…
That said, having started on updating that same codebase to Python 3, the Django team tries hard to provide the KEY thing you need to seamlessly update a codebase: a version which can support both incompatible features. Without this, you need to have one giant branch with a bunch of renames and other changes. They actually introduce deprecation warnings, and have something non-deprecated you can use in the same version. I think if Python core had introduced a version of Python including both versions of all the module renames with deprecation warnings, the community would be much further along on the upgrade path.
Re: Removing Python 2.x support from Django for version 2.0
#345Earlier quoted context omitted.
How else would you introduce backwards incompatible changes? Especially with the LTS upgrade path that alasdairnicol mentioned I wonder what there is still to improve.
Mark it as deprecated, change the documentation to tell the user to use the new function Y instead and the most important part: keep the old api even if it's crufty. Wait for a few years until everyone upgraded and no longer uses any deprecated functions. Maybe make a final LTS release for those who don't want to upgrade. Then and only then should you ever break backwards compatibility.
Then view HN threads of people saying they have thirty-million-line codebases which utterly rely on deprecated functionality and they never ever plan to upgrade or do even basic maintenance ever for any reason ever, and will abandon your platform and completely rewrite in something that treats them "better".
Re: Removing Python 2.x support from Django for version 2.0
#346Earlier quoted context omitted.
> Many of the science libs want to use seem to be in 2.7 with no signs of moving The most important scientific libraries have pledged to drop support before 2020, and are all python3-ready http://www.python3statement.org/
Is Numpy on that list?
% python --version
Python 3.5.2
% pip install numpy
Collecting numpy
Using cached numpy-1.12.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.12.0Re: Removing Python 2.x support from Django for version 2.0
#347I have a Python 2.7 project that has been running smoothly for many years now and I'm having trouble finding a reason to upgrade to Python 3. The project uses the unicode type to represent all strings, and encodes/decodes as necessary (usually to UTF-8) when doing I/O. I haven't really had any of the Unicode handling problems that people seem to complain about in Python 2. Can someone explain what benefit I would act…
Re: Removing Python 2.x support from Django for version 2.0
#348Earlier quoted context omitted.
I don't have any projects using Django but they have an LTS model - surely you don't need to update to avoid being vulnerable? Just security patches?
For three years, if you release your project the day the LTS comes out.
Re: Removing Python 2.x support from Django for version 2.0
#349Earlier quoted context omitted.
Is Numpy on that list?
Yep: % python --version Python 3.5.2 % pip install numpy Collecting numpy Using cached numpy-1.12.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Installing collected packages: numpy Successfully installed numpy-1.12.0
Re: Removing Python 2.x support from Django for version 2.0
#350Earlier quoted context omitted.
Python 2.7.9 Release Date: 2014-12-10 https://www.python.org/downloads/release/python-279/
2 years is not an unusual time between starting product development and seeing any sort of major customer uptake, and if you're in that time period, your priority really should be getting the customers rather than futzing with code migrations.