Django Update - 2013-12-29 to 2014-01-11

Posted by Curtis Maloney on January 12, 2014

Overview

All recovered from the new years period? Brains back online? Good! Let's get to it!

I've been getting some positive feedback from people about these, so it's nice to know I'm making a difference :)

Ticket Movement

Short lived tickets: 30

Tickets Created: 32

Open tickets: 1400 (+9)

Projects

App Loading reloaded

This has been making great headway, and causing a lot of discussion on the dev mailing list.

This work has focused on changing how we think about INSTALLED_APPS.

Another thing uncovered was that Django was being forgiving for people with overlapping import paths. This was something very common before the project layout fixes in Django 1.4.

Why are they bad? Because Python sees them as two distinct modules -- meaning it will import them twice. This means your signals will register twice, if you're not careful.

Sure, there's machinery in there to help cure that problem, but prevention is better than cure. If we have a choice. why allow the condition that requires the cure?

Using setuptools

The idea of using setuptools to make django-admin.py runnable on Windows (#21340) has been brought up again.

After discussion on IRC, the following was decided (as posted by Florian Apolloner):

  • We are not going to support setuptools and distutils, this makes the setupprocess difficult to debug and test imo.
  • Given Donald's "okay" we might switch to setuptools completely
  • There seems to be a bug in pip when installing a wheel, which renders the django-admin.exe unusable on windows, help welcome
  • PR for this issue is now at https://github.com/django/django/pull/2116

Did you know?

As of 1.6, Django supports persistend DB connections. They're disabled by default, and can be enabled per-DB in your DATABASES setting.

Turning this on can save you some time at the beginning of every request. The time varies, depending on which DBMS, if you're using SSL, and the latency between your DB server and app servers, but I've seen measurements between 25ms and 450ms.

For more details see the docs.

Summary

Well, these are getting easier now.

-- Have a better one.

Back to Top