From d3e20de9f4f1bdaa4376e4fd5fc3c05df42fd4c5 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 13 Dec 2021 11:07:53 +0000 Subject: [PATCH] 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 000000000..e2c1fefa6 --- /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 3de64f185..d3e9dd7cc 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 573898bca..439245a8d 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'