|
Posted
over 18 years
ago
For a long time, we've recommended that people use the Django development version instead of the latest Django release, as we try hard to keep the development version stable. We're loosening that policy, temporarily, for the immediate future, in
... [More]
order to make a number of backwards-incompatible changes to the development version.
Examples of some of these changes are:
Removing the auto_now and auto_now_add options in Django models.
Finishing and merging the "newforms-admin" branch, which changes the way admin options are specified (and gives you a lot more flexibility).
Removing the LazyDate shortcut.
Renaming django.contrib.localflavor.usa to django.contrib.localflavor.us.
The biggest change is probably the newforms-admin functionality.
Therefore, if you use the Django development version in production settings (as many people, including I, do), take a look at the "Backwards-incompatible changes" wiki page before updating your Django code to make sure your code won't break.
If you use a specific Django release, such as 0.96, you have nothing to worry about. You simply may have to make some changes to your code when you upgrade to the next Django release.
This is, we hope, the final run of backwards-incompatible changes before version 1.0, at which point we'll be committed to compatibility.
If you'd like to discuss these changes, feel free to post a message to the django-developers mailing list. [Less]
|
|
Posted
over 18 years
ago
Django's version 0.96 just landed, but we're already hard at work on the next version. Here's a rundown of some of the bigger improvements we've made to the Django development version in the past week:
As of changeset 4901, we've added the
... [More]
ability to name URL patterns. This is a great help with reverse URL matching. See the new docs.
Have you seen django.contrib.localflavor yet? An example of our "batteries included" philosophy, it's a collection of functions and data structures that are useful for locale-specific applications. The biggest part of localflavor at this point are django.newforms-style Field objects that validate an assortment of country-specific data. For example, we've got validators for U.S. Social Security numbers, phone numbers, states and ZIP codes; post codes in Australia, Brazil, Finland, France, Germany, Italy, Japan, Norway, and the U.K; and government identity numbers for a number of countries. Plus, we've got more coming. If you can think of (and, better yet, implement) some locale-specific logic that would be useful to a number of people and localflavor doesn't yet handle, please contribute!
Work progresses on the newforms-admin branch, which aims to integrate Django's admin site with the newforms library. Along the way, we're taking the opportunity to add extra customization hooks to the admin site. Much of the implementation is done already, and it's now possible, using the branch, to run multiple instances of the Django admin site, with different configuration, in the same Django project. This is exciting stuff; see the status section of the wiki page for some examples of what's changed.
We created a unicode branch this week. Malcolm Tredinnick will be taking the lead on making all of Django's internals fully Unicode-aware, once and for all. See the branch wiki page for more info.
[Less]
|
|
Posted
over 18 years
ago
Next week's Web 2.0 Expo in San Francisco features two Django-related presentations.
First, there's the session All You Need To Know About Django:
You've heard about Django, the relatively young Python web framework. But why are people talking
... [More]
about it? Hear lead developer/co-creator Adrian Holovaty explain how the framework works, how it saves you time, and why people fall in love with it. Expect both a high-level overview and low-level code samples, along with a look into Django's future.
Then, it'll be a panel, Comparing Web Application Frameworks:
Creators and architects of a select group of today's most modern, successful web development frameworks will come together in this panel to answer questions from developers.
See you in San Francisco. No word yet whether we'll put together a Django "Birds of a Feather" session, but if you'll be around, leave a comment here so we can coordinate. [Less]
|
|
Posted
over 18 years
ago
We're incredibly pleased to announce the release of Django 0.96!
The primary goal for 0.96 was a cleanup and stabilization of the features introduced in 0.95. The release notes cover the few backwards-incompatible changes, but for most people the
... [More]
upgrade process should be simple.
One particular change affects users of MySQL on older servers: If you get an error about Django requiring a newer version of MySQLdb, you'll need to either upgrade MySQLdb to 1.2.1p2 or later, or switch your DATABASE_ENGINE setting to "mysql_old". You can read more about this change in the release notes.
Though the main focus of 0.96 is stability and maturity, it also includes some juicy new features to help you write even better code. Of particular note:
Django now ships with a comprehensive set of testing tools. You can write tests based on doctest or unittest, test your views with a simple test harness, and load initial data ("fixtures") automatically.
If testing is indeed like flossing, think of these new tools as super-comfortable, deliciously flavored, top-of-the-line thread.
Django 0.96 also ships with a brand new forms library, django.newforms. This is a replacement for django.forms, the old forms/manipulator/validation framework. Both APIs are available in 0.96, but over the next two releases we're going to switch completely to this awesome new system.
Read the release notes for more details on these and other changes.
We can't possible thank our amazing development community enough. This release contains the work of over 200 different people. To put this in perspective: when we released 0.95 we thanked "the dozens of Django contributors"; this time, it would be more appropriate to thank hundreds of contributors. In other words, this release wouldn't have happened without this amazing community.
To everyone who's reported a bug, submitted a patch, participated on our mailing lists, hung out in our IRC channel: our most heartfelt thanks. As always, We try (but inevitably fail) to list everybody in the AUTHORS file.
So, what are you waiting for? Go download 0.96, and let us know what you think! [Less]
|
|
Posted
over 18 years
ago
Wow, we couldn't be more pleased with the feedback we've been getting for The Django Book. When we launched last week, it hit the front page of Digg for a while, it hit del.icio.us popular and it was talked-about all over the Web by Django fans and
... [More]
non-Django users alike.
But most importantly, we've gotten hundreds of helpful inline comments on the first two chapters, including almost a dozen typo fixes and wording suggestions within the first couple of hours! We've been rolling the suggestions into the book as time allows and removing the relevant comments from display after we've incorporated the suggestions, so as not to confuse readers. Many thanks to the dozens of contributors so far.
Moving along, we've posted Chapter 3, The Basics of Generating Web Pages. After two introductory chapters, this is starting to get into the meat of Django. Chapter 4 should be coming later today, or tomorrow at the latest, as we're still putting the finishing editing touches on it for public release.
Keep the great suggestions comin'!
UPDATE: We've added Chapter 4. It's quite long and may cause some JavaScript slowness; we'll look into this, possibly splitting it up over two pages. [Less]
|
|
Posted
over 18 years
ago
Web framework comparisons are inevitable, and they've been showing up more and more often.
A couple of weeks ago, Alan Green and Ben Askins put together a "RailsVsDjango" report, and they presented their findings at the Open Source Developers'
... [More]
Conference in Melbourne, Australia.
In the latest batch, both from the last 24 hours, we've got a relatively flame-baitish comparison of Django and Rails, along with a much more constructive comparison.
Reading comparisons like this, I'm always reminded of a Mark Pilgrim piece from a couple of years ago.
Person 1: "What do you do for a living?"
Person 2: "I work with computers."
Person 1: "So do I! What do you do with computers?"
Person 2: "I'm a Web developer."
Person 1: "So am I! Design, client-side programming or server-side programming?"
Person 2: "Server-side programming."
Person 1: "Same here! Do you use dynamically typed languages or statically typed languages?"
Person 2: "Dynamically typed languages."
Person 1: "So do I! Do you use a Web framework, or do you roll things on your own?"
Person 2: "I use a Web framework."
Person 1: "So do I! Django or Rails?"
Person 2: "Django."
Person 1: "Die, heretic scum!"
[Less]
|
|
Posted
over 18 years
ago
It's that time of year again!
PyCon 2007 is is rapidly
approaching with an amazing
line-up of talks on all sorts of Python-related topics. If you've got
the opportunity, I highly recommend going. The conference is a steal at $195
... [More]
($125 for students) if you register before January 15th.
Of course, there's also a large array of Django-oriented activities at
PyCon; here's a list of the (officially planned) activities (in
chronological order):
On Feb 22nd (the tutorial day) I (Jacob) will be teaching back-to-back
three-hour Django tutorials. The morning tutorial is an introduction to
Django designed for anyone interested in getting started with
Django.
After lunch, I'll move on to an advanced Django
tutorial, covering a lot of what goes on under the hood. Anyone
who knows Django and wants to dig deeper should really enjoy this
one. You can, of course, sign up for both.
(I should point out by way of disclaimer that I get a bit of money for
each person who attends one of my tutorials. I'd promote them here
anyway, of course, but full disclosure is the best policy and all
that.)
During the conference proper, I'll be talking about the lessons in
Open Source development that we've learned in 18 months of running
the Django project. It's been an amazing ride, and we've all learned a
huge amount about what it means to be involved in Open Source.
This talk is tentatively scheduled for Saturday (Feb. 25th), but the
schedule is still being finalized so that date may change.
There's also a web frameworks
panel planned for Friday (Feb. 24th) afternoon. Titus Brown plans to
bring together developers from the many Python web frameworks; I'm
really looking forward to seeing all these different points of views.
Finally, we'll again hold a Django sprint in the four days following the
conference (Feb. 26th through Mar. 1st). If you've never attending a
sprint before, you can
read more about sprinting on the PyCon wiki; essentially sprints are
a focused development session wherein a bunch of developers gather in a
room and bang out code.
We've not yet decided on what we'll focus on during the sprint, but if
you're interested in getting involved in Django development (or if
you're involved already), we'd be happy to have you! I'll probably give
an informal "how to contribute to Django" session on the first day of
the sprint for anyone who's interested.
I hope to see a bunch of Djangonauts there. I've been to PyCon for the last couple of years, and it's always been fantastic, and I can see from the line-up of talks that this year will be no exception.
Remember to register before Jan. 15th if you want to save sixty bucks! [Less]
|
|
Posted
over 18 years
ago
I love this quote from Scott Gilbertson at Wired.com:
Django is a framework built on Python that you can use to build a Content Management System or a blogging tool, but it is not limited to that. In fact Django reminds me a bit of the character
... [More]
in Airplane who always answers the “what do you make of that?” question literally… Why, I can make a hat or a brooch or a pterodactyl…
You’d be hard pressed to find something in the world of web development that Django can’t make. [Less]
|
|
Posted
over 18 years
ago
As Django has grown popular and more people have been submitting feature ideas and bug reports, we've had problems scaling our human resources to handle the extra workload. Helpful bug reports got lost in the Great Sea of Tickets, which was
... [More]
frustrating to both contributors and maintainers.
Fortunately, we hope to have fixed that.
As of yesterday evening, we've completely revamped our ticket workflow, along with the software we use to manage it. We spent some time discussing the issues over the past week, and yesterday Jacob installed a brand-new version of Trac, our bug-tracking software, and customized it to fit the optimized ticket workflow we came up with.
What's changed? First, if you've submitted a ticket in the past, you'll notice that the "Create New Ticket" page is much simpler. We've removed the fields that we weren't using and cleaned up the layout a bit.
Next, we changed the functionality of the existing-ticket page, adding fields such as "Needs documentation," "Has patch" and "Needs tests." These new fields are much more in-line with our ticket triage process.
From now on, every new ticket will be categorized according to these criteria by our new ticket managers (more on them in a bit), entering the workflow described on our ticket triage page. In short: a ticket comes in and a ticket manager assesses it as either "accepted," "invalid/worksforme" or "requires a design decision." If it's accepted, we'll keep track of the three essential parts of a solution -- a patch, documentation and unit tests. Once those three parts have been submitted and meet our standards, the ticket will be marked as "ready for checkin."
We've got a fancy new diagram that explains this whole process.
This new process has a multitude of advantages. Ticket submitters get much more detailed (and quicker) feedback about the status of their tickets. Committers get more helpful reports about exactly which tickets are ready to be looked at. People looking to help out with small tasks can now access useful reports -- e.g., tickets needing unit tests or tickets needing documentation -- for a clear list of where they can chip in.
The whole process is much more in line with the workflow we've adapted over the past year, and I suspect our ticket responsiveness will improve greatly.
The last, most important, piece of the puzzle, is that we now have official ticket managers, a group of volunteers who work together to manage ticket metadata and otherwise streamline the process. Although anyone can -- and is encouraged to -- help out keeping tickets organized, these folks have volunteered to take ownership of the ticket tracker in the long term. Please welcome Chris Beaven (SmileyChris), Simon Greenhill, Michael Radziej and Gary Wilson! [Less]
|
|
Posted
over 18 years
ago
We've just rolled out Django 0.95.1, a new minor release of Django which includes fixes for several bugs discovered in the original 0.95 release; 0.95.1 includes:
A patch for a small security vulnerability in the script Django's
... [More]
internationalization system uses to compile translation files (changeset 4360 in the "0.95-bugfixes" branch).
A fix for a bug in Django's authentication middleware which could cause apparent "caching" of a logged-in user (changeset 4361).
A patch which disables debugging mode in the flup FastCGI package Django uses to launch its FastCGI server, which prevents tracebacks from bubbling up during production use (changeset 4363).
It's recommended that anyone using the official 0.95 release upgrade to 0.95.1 to get these fixes, or apply the patches from the changesets linked above. [Less]
|