Slide 1

Slide 1 text

Upgrading

Slide 2

Slide 2 text

8IZ

Slide 3

Slide 3 text

security

Slide 4

Slide 4 text

security stability

Slide 5

Slide 5 text

security stability performance

Slide 6

Slide 6 text

security stability performance happiness

Slide 7

Slide 7 text

old django makes developer panda sad http://ra3ndy.deviantart.com/art/Sad-Panda-69204875

Slide 8

Slide 8 text

Public APIs won't change. API stability EVER.

Slide 9

Slide 9 text

Public APIs won't change... API stability ...without good reason

Slide 10

Slide 10 text

Public APIs won't change... API stability ...without good reason ...without a deprecation path

Slide 11

Slide 11 text

PendingDeprecationWarning Deprecation Path DeprecationWarning Removed

Slide 12

Slide 12 text

protip python -Wd

Slide 13

Slide 13 text

)PX

Slide 14

Slide 14 text

have tests

Slide 15

Slide 15 text

have tests read release notes

Slide 16

Slide 16 text

have tests read release notes incremental upgrades

Slide 17

Slide 17 text

have tests read release notes incremental upgrades refactor deprecated code

Slide 18

Slide 18 text



Slide 19

Slide 19 text

what's new in 1.5 Configurable User model Model.save(update_fields) StreamingHttpResponse {% verbatim %} True, False, None localtime() DEBUG logging index_together ...and much more

Slide 20

Slide 20 text

Be the User model you want to see in the world. – David Gouldin

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

what's new in 1.5 Configurable User model Model.save(update_fields) StreamingHttpResponse {% verbatim %} True, False, None localtime() DEBUG logging index_together ...and much more

Slide 23

Slide 23 text

what's changed in 1.5 Form.cleaned_data Session not saved on HTTP 500 Server Error YearArchiveView and {{ year }} TemplateView and {{ params }} request.POST and non-form data PostgreSQL autocommit fixed Test Client behavior TransactionTestCase behavior

Slide 24

Slide 24 text

what's gone in 1.5 {% load url from future %} {% admin_media_prefix %} Procedural generic views URLField.verify_exists CACHE_BACKEND mod_python request handler Test Client's response.template AdminMediaHandler replaced by StaticFilesHandler manage.py reset and manage.py sqlreset

Slide 25

Slide 25 text

what's going away in 1.7 django.contrib.localflavor (actually going away in 1.6) django.contrib.markup django.utils.simplejson AUTH_PROFILE_MODULE Streaming with HttpResponse manage.py cleanup select_related(depth)

Slide 26

Slide 26 text



Slide 27

Slide 27 text

what's coming in 1.6 New default project/app template SQLite by default Database autocommit on by default New transaction management Persistent DB connections unittest2 test discovery QuerySet.earliest() HTML5 text input widgets ...and much more

Slide 28

Slide 28 text

what's changing in 1.6 Database autocommit and transaction management Test discovery QuerySet date handling BooleanField default reverse and urlquote() Password reset EmptyQuerySet() Cache timeout

Slide 29

Slide 29 text

what's gone in 1.6 django.contrib.databrowse django.contrib.localflavor django.contrib.markup django.conf.urls.defaults Pre-1.4 form wizard semantics Some cache_page() semantics truncate_words() / truncate_html_words() Old manage.py will no longer work HttpRequest.raw_post_data

Slide 30

Slide 30 text

what's going away in 1.8 django.contrib.comments django.db.transaction decorators / context managers PostgreSQL before 8.4 {% load cycle from future %} CACHE_MIDDLEWARE_ANONYMOUS_ONLY Model._meta.module_name Implicit ModelForm fields

Slide 31

Slide 31 text

n @claymcclure / daemons.net