Version 3.7.4 Release (#5650)

* Update version for 3.7.4 Release

* Add release notes to 01587b9eb1

* Django 2.0 is now final.

* Add trove classifer for Django 2.0

* Finalise release notes for v3.7.4

* Set release date: December 20, 2017

* Update Transifex

* Add release note for #5691

* Move Issue links to bottom
This commit is contained in:
Carlton Gibson 2017-12-20 15:28:31 +01:00 committed by GitHub
parent 6de12e574e
commit a81e60ff39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 134 additions and 38 deletions

View File

@ -53,7 +53,7 @@ There is a live example API for testing purposes, [available here][sandbox].
# Requirements # Requirements
* Python (2.7, 3.4, 3.5, 3.6) * Python (2.7, 3.4, 3.5, 3.6)
* Django (1.10, 1.11, 2.0rc1) * Django (1.10, 1.11, 2.0)
# Installation # Installation

View File

@ -42,9 +42,9 @@ You can determine your currently installed version using `pip freeze`:
### 3.7.4 ### 3.7.4
**Date**: UNRELEASED **Date**: [20th December 2017][3.7.4-milestone]
* Extract method for `manual_fields` processing [#5633][gh5633] * Schema: Extract method for `manual_fields` processing [#5633][gh5633]
Allows for easier customisation of `manual_fields` processing, for example Allows for easier customisation of `manual_fields` processing, for example
to provide per-method manual fields. `AutoSchema` adds `get_manual_fields`, to provide per-method manual fields. `AutoSchema` adds `get_manual_fields`,
@ -54,10 +54,51 @@ You can determine your currently installed version using `pip freeze`:
Note: `AutoSchema.__init__` now ensures `manual_fields` is a list. Note: `AutoSchema.__init__` now ensures `manual_fields` is a list.
Previously may have been stored internally as `None`. Previously may have been stored internally as `None`.
* Remove ulrparse compatability shim; use six instead [#5579][gh5579]
* Drop compat wrapper for `TimeDelta.total_seconds()` [#5577][gh5577]
[gh5633]: https://github.com/encode/django-rest-framework/issues/5633 * Clean up all whitespace throughout project [#5578][gh5578]
* Compat cleanup [#5581][gh5581]
* Add pygments CSS block in browsable API views [#5584][gh5584] [#5587][gh5587]
* Remove `set_rollback()` from compat [#5591][gh5591]
* Fix request body/POST access [#5590][gh5590]
* Rename test to reference correct issue [#5610][gh5610]
* Documentation Fixes [#5611][gh5611] [#5612][gh5612]
* Remove references to unsupported Django versions in docs and code [#5602][gh5602]
* Test Serializer exclude for declared fields [#5599][gh5599]
* Fixed schema generation for filter backends [#5613][gh5613]
* Minor cleanup for ModelSerializer tests [#5598][gh5598]
* Reimplement request attribute access w/ `__getattr__` [#5617][gh5617]
* Fixed SchemaJSRenderer renders invalid Javascript [#5607][gh5607]
* Make Django 2.0 support official/explicit [#5619][gh5619]
* Perform type check on passed request argument [#5618][gh5618]
* Fix AttributeError hiding on request authenticators [#5600][gh5600]
* Update test requirements [#5626][gh5626]
* Docs: `Serializer._declared_fields` enable modifying fields on a serializer [#5629][gh5629]
* Fix packaging [#5624][gh5624]
* Fix readme rendering for PyPI, add readme build to CI [#5625][gh5625]
* Update tutorial [#5622][gh5622]
* Non-required fields with `allow_null=True` should not imply a default value [#5639][gh5639]
* Docs: Add `allow_null` serialization output note [#5641][gh5641]
* Update to use the Django 2.0 release in tox.ini [#5645][gh5645]
* Fix `Serializer.data` for Browsable API rendering when provided invalid `data` [#5646][gh5646]
* Docs: Note AutoSchema limitations on bare APIView [#5649][gh5649]
* Add `.basename` and `.reverse_action()` to ViewSet [#5648][gh5648]
* Docs: Fix typos in serializers documentation [#5652][gh5652]
* Fix `override_settings` compat [#5668][gh5668]
* Add DEFAULT_SCHEMA_CLASS setting [#5658][gh5658]
* Add docs note re generated BooleanField being `required=False` [#5665][gh5665]
* Add 'dist' build [#5656][gh5656]
* Fix typo in docstring [#5678][gh5678]
* Docs: Add `UNAUTHENTICATED_USER = None` note [#5679][gh5679]
* Update OPTIONS example from “Documenting Your API” [#5680][gh5680]
* Docs: Add note on object permissions for FBVs [#5681][gh5681]
* Docs: Add example to `to_representation` docs [#5682][gh5682]
* Add link to Classy DRF in docs [#5683][gh5683]
* Document ViewSet.action [#5685][gh5685]
* Fix schema docs typo [#5687][gh5687]
* Fix URL pattern parsing in schema generation [#5689][gh5689]
* Add example using `source=*` to custom field docs. [#5688][gh5688]
* Fix format_suffix_patterns behavior with Django 2 path() routes [#5691][gh5691]
### 3.7.3 ### 3.7.3
@ -882,6 +923,7 @@ For older release notes, [please see the version 2.x documentation][old-release-
[3.7.1-milestone]: https://github.com/encode/django-rest-framework/milestone/58?closed=1 [3.7.1-milestone]: https://github.com/encode/django-rest-framework/milestone/58?closed=1
[3.7.2-milestone]: https://github.com/encode/django-rest-framework/milestone/59?closed=1 [3.7.2-milestone]: https://github.com/encode/django-rest-framework/milestone/59?closed=1
[3.7.3-milestone]: https://github.com/encode/django-rest-framework/milestone/60?closed=1 [3.7.3-milestone]: https://github.com/encode/django-rest-framework/milestone/60?closed=1
[3.7.4-milestone]: https://github.com/encode/django-rest-framework/milestone/62?closed=1
<!-- 3.0.1 --> <!-- 3.0.1 -->
@ -1640,3 +1682,54 @@ For older release notes, [please see the version 2.x documentation][old-release-
<!-- 3.7.3 --> <!-- 3.7.3 -->
[gh5567]: https://github.com/encode/django-rest-framework/issues/5567 [gh5567]: https://github.com/encode/django-rest-framework/issues/5567
<!-- 3.7.4 -->
[gh5691]: https://github.com/encode/django-rest-framework/issues/5691
[gh5688]: https://github.com/encode/django-rest-framework/issues/5688
[gh5689]: https://github.com/encode/django-rest-framework/issues/5689
[gh5687]: https://github.com/encode/django-rest-framework/issues/5687
[gh5685]: https://github.com/encode/django-rest-framework/issues/5685
[gh5683]: https://github.com/encode/django-rest-framework/issues/5683
[gh5682]: https://github.com/encode/django-rest-framework/issues/5682
[gh5681]: https://github.com/encode/django-rest-framework/issues/5681
[gh5680]: https://github.com/encode/django-rest-framework/issues/5680
[gh5679]: https://github.com/encode/django-rest-framework/issues/5679
[gh5678]: https://github.com/encode/django-rest-framework/issues/5678
[gh5656]: https://github.com/encode/django-rest-framework/issues/5656
[gh5665]: https://github.com/encode/django-rest-framework/issues/5665
[gh5658]: https://github.com/encode/django-rest-framework/issues/5658
[gh5668]: https://github.com/encode/django-rest-framework/issues/5668
[gh5652]: https://github.com/encode/django-rest-framework/issues/5652
[gh5648]: https://github.com/encode/django-rest-framework/issues/5648
[gh5649]: https://github.com/encode/django-rest-framework/issues/5649
[gh5646]: https://github.com/encode/django-rest-framework/issues/5646
[gh5645]: https://github.com/encode/django-rest-framework/issues/5645
[gh5641]: https://github.com/encode/django-rest-framework/issues/5641
[gh5639]: https://github.com/encode/django-rest-framework/issues/5639
[gh5622]: https://github.com/encode/django-rest-framework/issues/5622
[gh5625]: https://github.com/encode/django-rest-framework/issues/5625
[gh5624]: https://github.com/encode/django-rest-framework/issues/5624
[gh5629]: https://github.com/encode/django-rest-framework/issues/5629
[gh5626]: https://github.com/encode/django-rest-framework/issues/5626
[gh5600]: https://github.com/encode/django-rest-framework/issues/5600
[gh5618]: https://github.com/encode/django-rest-framework/issues/5618
[gh5619]: https://github.com/encode/django-rest-framework/issues/5619
[gh5607]: https://github.com/encode/django-rest-framework/issues/5607
[gh5617]: https://github.com/encode/django-rest-framework/issues/5617
[gh5598]: https://github.com/encode/django-rest-framework/issues/5598
[gh5613]: https://github.com/encode/django-rest-framework/issues/5613
[gh5599]: https://github.com/encode/django-rest-framework/issues/5599
[gh5602]: https://github.com/encode/django-rest-framework/issues/5602
[gh5612]: https://github.com/encode/django-rest-framework/issues/5612
[gh5611]: https://github.com/encode/django-rest-framework/issues/5611
[gh5610]: https://github.com/encode/django-rest-framework/issues/5610
[gh5590]: https://github.com/encode/django-rest-framework/issues/5590
[gh5591]: https://github.com/encode/django-rest-framework/issues/5591
[gh5587]: https://github.com/encode/django-rest-framework/issues/5587
[gh5584]: https://github.com/encode/django-rest-framework/issues/5584
[gh5581]: https://github.com/encode/django-rest-framework/issues/5581
[gh5578]: https://github.com/encode/django-rest-framework/issues/5578
[gh5577]: https://github.com/encode/django-rest-framework/issues/5577
[gh5579]: https://github.com/encode/django-rest-framework/issues/5579
[gh5633]: https://github.com/encode/django-rest-framework/issues/5633

View File

@ -8,7 +8,7 @@ ______ _____ _____ _____ __
""" """
__title__ = 'Django REST framework' __title__ = 'Django REST framework'
__version__ = '3.7.3' __version__ = '3.7.4'
__author__ = 'Tom Christie' __author__ = 'Tom Christie'
__license__ = 'BSD 2-Clause' __license__ = 'BSD 2-Clause'
__copyright__ = 'Copyright 2011-2017 Tom Christie' __copyright__ = 'Copyright 2011-2017 Tom Christie'

View File

@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# #
# Translators: # Translators:
# Håken Lid <haakenlid@gmail.com>, 2017
# Petter Kjelkenes <kjelkenes@gmail.com>, 2015 # Petter Kjelkenes <kjelkenes@gmail.com>, 2015
# Thomas Bruun <thomas.bruun@gmail.com>, 2017 # Thomas Bruun <thomas.bruun@gmail.com>, 2017
msgid "" msgid ""
@ -10,8 +11,8 @@ msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-07-12 16:13+0100\n" "POT-Creation-Date: 2016-07-12 16:13+0100\n"
"PO-Revision-Date: 2017-11-01 09:58+0000\n" "PO-Revision-Date: 2017-11-28 15:25+0000\n"
"Last-Translator: Thomas Bruun <thomas.bruun@gmail.com>\n" "Last-Translator: Håken Lid <haakenlid@gmail.com>\n"
"Language-Team: Norwegian Bokmål (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nb/)\n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nb/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -25,7 +26,7 @@ msgstr "Ugyldig basic header. Ingen legitimasjon gitt."
#: authentication.py:76 #: authentication.py:76
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Ugylid basic header. Legitimasjonsstreng bør ikke inneholde mellomrom." msgstr "Ugyldig basic header. Legitimasjonsstreng bør ikke inneholde mellomrom."
#: authentication.py:82 #: authentication.py:82
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
@ -58,35 +59,35 @@ msgstr "Ugyldig token."
#: authtoken/apps.py:7 #: authtoken/apps.py:7
msgid "Auth Token" msgid "Auth Token"
msgstr "" msgstr "Auth Token"
#: authtoken/models.py:15 #: authtoken/models.py:15
msgid "Key" msgid "Key"
msgstr "" msgstr "Nøkkel"
#: authtoken/models.py:18 #: authtoken/models.py:18
msgid "User" msgid "User"
msgstr "" msgstr "Bruker"
#: authtoken/models.py:20 #: authtoken/models.py:20
msgid "Created" msgid "Created"
msgstr "" msgstr "Opprettet"
#: authtoken/models.py:29 #: authtoken/models.py:29
msgid "Token" msgid "Token"
msgstr "" msgstr "Token"
#: authtoken/models.py:30 #: authtoken/models.py:30
msgid "Tokens" msgid "Tokens"
msgstr "" msgstr "Tokener"
#: authtoken/serializers.py:8 #: authtoken/serializers.py:8
msgid "Username" msgid "Username"
msgstr "" msgstr "Brukernavn"
#: authtoken/serializers.py:9 #: authtoken/serializers.py:9
msgid "Password" msgid "Password"
msgstr "" msgstr "Passord"
#: authtoken/serializers.py:20 #: authtoken/serializers.py:20
msgid "User account is disabled." msgid "User account is disabled."
@ -98,7 +99,7 @@ msgstr "Kan ikke logge inn med gitt legitimasjon."
#: authtoken/serializers.py:26 #: authtoken/serializers.py:26
msgid "Must include \"username\" and \"password\"." msgid "Must include \"username\" and \"password\"."
msgstr "Må inkludere \"username\" og \"password\"." msgstr "Må inneholde \"username\" og \"password\"."
#: exceptions.py:49 #: exceptions.py:49
msgid "A server error occurred." msgid "A server error occurred."
@ -316,15 +317,15 @@ msgstr "Send inn"
#: filters.py:336 #: filters.py:336
msgid "ascending" msgid "ascending"
msgstr "" msgstr "stigende"
#: filters.py:337 #: filters.py:337
msgid "descending" msgid "descending"
msgstr "" msgstr "synkende"
#: pagination.py:193 #: pagination.py:193
msgid "Invalid page." msgid "Invalid page."
msgstr "" msgstr "Ugyldig side"
#: pagination.py:427 #: pagination.py:427
msgid "Invalid cursor" msgid "Invalid cursor"
@ -426,7 +427,7 @@ msgstr "Ugyldig versjon i URL-banen."
#: versioning.py:115 #: versioning.py:115
msgid "Invalid version in URL path. Does not match any version namespace." msgid "Invalid version in URL path. Does not match any version namespace."
msgstr "" msgstr "Ugyldig versjon i URL. Passer ikke med noen eksisterende versjon."
#: versioning.py:147 #: versioning.py:147
msgid "Invalid version in hostname." msgid "Invalid version in hostname."

View File

@ -7,13 +7,14 @@
# Ederson Mota Pereira <edermp@gmail.com>, 2015 # Ederson Mota Pereira <edermp@gmail.com>, 2015
# Filipe Rinaldi <filipe.rinaldi@gmail.com>, 2015 # Filipe Rinaldi <filipe.rinaldi@gmail.com>, 2015
# Hugo Leonardo Chalhoub Mendonça <hugoleonardocm@live.com>, 2015 # Hugo Leonardo Chalhoub Mendonça <hugoleonardocm@live.com>, 2015
# Jonatas Baldin <jonatas.baldin@gmail.com>, 2017
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-07-12 16:13+0100\n" "POT-Creation-Date: 2016-07-12 16:13+0100\n"
"PO-Revision-Date: 2017-08-03 14:58+0000\n" "PO-Revision-Date: 2017-12-06 09:53+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Jonatas Baldin <jonatas.baldin@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_BR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -60,35 +61,35 @@ msgstr "Token inválido."
#: authtoken/apps.py:7 #: authtoken/apps.py:7
msgid "Auth Token" msgid "Auth Token"
msgstr "" msgstr "Token de autenticação"
#: authtoken/models.py:15 #: authtoken/models.py:15
msgid "Key" msgid "Key"
msgstr "" msgstr "Chave"
#: authtoken/models.py:18 #: authtoken/models.py:18
msgid "User" msgid "User"
msgstr "" msgstr "Usuário"
#: authtoken/models.py:20 #: authtoken/models.py:20
msgid "Created" msgid "Created"
msgstr "" msgstr "Criado"
#: authtoken/models.py:29 #: authtoken/models.py:29
msgid "Token" msgid "Token"
msgstr "" msgstr "Token"
#: authtoken/models.py:30 #: authtoken/models.py:30
msgid "Tokens" msgid "Tokens"
msgstr "" msgstr "Tokens"
#: authtoken/serializers.py:8 #: authtoken/serializers.py:8
msgid "Username" msgid "Username"
msgstr "" msgstr "Nome do usuário"
#: authtoken/serializers.py:9 #: authtoken/serializers.py:9
msgid "Password" msgid "Password"
msgstr "" msgstr "Senha"
#: authtoken/serializers.py:20 #: authtoken/serializers.py:20
msgid "User account is disabled." msgid "User account is disabled."
@ -318,15 +319,15 @@ msgstr "Enviar"
#: filters.py:336 #: filters.py:336
msgid "ascending" msgid "ascending"
msgstr "" msgstr "ascendente"
#: filters.py:337 #: filters.py:337
msgid "descending" msgid "descending"
msgstr "" msgstr "descendente"
#: pagination.py:193 #: pagination.py:193
msgid "Invalid page." msgid "Invalid page."
msgstr "" msgstr "Página inválida."
#: pagination.py:427 #: pagination.py:427
msgid "Invalid cursor" msgid "Invalid cursor"
@ -428,7 +429,7 @@ msgstr "Versão inválida no caminho de URL."
#: versioning.py:115 #: versioning.py:115
msgid "Invalid version in URL path. Does not match any version namespace." msgid "Invalid version in URL path. Does not match any version namespace."
msgstr "" msgstr "Versão inválida no caminho da URL. Não corresponde a nenhuma versão do namespace."
#: versioning.py:147 #: versioning.py:147
msgid "Invalid version in hostname." msgid "Invalid version in hostname."

View File

@ -69,6 +69,7 @@ setup(
'Framework :: Django', 'Framework :: Django',
'Framework :: Django :: 1.10', 'Framework :: Django :: 1.10',
'Framework :: Django :: 1.11', 'Framework :: Django :: 1.11',
'Framework :: Django :: 2.0',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License', 'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent', 'Operating System :: OS Independent',