Skip to content
This repository has been archived by the owner on Jan 29, 2019. It is now read-only.

v0.10

Compare
Choose a tag to compare
@Osmose Osmose released this 18 Apr 14:12
· 76 commits to master since this release

Welcome to django-browserid 0.10!

This release features some backwards-incompatible changes. Luckily, it also features an upgrading guide to help you move up to the latest version!

Python and Django versions

django-browserid is tested on Python 2.6, 2.7, 3.2, and 3.3, and on Django 1.4, 1.5, and 1.6. It may work on other version combinations, but we haven't gotten around to testing them yet, so you should expect possible errors.

What's new in django-browserid 0.10

Expanded Documentation

Almost all of the documentation has been rewritten to provide better support to developers using django-browserid. There's now a Quickstart for getting up and running, better info on Customization, a section on Upgrading from older versions, an expanded Troubleshooting page, and Contributing Guidelines to help new contributors learn how to write patches.

Python 3 Support

django-browserid now supports and is tested on Python 3.2 and 3.3 under Django 1.5 and 1.6. You should totally switch to Python 3 if you haven't already. It's a higher number!

AJAX-based Login and Logout

Previously, login was triggered by submitting a hidden form embedded on your web page. Now, login and logout is done via AJAX calls, making it easier for sites that want to support login/logout without refreshing the page. This also means there's less boilerplate you need to add to your templates to get django-browserid up and running.

Disabled Automatic Login

Normally, Persona tracks if a user is supposed to be logged in to your site, and automatically logs them in or out if Persona's state doesn't match your site's state. However, this has several side effects, including errors when a user with multiple tabs open to your site attempts to login. This release includes a workaround that avoids Persona's automatically triggered logins and only logs the user if they initiated the login themselves, and only in the tab they clicked.

Improved Customization Hooks

Several changes were made to the backend code, including replacing the verify function with a set of classes, called Verifiers, that handle verifying assertions from Persona. This will lay the groundwork for supporting local verification, and also allows you to subclass existing verifiers and customize their behavior easily.

SITE_URL is now BROWSERID_AUDIENCES

The SITE_URL setting has been replaced by BROWSERID_AUDIENCES, which is a list of valid audiences for your site. This makes it easier to support sites with multiple audiences (such as sites with multiple subdomains). BROWSERID_AUDIENCES is also optional when DEBUG is True, making it easier to support local development environments.

Next Release

Our current plan is to let 0.10 stew for a while to see how people enjoy it. There are a few small changes we'd like to make, but if nothing major comes up, we will consider calling the next release 1.0 and finalizing the API. Of course, I make no promises, and have been known to be a liar. Anything could happen!

Credits

Special thanks for this release go to @callahad for his help in getting the automatic login workaround landed, and to @willkg and @peterbe for their continued maintainer work reviewing and merging changes.

A massive thank you to all the contributors to django-browserid 0.10: