Fixing .htaccess to ignore rewriting PHP files directly
Improve class naming and docs for DataList::applyFilterContext()
tinymce language portuguese is not working
BUG Hardcoded project name in include_by_locale()

include_by_locale() should not use hardcoded default project name 'mysite' (fixes #7969).
BUG Test case for versioned now correctly checks IDs returned from Versioned::get_including_deleted
BUG Issue with deleted records not being queried properly.
API DataQuery::expressionForField no longer requires a second parameter. Rather the query object is inferred from the DataQuery itself. This should improve consistency of use of this function.
SimpleXML string casting in tests for older PHPUnit
BUG When selecting stage_unique from Versioned the augmentSQL function would permanantly alter the DataQuery while doing a recursive augmentSQL. This fix correctly maintains the correct Versioned.mode so that subsequent calls to this function exhibit the same expected behaviour.
FIX Handle namespaced classes in Object::parse_class_spec()
Merge pull request #1043 from tractorcow/3.1-deleted-pages-fixes

Fix for issue #7975 - Issue with retrieving deleted pages
Merge pull request #1047 from simonwelsh/ns_class_parse

FIX Handle namespaced classes in Object::parse_class_spec()
BUG SS has problems handling + in URLs. Filter them out.

+ has a special meaning in the URLs so overall it's a good idea to
strip them out. Otherwise they would need to appear in their ugly url
encoded form "%2B".

Refer: http://open.silverstripe.org/ticket/7929
Updated changelog notes
BUG removeRequiredField() should use array_splice() instead of unset()

Function unset() preserves numeric keys and method removeRequiredField() will give a PHP notice about nonexistent array key and loop won't iterate throughout all elements in array on second method call (and all subsequent).
So it's better to use foreach loop and array_splice() function (it doesn't preserve numeric keys).
Allow HTML in FormField->setDescription()
Fix edge case in which uninitialized buttons are being destroyed.

In certain cases, the button may not yet be initialized or may no longer have button properties at the time of removal from the DOM. Without this check, an uncaught exception is thrown.
BUG Calling DataObject::relField() on a object with an empty relation list

This causes a 'Fatal error: Call to a member function hasMethod() on a non-object'.

This can happen when displaying a field in a gridfield on a belongs_to relationship.
Set 'active' correctly for accordion widget

The accordion widget was previously being passed true and false, where as it either expects true or the integer of the panel to show.

This fix sets it as either false or 0.
API Remove dev/tests/startsession etc, use new "testsession" module

Removed commands: startsession, endsession, sessionloadyml, setdb, emptydb.
See https://github.com/silverstripe-labs/silverstripe-testsession
NEW Show the allowed extensions as a toggle tip as per trac 7993

NEW Added a behat test for showing extension trac 7993
Made hyphen escaping clearer in FileNameFilter and URLSegmentFilter

Does not actually change behaviour, but ensures that the hyphen
is not interpreted as a range identifier should it be placed
between two characters which PCRE regards as "rangeable".