7 ms·
Wow, I remember being curious about Django a year ago. Now it's at 2.0 ! It already felt overwhelming then, but now even more so. I can't wait to check it out
by LeoJiWoo 9y ago
Wow, I remember being curious about Django a year ago.
Now it's at 2.0 ! It already felt overwhelming then, but now even more so.
I can't wait to check it out more.
On a sidenote, I feel bad for the developers who have to migrate to Django 2.0.
Hopefully it's not too much work, I know a codebase review and full update can't be fun with the business managers and customers at your throat.
- cloverich 9y agoKind of funny, but I had the opposite reaction. I was playing with Django when I was first getting into web dev 6 or 7 years ago. When I saw this, I thought "Oh wow, they're just barely getting to 2.0 and making breaking changes?"
- LeoJiWoo 9y agoI'm excited by seeing support and continued development. Nothing worse than a dead framework, but I def see your point. Stability is very important too.
- nitely 9y agoThey always make breaking changes. There's usually a deprecation period though. They didn't do semver but it seems they will now.
- collinmanderson 9y agoIt's roughly semver, but if you receive warnings when using 2.0, for example, your code may break in 2.1. If you don't receive warnings, your code will work fine on future 2.x releases.
- ameliaquining 9y agoIf you were already using Python 3, and your code wasn't emitting any deprecation warnings, then it's a fully backwards-compatible change and you can just bump the version number in your requirements.txt with no other changes. If your code was emitting deprecation warnings, then you have to fix them before upgrading, but this should be relatively rare and they shouldn't be that hard to fix. If you're still on Python 2, then you have to either migrate to Python 3 or stay on Django 1.11 (which is an LTS release). 1.11 EOL is April 2020, which is the same time as Python 2's EOL, so you were going to have to migrate your codebase by then anyway.
- reificator 9y ago> so you were going to have to migrate your codebase by then anyway That's an optimistic viewpoint.
- erichurkman 9y agoIf you're already at 1.11 and on Python 3, it should not be too bad of an upgrade. If you have to go from an earlier version _and_ do the swap from Python 2 to 3, you may be in for a world of pain.
- JshWright 9y agoYeah, make the 2.7 -> 3 (preferably 3.5+) transition on 1.11, _then_ do the 1.11 -> 2.0 upgrade.
- deleted 9y ago[deleted]
- rtpg 9y agoThe biggest challenge with upgrading Django is making sure all your Django-related dependencies have fixed things up. Django only has one paid full-time maintainer to my knowledge (Tim Graham). So given the team's limited peoplepower Only the last two releases (+LTS releases) get security updates. This means that Django 1.10 (released 18 months ago) won't get updates, so if you use any new features you're on the upgrade treadmill. Django itself is very good about offering clean upgrade paths. Very vocal about breakage, usually will not introduce breakage unless there's some good reasons to. Unfortunately third party libraries often take a while to update, so you can quickly find yourself overwhelmed with figuring out which deps are safe to upgrade and which aren't. I try to be a good OSS citizen and send in compatibility fixes for libraries that fall behind, but maintenance can be hard when you're only really using about 25% of a library. I wouldn't be comfortable with sticking to older Django LTS releases (there was still a lot of obvious improving to be had in the ORM and migrations in particular), but I think Django 2.0 is in an amazingly good place now. Sticking to this for a couple years would be fine for a lot of people.
- orf 9y ago> Django only has one paid full-time maintainer to my knowledge It indeed does, but I don't agree that it is too limiting in that respect. A lot of Tim's time is spent curating, reviewing and merging PR's contributed by the community. It's far, far from a one-man band. Not sure if that was what you are implying, but that's how I read it.
- bluewalt 9y agoI can't agree more with you. That's the one and only reason I'll stick to the 1.11 version. Garanty of compatibility between Django and ALL my external packages is a lot more valuable that a responsive admin panel and a new syntax for urls. I would love "important" (yeah it's opiniated) packages move to the official Django repo (like Channels), to help reduce this risk when migrating. It's actually surprising how often I can't find the compatibility information of a Django package.
- rtpg 9y agoI've had decent luck for the most part, but it only takes one package. I would love to see someone start on a combination of `pyup` and some "maintenance fee" for projects that are found in ones `requirements.txt`. For a monthly fee you can make sure that at least someone is checking to see that your Django dependencies are being kept up to date as time moves forward. The pitch being "get an extra maintenance developer for a fraction of the cost".
- simonw 9y agoIf you're already on Python 3, upgrading from Django 1.11 to Django 2 is pretty much the same amount of work as upgrading from 1.10 to 1.11 was. The "2" in the version here reflects the dropping of support for Python 2, and the switching over to a new versioning scheme: https://docs.djangoproject.com/en/2.0/internals/release-process/#internal-release-cadence https://docs.djangoproject.com/en/2.0/internals/release-proc... If you need to upgrade from Python 2 to Python 3 it will likely be a fair amount of work. In case it's useful, here's what I did to upgrade my blog (a pretty simple application, though one that's been around for a long time and survived a lot of different Django versions): https://github.com/simonw/simonwillisonblog/pull/10 https://github.com/simonw/simonwillisonblog/pull/10
- bastawhiz 9y agoI run a fairly large Django app. Looking at the release notes, it doesn't seem like it will take more than an hour or two to upgrade.