From 58378bccac6aa71231eba8cb7d1b98fd71105fc8 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 10 Dec 2021 10:28:06 +0000 Subject: [PATCH 1/3] Version 3.12.5 --- docs/community/release-notes.md | 12 ++++++++++++ rest_framework/__init__.py | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index baeeaf8741..3de64f1855 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -36,6 +36,18 @@ You can determine your currently installed version using `pip show`: ## 3.12.x series +### 3.12.5 + +Date: ... + +* Django 4.0 compatability. [#8178] +* Add `max_length` and `min_length` options to `ListSerializer`. [#8165] +* Add `get_request_serializer` and `get_response_serializer` hooks to `AutoSchema`. [#7424] +* Fix OpenAPI representation of null-able read only fields. [#8116] +* Respect `UNICODE_JSON` setting in API schema outputs. [#7991] +* Fix for `RemoteUserAuthentication`. [#7158] +* Make Field constructors keyword-only. [#7632] + ### 3.12.4 Date: 26th March 2021 diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index 0c75d3617e..78a650f7d0 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -10,7 +10,7 @@ import django __title__ = 'Django REST framework' -__version__ = '3.12.4' +__version__ = '3.12.5' __author__ = 'Tom Christie' __license__ = 'BSD 3-Clause' __copyright__ = 'Copyright 2011-2019 Encode OSS Ltd' From 77febd13caaf6aa50870c3eaaa9f637363630c8a Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 13 Dec 2021 09:47:13 +0000 Subject: [PATCH 2/3] Version 3.13 --- rest_framework/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index 78a650f7d0..88d86c03e5 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -10,7 +10,7 @@ import django __title__ = 'Django REST framework' -__version__ = '3.12.5' +__version__ = '3.13.0' __author__ = 'Tom Christie' __license__ = 'BSD 3-Clause' __copyright__ = 'Copyright 2011-2019 Encode OSS Ltd' From d3e20de9f4f1bdaa4376e4fd5fc3c05df42fd4c5 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 13 Dec 2021 11:07:53 +0000 Subject: [PATCH 3/3] Version 3.13 --- docs/community/3.13-announcement.md | 55 +++++++++++++++++++++++++++++ docs/community/release-notes.md | 10 ++++-- mkdocs.yml | 1 + 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 docs/community/3.13-announcement.md diff --git a/docs/community/3.13-announcement.md b/docs/community/3.13-announcement.md new file mode 100644 index 0000000000..e2c1fefa64 --- /dev/null +++ b/docs/community/3.13-announcement.md @@ -0,0 +1,55 @@ + + +# Django REST framework 3.13 + +## Django 4.0 support + +The latest release now fully supports Django 4.0. + +Our requirements are now: + +* Python 3.6+ +* Django 4.0, 3.2, 3.1, 2.2 (LTS) + +## Fields arguments are now keyword-only + +When instantiating fields on serializers, you should always use keyword arguments, +such as `serializers.CharField(max_length=200)`. This has always been the case, +and all the examples that we have in the documentation use keyword arguments, +rather than positional arguments. + +From REST framework 3.13 onwards, this is now *explicitly enforced*. + +The most feasible cases where users might be accidentally omitting the keyword arguments +are likely in the composite fields, `ListField` and `DictField`. For instance... + +```python +aliases = serializers.ListField(serializers.CharField()) +``` + +They must now use the more explicit keyword argument style... + +```python +aliases = serializers.ListField(child=serializers.CharField()) +``` + +This change has been made because using positional arguments here *does not* result in the expected behaviour. + +See Pull Request [#7632](https://github.com/encode/django-rest-framework/pull/7632) for more details. diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 3de64f1855..d3e9dd7cc2 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -34,11 +34,11 @@ You can determine your currently installed version using `pip show`: --- -## 3.12.x series +## 3.13.x series -### 3.12.5 +### 3.13.0 -Date: ... +Date: 13th December 2021 * Django 4.0 compatability. [#8178] * Add `max_length` and `min_length` options to `ListSerializer`. [#8165] @@ -48,6 +48,10 @@ Date: ... * Fix for `RemoteUserAuthentication`. [#7158] * Make Field constructors keyword-only. [#7632] +--- + +## 3.12.x series + ### 3.12.4 Date: 26th March 2021 diff --git a/mkdocs.yml b/mkdocs.yml index 573898bca0..439245a8d2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,6 +66,7 @@ nav: - 'Contributing to REST framework': 'community/contributing.md' - 'Project management': 'community/project-management.md' - 'Release Notes': 'community/release-notes.md' + - '3.13 Announcement': 'community/3.13-announcement.md' - '3.12 Announcement': 'community/3.12-announcement.md' - '3.11 Announcement': 'community/3.11-announcement.md' - '3.10 Announcement': 'community/3.10-announcement.md'