Download the podcast:
Welcome to Django's News and Updates podcast, the accompanying podcast to Django's blog and update email.
These are the updates for the 28 days up to 26th January 2014
The latest official version of Django is 1.6.1. The current production versions of Python are 2.7.6 and 3.3.3.
This podcast is intended to provide brief summary coverage of the current activity in the Django community.
- Release information
- News and Upcoming Events
- Interview with Andrew Godwin about 1.7 release
- Interview with Russell Keith-Magee about the new Validation tool and some background to the App refactor
- Dev List Summary
There were no security updates during this period.
(things that are happening in the next 4 weeks)
01-Feb-2014 DjangoCon Europe -- Call for speakers closes 1st February 2014
07-Feb-2014 Django Weekend Cardiff
22-Feb-2014 Django sprint in Amsterdam, The Netherlands
22-23 Feb 2014 PyCon Philipines Kenneth Love tweeted Tutorials are selling out fast so
[ANNOUNCE] Django 1.7 alpha 1 released
Posted by James Bennett on January 22, 2014
As part of the Django 1.7 release process, today we've released Django 1.7 alpha 1, a preview/testing package that represents the first stage in the 1.7 release cycle and an opportunity for you to try out some of the changes coming in Django 1.7.
Django 1.7 will bring several major new features to Django, along with a host of other improvements. Highlights include a schema-migration framework, a new validation tool to help identify and fix common errors, a complete refactoring of how Django identifies and loads applications, and support for custom database lookups.
For full details, see the in-development 1.7 release notes.
As with all alpha and beta packages, this is not for production use. But if you'd like to take some of the new features for a spin, or to help find and fix bugs (which should be reported to the issue tracker), you can grab a copy of the alpha package from our downloads page. And as always, signed MD5 and SHA1 checksums of the 1.7 alpha package are available.
In addition to the changes covered in the release notes, there are two already-noted issues to be aware of when using the 1.7 alpha package:
- Issue #21856 -- an empty value for the DATABASES setting will cause a crash.
- Issue #21831 -- using the contenttypes package or GenericForeignKey will fail unless django.contrib.auth is in INSTALLED_APPS.
Both of these will be fixed prior to the final 1.7 release.
Additionally, users of South (a popular third-party package for schema migrations) should note that South is not compatible with the 1.7 alpha.
[Interview with Andrew Godwin:
- Release Management
- Release Cycle
- Schema Migrations ]
[Interview with Russell Keith-Magee:
- Validation/System Check framework
- Google Summer of Code (GSoC) process and applications
- Django Trademark ]
Other non-Django recent releases to be aware of:
Sentry 6.4.4 -- 29-Dec Pillow 2.3.0 -- 1-Jan Django Debug Toolbar 1.0.1 -- 7-Jan Django Extensions 1.3.0 -- 7-Jan
There was no official "news" items so far this month, but there was one of the largest bit of "unofficial" news that there's been perhaps in years:
Adrian and Jacob retiring as Django BDFLs Written by Adrian Holovaty on January 13, 2014
Since July 2005, when Django was open-sourced, Jacob Kaplan-Moss and I have been the two Benevolent Dictators For Life (BDFLs) of the project. Today we're both retiring from our formal BDFL roles, given that (1) we don't have the time for it that we once had and (2) Django is in great shape with a vibrant community of contributors.
"If you're a Django user, though, have no fear. Honestly, this title seems like a big change "on paper," but in reality it won't change much. "
We reject kings, presidents and voting. We believe in rough consensus and running code.
—The Tao of the Internet Engineering Task Force (IETF)
For me, this has been a long time coming — I’ve been thinking about this for at least a year. .. this is a similar to a lot of the changes we’ve made over the years: it’s a formalization, and a naming, of what’s already happened.
I think this decision goes to show how strong, humble, dedicated and honest our community and particularly the leaders of our community are. This is perhaps one of the elements which makes the Django project as strong as it is.
In softer news:
On the 10-Jan-2014 Audrey Roy tweeted that: " at the end of 2013, she married @pydanny."
I believe that they'll now both be going by the surname "Roy Greenfeld".
Some of their notable collaborative acheivements since they met through PyCon diversity grant in 2010:
- Audrey founded PyLadies
- Co-authored Two Scoops
- responsible for DjangoPackages as well as both Python Cookiecutter and Django Cookiecutter
- keynoted several conferences
Tireless work: blogs, talks
This has not stopped them from being their usual prolific and generous selves, on the same day they tweeted that;
"very first proof of Two Scoops of Django 1.6 should arrive " to them shortly. Looking forward to that release and they tell me it should be available in [SOON]
"It's pretty likely"
realpython.com tutorials kickstarter
Successfully funded on 15 January
1,446 backers $50,001 pledged (of $3,500 goal)
The Real Python team has successfully delivered two other KickStarter projects. We've done this before and know what to expect - and we're doing it again! Our timeline is clear and realistic. We will deliver on this project.
Back in Sept 2012, Kenneth Love. $13,354 pledged (of $5,000 goal)
Posted by Russell Keith-Magee and Erik Romijn on January 23, 2014
We're very happy to announce that a two-day Django sprint will take place on February 22-23 in Amsterdam, Netherlands. This event is organized by the Dutch Django Association.
The venue is the office of TravelBird in the center of Amsterdam. The sprint will start on Saturday, February 22rd at 10:00 CET and and finish on Sunday, February 23 around 22:00 CET.
With the help of the Django Software Foundation and the Dutch Django Association we will have two core developers on site: Baptiste Mispelon and Daniele Procida. Daniele will also be doing his famed “Don’t be afraid to commit” workshop, which will take people new to contributing to Django through the entire contribution process with real tickets. So please don’t hesitate to join even if you’ve never contributed to Django before.
The first beta for Django 1.7 should come out shortly after the sprint, so we can still contribute bugfixes to it.
If you’re unable to come to Amsterdam, you're welcome to contribute to the sprint online. Sprinters and core developers will be available in the #django-sprint IRC channel on FreeNode.
We hope you can join us and help make the sprint as successful as possible!
Tickets for DjangoCon Europe 2014, which will be held on the Île des Embiez, are now on sale!
There's an initial run of 50 early tickets, after which prices will go up.
What's different this year is that all tickets include your accommodation and your meals.
It can be a hassle to book suitable accommodation in a place you don't know well, never mind try to work out a budget in advance for your meals and other expenses.
Now consider that this year's DjangoCon Europe will take place on the French Riviera - a gorgeous place to stay, but not exactly noted for being an inexpensive place to visit.
This year, you don't need to worry about finding suitable and affordable accommodation, or where to eat or how much it will cost, because we have taken care of it for you.
As well as saving you the time and trouble of doing it yourself, this will make it much less expensive than it would otherwise have been, because we've been able to negotiate all these prices on your behalf.
So, the basic cost for the event, including two nights' accommodation, two breakfasts, three lunches and two evening meals is a mere €610 at the early bird rate (and only €670 thereafter).
Users Group As anyone who is familiar with the French Riviera can tell you, that's very good value, and it includes the entire conference too!
On top of the basic ticket there are various options:
Early arrival If you prefer to arrive on Monday afternoon or evening rather than Tuesday morning, you can purchase an extra night (dinner and breakfast included of course).
Sprints Sprinters should purchase a ticket for the extra two nights and four meals.
Partners and family Finally, it's not often that one gets to visit a place as special as the Île des Embiez, so make the most of it. You're invited to bring your partner and family!
The island has beaches, nature reserves, sporting facilities, some splendid wildlife - and there are no cars on the island, so it's a lovely environment.
Your partner can join you by purchasing the appropriate Companion ticket. There's no charge for children under four. We're working out prices for older children.
We often talk of the Python/Django family or community, but we're really serious about embracing a wider community - let's make this DjangoCon a truly inclusive family affair!
Djangonaut couples If both you and your partner wish to attend the conference, you should register as an Attendee and Companion, rather than purchasing two full tickets. Note that this is aimed at couples, and that only double beds are provided.
Posted by Daniele Procida on December 31, 2013
Django Weekend Cardiff https://djangoweekend.org/ is completely sold out.
Our open day remains open however, and you're invited to attend the numerous talks, tutorials and demonstrations in the programme.
There are fifteen different sessions in the open day programme, on all kinds of subjects. We may even be able to squeeze in a few more over the coming days.
All the sessions are free, and refreshments will be provided.
Registration is required so we know how many people to expect, and places in tutorials will be limited.
The sooner you register the better it is for us, because we have to plan catering, access and other practicalities - so please do it as soon as you can!
One of the purposes of the open day is to showcase Django and Python to the local community - developers, researchers, government and business, school pupils and teachers.
We are extremely grateful to the sponsors and supporters of Django Weekend https://djangoweekend.org/sponsors/, because they have made this open day possible, and to the numerous speakers and instructors who are presenting these sessions.
Jan 29 Wed 6pm - London @ Conversocial, Epworth House, London
Jan 29 Wed 7pm - Washington DC @ Sunlight Foundation, Washington (48 rsvps)
Jan 30 Thu 5pm - Seattle @ Espresso Vivace Alley 24, Seattle (weekly on Thursday!)
Feb 03 Mon 7pm - Houston @ Stag's Head Pub, Houston
Feb 04 Tue 7pm - Dallas @ rewardStyle, Dallas
Feb 06 Thu 4:45pm - Israel @ Desti Offices, Tel Aviv (65 rsvps so far!)
Feb 06 Thu 6pm - Melbourne @ Common Code, Abbotsford
Feb 06 Thu 6pm - Bogotá @ Atom House, Bogotá (37)
Feb 08 Sat 11am - Pheonix @ Local Motors, Chandler
Feb 12 Wed 5:30pm - Silicon Valley @ Webnertia, San Jose
Feb 18 Tue 7:15pm - Los Angeles @ Metacloud, Inc., Pasadena
Feb 18 Tue 7pm - Berlin @ ... (needs location, has Jannis Leidel)
Feb 19 Wed 7pm - Saint Paul Minneapolis @ Common Roots Cafe, Minneapolis
Feb 20 Thu 7pm - Shanghai @ Lighthouse. Jingan District, Shanghai (first ever! 6 attendees so far!)
Feb 20 Thu 6pm - Bath and Bristol @ Potato, Bristol (check date with Bath and Bristol Users Group)
Feb 22 Sat 10am - Amsterdam Sprints @ TravelBird Amstredam (31)
- 2014 Apr 9-17 -- PyCon 2014, Montreal Canada (early bird sold out)
- 2014 Apr 9-10 -- Tutorials
- 2014 Apr 11-13 -- Conference
- 2014 Apr 14-17 -- Sprints
- 2014 May 13-17 -- DjangoConEU, L'île des Embiez is located on the Côte d'Azur, between Toulon and Marseille. (no tickets announced yet, should be this week)
- 2014 Jul 21-27 -- Euro Python 2014 in Berlin Germany. (no tickets announced yet)
- 2014 Aug 1-5 -- PyCon AU
- 2014 Labor-Day weekend September -- DjangoCon 2014, Portland Oregon
Now is the time to try out 1.7, as Andrew said in the interview he's looking specifically for exotic use cases that can be debugged and any feedback about improving the UI.
Class based lookups (12-Jan thread) -- Anssi, new #16187 pull#2019 -- documentation needs work, install 1.7a take them out for a spin, add to our docs!
from django.db.models import Lookup, Extract _[define your custom lookup]_ _[register]_
If you have any visual arts skills and you've ever had any ideas about Django t-shirts, or actually any bit of merchandise with a Django logo on it: now is your chance!
The DSF is Looking for artwork to emblazon on things to sell as fundraising for the DSF, just email email@example.com
If you have any community requests for volunteers, support, sponsorship or other projects, please email firstname.lastname@example.org to be posted here.
New series of posts from PyDanny about using
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.
Did you know? You can use F expressions in your model fields, not just in filter() statements.
So, if you want to increment an integer field on your model, but want to avoid the obvious race condition, you can use:
from django.db.models import F product = Product.objects.get(name='Venezuelan Beaver Cheese') product.number_sold = F('number_sold') + 1 product.save() For more detail, see Updating attributes based on existing fields.
These show notes are "open source" on github so please be sure to make any corrections or additions at: github.com/elena/django-news-podcast
[brief howto help]
Brief and loose summary of what was discussed on the Django Development mailing list during the last 28 days (excluding announcements and support enquiries).
The purpose of this section is to provide a summary of what's been discussed in case something you're particularly interested in.
This is very much a summary, lacking in context, quite incomplete and potentially entirely erroneous so please read and contribute to the actual threads if there's anything mentioned that's of interest to you.
This last few weeks was dominated by talk about the new release features.
Particularly the 5 big features going in to 1.7:
- App refactor
- Custom lookup
- Advanced pre-fetching
# (1) Re: python-social-auth partial pipeline can not resume |Jan 11 By Karen Tracey 1 post 25 views
# (2) New to Django - Question: All registered users to post content... |Jan 6 By Retnuh 2 posts 49 views
# (3) Consider reopening ticket #11385 |Jan 8 By Andres Osinski 3 posts 70 views
# (3) django_bash_completion in Pypi Package |Jan 7 By Brett Nekolny 3 posts 74 views
# (1) Re: Django doesn't give any feedback if it cannot connect to a DB |Jan 11 By Ramiro Morales 1 post 35 views
# (2) Patch fix for #21430 : Exception to be raised when unpickiling QuerySet across unsupported django version |Jan 18 By Prasoon Shukla 2 posts 44 views
# (2) permit global change of BaseForm.label_suffix |Jan 15 By Tilman Koschnick 2 posts 49 views
# (3) Consider allowing customization of ModelForm's init parameters in contrib.admin |Jan 16 By tyrion-mx 3 posts 43 views
# (3) Re: Digest for django-d...@googlegroups.com - 1 Message in 1 Topic |Jan 3 By shmengie 3 posts 50 views
# (3) Should exceptions in dev server appear as tracebacks in the console by default? |Jan 16 By Harry Percival 3 posts 93 views
# (3) python querry on firebug extention . |Jan 13 By JAI PRAKASH SINGH 3 posts 41 views
# (2) Self-referenced template recursion handling |12/30/13 By unai 26 posts 251 views
# (1) Fixing #10811 Prevet assigning of unsaved model to Foreign Key |Jan 25 By anubhav joshi 1 post 20 views
# (1) Saving deleted code from Django source code |Jan 6 By Vajrasky Kok 3 posts 117 views
# (5) Website integrated mobile app for disaster |Jan 12 By unk...@googlegroups.com 5 posts 87 views
(1) Django sprint in Amsterdam, The Netherlands, Feb 22/23 |Jan 23 By Erik Romijn 1 post 24 views
(2) Merging GSoC 2013 - Validation Refactor |Jan 20 By Russell Keith-Magee 2 posts 78 views
(2) [ANNOUNCE] Django 1.7 alpha 1 released |Jan 23 By James Bennett 2 posts 53 views
(3) django.core.checks.register shouldn't be (primarily) a decorator |Jan 23 By Shai Berger 3 posts 44 views
(5) Is it a mistake on docs for django 1.5? |Jan 21 By Leonardo Borges Avelino 5 posts 51 views
Aymeric Augustin has very publicly worked on the App Loading refactor, giving a detailed plan at the start, regular updates, and a slew of code improvements.
This work has focused on changing how we think about INSTALLED_APPS. The most noticeable changes are:
Allow apps without a models module or package Provide a verbose name, for example for the admin My personal favourite goal "Provide a reliable initialization signal" was, unfortunately, not achieved in the time frame, but looks to be within sight. All of the resulting tasks are now in tickets with the keyword "app-loading", ready for the wider community to tackle.
(8) Thoughts on defining and autoimporting signals.py |Jan 16 By Daniel Sokolowski 8 posts 396 views
Daniel Sokolowski 22-Dec-11 Asking about where to define signals for an app. Back then the word from RKM was:
The root problem is that there isn't a single reliable place to put "app startup" logic. With the current way Django handles apps, there isn't a single solution that will work everywhere, which one of the reasons that the docs are silent on the issue.
Coincidentally this thread was re-dug up on 15-Jan, and Aymeric could promptly state that "It's fixed in 1.7" and point to both 'signals' in the docs and to the app refactor commits and discussions.
So for the record folks:
As at 1.7 there is an official, "Django way" for where to put signals, where to put handlers, where to wire them up, and how to test all that stuff.
There's a commit from Aymeric called: "Updated advice on connecting signals at startup."
The hardest of problems: naming things.
During the app_loading refactor, I introduced a method to test if a given application is enabled, and I named it
Its main uses are detecting misconfigurations and skipping tests.
Tried: .installed .has_app .has_installed .have_installed
Up to Django 1.4: every Django project was vulnerable to double import problems: since PYTHONPATH contained both a directory and its parent, the same module could get imported twice through different paths.
As of Django 1.6: there’s no built-in support for setting PYTHONPATH like that. However, some users may still be setting it manually to avoid fixing their imports.
Django still contains some ad-hoc mechanisms to work around the consequences of this poor setup, notably ModelBase, the metaclass for Model: defining a class that inherits from Model can return an existing class instead of creating a new one.
He'd be inclined to do it immediately, shouldn't be too hard, but being not backwards compatible will create deprecation path to 1.9.
As the incompatible behaviour predates the LTS version 1.4 (to paraphrase Last comment on 7-Jan): Double imports will be killed with fire.
(13) 1.7 Schema migrations and AUTH_PROFILE_MODULE / get_profile() deprecation |Jan 25 By Brian Neal 13 posts 71 views
Ticket: #21841 Add DatabaseFeature to disable schema migrations (new New feature)
A discussion of this ticket on IRC raised
the question about whether schema migration support is required for a database backend to be compliant with Django 1.7.
The scenario that prompted this ticket is that my primary project will not use Django for migrations because it interfaces with a legacy database with other tools and a DBA that manage the database schema. The "able to support schema migrations" bit relates to NoSQL, which doesn't necessarily have a strict schema.
Long and technically deep discussion about some of the specific intricacies of applying "swappable models" migrations. A major feature of 1.7
Swappable models are an interesting and powerful feature that was previously removed from Django.
Class based lookups -- Anssi, new #16187 pull#2019 -- documentation needs work, install 1.7a take them out for a spin, add to our docs!
from django.db.models import Lookup, Extract _[define your custom lookup]_ _[register]_
- Advanced pre-fetching
(24) App-loading: Pragmatic concerns about default AppConfig objects and ready() implementations (24) |Jan 25 By Russell Keith-Magee 24 posts 178 views
First off - this isn't critical for 1.7 alpha - I'm raising it now because I've been in this space for the last couple of days as a result of the working on the check framework. I suspect any changes stemming from this discussion can be landed in the beta period without major problems.
Also - Aymeric - you've done a great job with this app loading work. I didn't get much of a chance to follow along as it was unfolding, but the resultant work has been a pleasure to work with.
With one exception :-)
We've now got AppConfig objects for each app (e.g., contrib.admin). Those AppConfig objects can have ready() methods that invoke startup logic. This is all great stuff that has been a long time coming.
From a backwards compatibility perspective, there seems to be a gap in the way AppConfig objects are instantiated.
(several thousand more words and 24 posts)
#21803 Support post-commit hooks (new New feature)
This allows attach some code when a transaction is committed or rolled back.
only when a transaction is committed successfully
case of abuse for this sort of hook is doing something business critical in the post-commit hook. It must be clear that this is not a substitute for two phase commit or other ways of avoiding crash-just-after-commit problem.
Josh Smeaton has taken on the challenge of #14030 - to allow using more complex expressions in aggregates.
This one's been on the cards for 3 years now, and a number of people have looked into it. With Anssi Kääriäinen (akaariai) lending advice, perhaps we can hope to see this land soon!
(17) Recommending a Python 3-compatible MySQL connector |Jan 23 By Aymeric Augustin 17 posts 1644 views
6-Jun-2014 Aymeric Augustin
To claim first-class Python 3 support in Django 1.6, we need to recommend a MySQL connector that works. This was discussed a few times on the mailing list, now's the time to make a decision. Here's a summary of the options.
GPL, oracle are involved, the water is muddied by MySQLdb is also released under the GPL.
Jan 15 Michael Coates
He says: Over at OWASP they've started a framework security project. His goal is to capture the security posture, options and capabilities of different frameworks.
When I was leading the security team at Mozilla we worked with Django a ton.
When I was leading the security team at Mozilla we worked with Django a ton. You guys have always been on the leading edge of framework security. It was an easy choice to start with Django for the OWASP framework security project.
To which JKM (head of security at Heroku and former Django BDFL) replies: This sounds right up my ally. I'll jump on the list and post some more info over there.
They're looking for help:
- reviews their list of security controls in frameworks (which will become a "standard list")
- assistance with adding missing controls
If you're interested join the mailing list, google: OWASP framework security project
12/30/13 By Remram 15 posts 215 views
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
Jan 20 By Shai Berger 7 posts 65 views
Ticket: #21775 No facility to specify the datafile of a django test Oracle tablespace (assigned New feature)
State: ongoing discussion about what an appropriate way of organising a solution to this might be in settings.
#21751 new Cleanup/optimization Django doesn't do a good job of closing cursors
(17) Enforce the use of a unicode string in settings.LANGUAGES |Jan 23 By Henrique Romano 17 posts 78 views
A long disucssions about a Python 2.X problem where unicode is not handled correctly in-so-far as it effects settings, particularly settings.LANGUAGES (somewhere where this is most likely to have an impact of course and unicode often is used in some non-English languages).
Compare-And-Set in Memcache django cache api doesn't support. Patches welcome.
Last and slightly least:
If you liked the music samples in this podcast, and rightly you should, well these are all performed by our erstwhile BDFL Adrian Holovaty who jase generously given me permission to reproduce them here. The theme tune was both composed and performed by him and the others are from his youtube channel -- you can buy his album on bandcamp.
Thanks also for the time of Andrew Godwin and Daniele Procida, and the time and support of Russell Keith-Magee and Matt Austin. Thanks to Dave Pretty and Greg Jolley without whom this podcast wouldn't have happened.
Talk to you again next time! I'm Elena Williams and this was the Django News Podcast for 26-Dec-2014comments powered by Disqus