Fix the broken diff link in the plain text email template.

The link to the diff was broken for plain text emails. Trivial fix.

Fixes bugs 2340 and 2366.
Fix SPF compliance.

Currently Reviewboard sends emails with a Return-Path of the current
user. This is not SPF compliant, and as a result review emails will be
rejected if a user's domain implements SPF with a reject all failed
messages policy and a reciever checks SPF.

This corrects this by setting the From header directly instead, and
passing the site default from email address as the Return-Path address.
This is needed on the KDE Reviewboard instance to ensure email delivery
runs well.

Reviewed at http://http://reviews.reviewboard.org/r/2702/
Add some initial release notes for 1.7 beta 1.

We'll keep adding to these as we make changes leading up to beta 1.
Fix the parameters for DashboardHook.

DashboardHook was taking entries as the first parameter, but it needed
an extension instance. This fixes that so we don't error out.
Switch to using django-pipeline and change our versioning.

This moves from django-compress, which is deprecated, to
django-pipeline. We only do pipeline work when we're on a production
system, or DEBUG is off. We fall back to using the less runtime on a
non-production DEBUG setup.

Rather than using MEDIA_SERIAL, we're now using Pipeline to version the
generated files. This will slightly reduce startup time, since we won't
have to stat the media files, and it also means we can version the files
individually instead of as a group. We'll have more fine-grained caching
as a result.

A future change will remove our use of MEDIA_SERIAL.
Merge branch 'release-1.6.x'
Raise NotImplementedError, not NotImplemented.

We weren't being consistent with returning NotImplementedError vs.
NotImplemented. This is a bit confusing as Python has both, but the
latter is intended as a return value for operators rather than an
exception.

This never seemed to have bit us in practice, but in theory we'd fail to
catch exceptions in some cases, so fix it.
Merge branch 'release-1.6.x'
Use NotImplementedError in hooks.

We introduced NotImplemented usage in the extension hooks, but should
have been using NotImplementedError instead.
Merge remote-tracking branch 'origin/release-1.6.x' into release-1.6.x
Update the issue summary table when issue states are changed.

When the user changes the status of an issue (resolve, drop, reopen), this will
update the issue summary table to match, as well as update the counts shown in
the summary of the block.

Reviewed at http://reviews.reviewboard.org/r/2726/
Updated Windows installation tips and translation blocks

A quick update to Windows installation tips and more {% blocktrans %} for later
translations. Tested on a Windows installation using the development server.

Reviewed at http://reviews.reviewboard.org/r/2673/
Fix checking for file existence when the file is empty on Git.

Git was using the file contents as an indicator as to whether a file
exists when using raw file URLs. However, this fails on empty files,
such as a standard __init__.py.

What we really care about is whether we can successfully fetch a file,
or whether we'll get an HTTP error. So, ignore the contents, and assume
the file exists if there's no error.
Merge branch 'release-1.6.x'
Fix unit tests for the recent e-mail changes.

The recent e-mail changes (changing from and the Return-Path addresses)
broke unit tests. This fixes the tests to check for the correct values.
Merge branch 'release-1.6.x'
Only build media files in egg_info if there's a settings_local file.

New dev deployments require running `setup.py develop` before running
`prepare-dev.py`, but develop eventually calls into egg_info, which
tries to build media files, which required a settings_local.py file. So,
skip that process if we don't find a settings_local.py file.
Fix a timing issue with the ChangeResourceTests.

ChangeResourceTests was creating two ChangeDescriptions, one after the
other, and then checking the order in the list resource results.
However, it was very easy for them to have the same timestamp, since
they were created at nearly the same time. Fix this by enforcing
timestamps at least 1 second apart.
Merge branch 'release-1.6.x'
Fix potential KeyErrors when submitting the repo form without a path.

If the repository form in the admin is submitted with a custom hosting service
and an empty path, our validation would try to access the key directly without
checking if it exists. This is fine for most fields but not those which come
from ModelForm, so it fails. This change adds some simple validation to check
that the path is specified.