From 988bc3a89f27e176103617e2667ea2e553be6d04 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Wed, 7 Dec 2022 12:37:44 -0300 Subject: [PATCH 1/2] Release Notes for 3.15 - Add docs/community/3.15-announcement.md - Update docs/community/release-notes.md - Update mkdocs.yml Co-authored-by: Bruno Alla --- docs/community/3.15-announcement.md | 58 ++++++++++++ docs/community/release-notes.md | 136 ++++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 195 insertions(+) create mode 100644 docs/community/3.15-announcement.md diff --git a/docs/community/3.15-announcement.md b/docs/community/3.15-announcement.md new file mode 100644 index 0000000000..1723313998 --- /dev/null +++ b/docs/community/3.15-announcement.md @@ -0,0 +1,58 @@ + + +# Django REST framework 3.15 + +At the Internet, on September 14th, 2023, with 135 commits 107 authors, we are happy to announce the release of Django REST framework 3.15. + +## Django 4.2 and Python 3.11 support + +The latest release now fully supports Django 4.2 and Python 3.11. + +The current minimum versions of Django still is 3.0 and Python 3.6. + +## Primary Support of UniqueConstraint + +`ModelSerializer` generates validators for [UniqueConstraint](https://docs.djangoproject.com/en/4.0/ref/models/constraints/#uniqueconstraint) (both UniqueValidator and UniqueTogetherValidator) + +## ValidationErrors improvements + +The `ValidationError` has been aligned with Django's, currently supporting the same style (signature) and nesting. + +## SimpleRouter non-regex matching support + +By default the URLs created by `SimpleRouter` use regular expressions. This behavior can be modified by setting the `use_regex_path` argument to `False` when instantiating the router. + +## ZoneInfo as the primary source of timezone data + +Dependency on pytz has been removed and deprecation warnings have been added, Django will provide ZoneInfo instances as long as USE_DEPRECATED_PYTZ is not enabled. More info on the migration can be found [in this guide](https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html). + +## Align `SearchFilter` behaviour to `django.contrib.admin` search + +Searches now may contain _quoted phrases_ with spaces, each phrase is considered as a single search term, and it will raise a validation error if any null-character is provided in search. See the [Filtering API guide](../api-guide/filtering.md) for more information. + +## Default values propagation + +Model fields' default values are now propagated to serializer fields, for more information see the [Serializer fields API guide](../api-guide/fields.md#default). + +## Other fixes and improvements + +There are a number of fixes and minor improvements in this release, ranging from documentation, internal infrastructure (typing, testing, requirements, deprecation, etc.), security and overall behaviour. + +See the [release notes](release-notes.md) page for a complete listing. diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index fba7f63d62..ed923ebe62 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -34,6 +34,142 @@ You can determine your currently installed version using `pip show`: --- +## 3.15.x series + +### 3.15.0 + +Date: 14th September 2023 + +* Added jQuery 3.7.1 support & dropped previous version [[#9094](https://github.com/encode/django-rest-framework/pull/9094)] +* Update CONTRIBUTING.md [[#9095](https://github.com/encode/django-rest-framework/pull/9095)] +* Fix documentation link test [[#9076](https://github.com/encode/django-rest-framework/pull/9076)] +* Use str as default path converter [[#9066](https://github.com/encode/django-rest-framework/pull/9066)] +* Update third-party-packages.md [[#9026](https://github.com/encode/django-rest-framework/pull/9026)] +* Document support for http.HTTPMethod in the @action decorator added in Python 3.11 [[#9067](https://github.com/encode/django-rest-framework/pull/9067)] +* Add note for HiddenField behavior [[#9055](https://github.com/encode/django-rest-framework/pull/9055)] +* Add docs validation to release process [[#6967](https://github.com/encode/django-rest-framework/pull/6967)] +* Update exceptions.md [[#9071](https://github.com/encode/django-rest-framework/pull/9071)] +* Partial serializer should not have required fields [[#7563](https://github.com/encode/django-rest-framework/pull/7563)] +* Propagate 'default' from model field to serializer field. [[#9030](https://github.com/encode/django-rest-framework/pull/9030)] +* Allow to override child.run_validation call in ListSerializer [[#8035](https://github.com/encode/django-rest-framework/pull/8035)] +* Align SearchFilter behaviour to django.contrib.admin search [[#9017](https://github.com/encode/django-rest-framework/pull/9017)] +* Class name added to unkown field error [[#9019](https://github.com/encode/django-rest-framework/pull/9019)] +* Fix: Pagination response schemas. [[#9049](https://github.com/encode/django-rest-framework/pull/9049)] +* Fix choices in ChoiceField to support IntEnum [[#8955](https://github.com/encode/django-rest-framework/pull/8955)] +* Fix `SearchFilter` rendering search field with invalid value [[#9023](https://github.com/encode/django-rest-framework/pull/9023)] +* Fix OpenAPI Schema yaml rendering for `timedelta` [[#9007](https://github.com/encode/django-rest-framework/pull/9007)] +* Fix `NamespaceVersioning` ignoring `DEFAULT_VERSION` on non-None namespaces [[#7278](https://github.com/encode/django-rest-framework/pull/7278)] +* Added Deprecation Warnings for CoreAPI [[#7519](https://github.com/encode/django-rest-framework/pull/7519)] +* Removed usage of `field.choices` that triggered full table load [[#8950](https://github.com/encode/django-rest-framework/pull/8950)] +* Permit mixed casing of string values for `BooleanField` validation [[#8970](https://github.com/encode/django-rest-framework/pull/8970)] +* Fixes `BrowsableAPIRenderer` for usage with `ListSerializer`. [[#7530](https://github.com/encode/django-rest-framework/pull/7530)] +* Change semantic of `OR` of two permission classes [[#7522](https://github.com/encode/django-rest-framework/pull/7522)] +* Remove dependency on `pytz` [[#8984](https://github.com/encode/django-rest-framework/pull/8984)] +* Add NullBooleanField deprecation to docs [[#8999](https://github.com/encode/django-rest-framework/pull/8999)] +* Fix example of `requires_context` attribute [[#8952](https://github.com/encode/django-rest-framework/pull/8952)] +* Fix validation for ListSerializer [[#8979](https://github.com/encode/django-rest-framework/pull/8979)] +* Make set_value a method within `Serializer` [[#8001](https://github.com/encode/django-rest-framework/pull/8001)] +* Fix URLPathVersioning reverse fallback [[#7247](https://github.com/encode/django-rest-framework/pull/7247)] +* Fix Links in Documentation to Django `reverse` and `reverse_lazy` [[#8986](https://github.com/encode/django-rest-framework/pull/8986)] +* Declared Django 4.2 support in README.md [[#8985](https://github.com/encode/django-rest-framework/pull/8985)] +* Remove django 2.2 from docs index [[#8982](https://github.com/encode/django-rest-framework/pull/8982)] +* Warn about Decimal type in min_value and max_value arguments of DecimalField [[#8972](https://github.com/encode/django-rest-framework/pull/8972)] +* Fix mapping for choice values [[#8968](https://github.com/encode/django-rest-framework/pull/8968)] +* Refactor read function to use context manager for file handling [[#8967](https://github.com/encode/django-rest-framework/pull/8967)] +* Fix: fallback on CursorPagination ordering if unset on the view [[#8954](https://github.com/encode/django-rest-framework/pull/8954)] +* Replaced `OrderedDict` with `dict` [[#8964](https://github.com/encode/django-rest-framework/pull/8964)] +* Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class [[#8943](https://github.com/encode/django-rest-framework/pull/8943)] +* Implement `__eq__` for validators [[#8925](https://github.com/encode/django-rest-framework/pull/8925)] +* Ensure CursorPagination respects nulls in the ordering field [[#8912](https://github.com/encode/django-rest-framework/pull/8912)] +* Use ZoneInfo as primary source of timezone data [[#8924](https://github.com/encode/django-rest-framework/pull/8924)] +* Add username search field for TokenAdmin (#8927) [[#8934](https://github.com/encode/django-rest-framework/pull/8934)] +* Handle Nested Relation in SlugRelatedField when many=False [[#8922](https://github.com/encode/django-rest-framework/pull/8922)] +* Docs: Fix authentication / authorization mixup [[#8930](https://github.com/encode/django-rest-framework/pull/8930)] +* Use consistent spelling for "authorization" [[#8929](https://github.com/encode/django-rest-framework/pull/8929)] +* Test django 4.2 stable release [[#8932](https://github.com/encode/django-rest-framework/pull/8932)] +* Update requirements-packaging.txt [[#8921](https://github.com/encode/django-rest-framework/pull/8921)] +* Update tox with django 4.2rc1 [[#8920](https://github.com/encode/django-rest-framework/pull/8920)] +* Bump version of jQuery to 3.6.4 & updated ref links [[#8909](https://github.com/encode/django-rest-framework/pull/8909)] +* Minor documentation improvements and fixes [[#8903](https://github.com/encode/django-rest-framework/pull/8903)] +* Support UniqueConstraint [[#7438](https://github.com/encode/django-rest-framework/pull/7438)] +* Test django 4.2b1 [[#8892](https://github.com/encode/django-rest-framework/pull/8892)] +* Docs: add missing renderer import in tutorial 6 [[#8885](https://github.com/encode/django-rest-framework/pull/8885)] +* Allow Request, Response, Field, and GenericAPIView to be subscriptable. This allows the classes to be made generic for type checking. [[#8825](https://github.com/encode/django-rest-framework/pull/8825)] +* Upgrade isort version in pre-commit [[#8882](https://github.com/encode/django-rest-framework/pull/8882)] +* Docs: fix code example [[#8880](https://github.com/encode/django-rest-framework/pull/8880)] +* Feat: Add some changes to ValidationError to support django style vadation errors [[#8863](https://github.com/encode/django-rest-framework/pull/8863)] +* Inherit from faked classes in tests to satisfy mypy [[#8859](https://github.com/encode/django-rest-framework/pull/8859)] +* Initial django 4.2a1 testing [[#8846](https://github.com/encode/django-rest-framework/pull/8846)] +* Fix Respect `can_read_model` permission in DjangoModelPermissions [[#8009](https://github.com/encode/django-rest-framework/pull/8009)] +* Add SimplePathRouter [[#6789](https://github.com/encode/django-rest-framework/pull/6789)] +* Re-prefetch related objects after updating [[#8043](https://github.com/encode/django-rest-framework/pull/8043)] +* Update documentation regarding arguments of ValidationError [[#8807](https://github.com/encode/django-rest-framework/pull/8807)] +* Fix FilePathField required argument [[#8805](https://github.com/encode/django-rest-framework/pull/8805)] +* Update docs to maintained `djangorestframework-guardian2` [[#8817](https://github.com/encode/django-rest-framework/pull/8817)] +* Revert "Fix bug in validators documentation (#8779)" [[#8811](https://github.com/encode/django-rest-framework/pull/8811)] +* Try update django-filter==22.1 [[#8813](https://github.com/encode/django-rest-framework/pull/8813)] +* Upddate setup python action to v4 [[#8806](https://github.com/encode/django-rest-framework/pull/8806)] +* attrs==22.1.0 [[#8828](https://github.com/encode/django-rest-framework/pull/8828)] +* Fix transifex-client version in packaging requirements. [[#8827](https://github.com/encode/django-rest-framework/pull/8827)] +* Raise ImproperlyConfigured exception if `basename` is not unique [[#8438](https://github.com/encode/django-rest-framework/pull/8438)] +* Use PrimaryKeyRelatedField pkfield in openapi [[#8315](https://github.com/encode/django-rest-framework/pull/8315)] +* Upgrade to tox 4 [[#8795](https://github.com/encode/django-rest-framework/pull/8795)] +* replace partition with split in BasicAuthentication [[#8790](https://github.com/encode/django-rest-framework/pull/8790)] +* Fix BooleanField's allow_null behavior [[#8614](https://github.com/encode/django-rest-framework/pull/8614)] +* Handle Django's ValidationErrors in ListField [[#6423](https://github.com/encode/django-rest-framework/pull/6423)] +* Remove a bit of inline CSS. Add CSP nonce where it might be required and is available [[#8783](https://github.com/encode/django-rest-framework/pull/8783)] +* Use autocomplete widget for user selection in Token admin [[#8534](https://github.com/encode/django-rest-framework/pull/8534)] +* Fix bug in validators documentation [[#8779](https://github.com/encode/django-rest-framework/pull/8779)] +* Make browsable API compatbile with strong CSP [[#8784](https://github.com/encode/django-rest-framework/pull/8784)] +* Avoid inline script execution for injecting CSRF token [[#7016](https://github.com/encode/django-rest-framework/pull/7016)] +* Remove Core API mentions from docs [[#8017](https://github.com/encode/django-rest-framework/pull/8017)] +* Mitigate global dependency on inflection #8017 [[#8017](https://github.com/encode/django-rest-framework/pull/8017)] [[#8781](https://github.com/encode/django-rest-framework/pull/8781)] +* Register Django urls [[#8778](https://github.com/encode/django-rest-framework/pull/8778)] +* Implemented Verbose Name Translation for TokenProxy [[#8713](https://github.com/encode/django-rest-framework/pull/8713)] +* Properly handle OverflowError in DurationField deserialization [[#8042](https://github.com/encode/django-rest-framework/pull/8042)] +* Fix OpenAPI operation name plural appropriately [[#8017](https://github.com/encode/django-rest-framework/pull/8017)] +* Represent SafeString as plain string on schema rendering [[#8429](https://github.com/encode/django-rest-framework/pull/8429)] +* Fix #8771 - Checking for authentication even if `_ignore_model_permissions = True` [[#8772](https://github.com/encode/django-rest-framework/pull/8772)] +* Update schema generation doc & add deprecation notice [[#8773](https://github.com/encode/django-rest-framework/pull/8773)] +* Update 6-viewsets-and-routers.md [[#8590](https://github.com/encode/django-rest-framework/pull/8590)] +* Added pagination settings test case [[#8326](https://github.com/encode/django-rest-framework/pull/8326)] +* Fix 404 when page query parameter is empty string [[#8578](https://github.com/encode/django-rest-framework/pull/8578)] +* Fixes instance check in ListSerializer.to_representation [[#8726](https://github.com/encode/django-rest-framework/pull/8726)] [[#8727](https://github.com/encode/django-rest-framework/pull/8727)] +* FloatField will crash if the input is a number that is too big [[#8725](https://github.com/encode/django-rest-framework/pull/8725)] +* Add missing DurationField to SimpleMetada label_lookup [[#8702](https://github.com/encode/django-rest-framework/pull/8702)] +* converted assertion to pytest style in test status [[#8662](https://github.com/encode/django-rest-framework/pull/8662)] +* Fix #8751 - Add support to Python 3.11 [[#8752](https://github.com/encode/django-rest-framework/pull/875)] +* update minimum version to psycopg2-binary>=2.9.5 [[#8767](https://github.com/encode/django-rest-framework/pull/8767)] +* pytest versions update [[#8745](https://github.com/encode/django-rest-framework/pull/8745)] +* Add 3rd party entry for rest-framework-roles [[#8755](https://github.com/encode/django-rest-framework/pull/8755)] +* Added http 102, 103, 421, and 425 status codes in documentation [[#8763](https://github.com/encode/django-rest-framework/pull/8763)] +* Make request consistently available in pagination classes [[#8764](https://github.com/encode/django-rest-framework/pull/9764)] +* Possibility to remove trailing zeros on DecimalFields representation [[#6514](https://github.com/encode/django-rest-framework/pull/6514)] +* Fix Pytest's deprecation warnings about nose usage [[#8758](https://github.com/encode/django-rest-framework/pull/8758)] +* Remove extraneous word "Both" [[#8740](https://github.com/encode/django-rest-framework/pull/8740)] +* Update jobs.md [[#8737](https://github.com/encode/django-rest-framework/pull/8737)] +* Update quickstart.md [[#8575](https://github.com/encode/django-rest-framework/pull/8575)] +* Improve style, fix some typos [[#8405](https://github.com/encode/django-rest-framework/pull/8405)] +* Fixes typo [[#8719](https://github.com/encode/django-rest-framework/pull/8719)] +* Add a method for getting serializer field name (OpenAPI) [[#7493](https://github.com/encode/django-rest-framework/pull/7493)] +* Add `__eq__` method for `OperandHolder` class [[#8710](https://github.com/encode/django-rest-framework/pull/8710)] +* Update schemas.md [[#8707](https://github.com/encode/django-rest-framework/pull/8707)] +* Avoid importing `django.test` package when not testing [[#8699](https://github.com/encode/django-rest-framework/pull/8699)] +* Docs: use `asterisk` for unordered list [[#8697](https://github.com/encode/django-rest-framework/pull/8697)] +* Docs: Convert all tabs into spaces [[#8692](https://github.com/encode/django-rest-framework/pull/8692)] +* Preserve exception messages for wrapped Django exceptions [[#8051](https://github.com/encode/django-rest-framework/pull/8051)] +* Added examples to schema of CursorPagination [[#8687] (https://github.com/encode/django-rest-framework/pull/8687)] [[#8686](https://github.com/encode/django-rest-framework/pull/8686)] +* Fix infinite recursion with deepcopy on Request [[#8684](https://github.com/encode/django-rest-framework/pull/8684)] +* Refactor: Replace try/except with contextlib.suppress() [[#8676](https://github.com/encode/django-rest-framework/pull/8676)] +* Docs: Updated browsable-api.md [[#8678](https://github.com/encode/django-rest-framework/pull/8678)] +* Add spaces to router example in 6-viewsets-and-routers.md [[#8448](https://github.com/encode/django-rest-framework/pull/8448)] +* Update requirements-testing.txt [[#8680](https://github.com/encode/django-rest-framework/pull/8680)] +* Minor fix to SerializeMethodField docstring [[#8629](https://github.com/encode/django-rest-framework/pull/8629)] +* Minor refactor: Unnecessary use of list() function [[#8672](https://github.com/encode/django-rest-framework/pull/8672)] +* Update documentation on dependency installation [[#8566](https://github.com/encode/django-rest-framework/pull/8566)] +* Unnecessary list comprehension [[#8670](https://github.com/encode/django-rest-framework/pull/8670)] +* Use correct class to indicate present deprecation [[#8665](https://github.com/encode/django-rest-framework/pull/8665)] + ## 3.14.x series ### 3.14.0 diff --git a/mkdocs.yml b/mkdocs.yml index dcef68987b..79831fe95a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -65,6 +65,7 @@ nav: - 'Contributing to REST framework': 'community/contributing.md' - 'Project management': 'community/project-management.md' - 'Release Notes': 'community/release-notes.md' + - '3.15 Announcement': 'community/3.15-announcement.md' - '3.14 Announcement': 'community/3.14-announcement.md' - '3.13 Announcement': 'community/3.13-announcement.md' - '3.12 Announcement': 'community/3.12-announcement.md' From 965e9bc0539e0c014f3f6a8bd8c346e84ce0bd78 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 4 Jan 2024 11:08:40 +0000 Subject: [PATCH 2/2] Release date pending bump --- docs/community/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index ed923ebe62..ea88a5a6f6 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -38,7 +38,7 @@ You can determine your currently installed version using `pip show`: ### 3.15.0 -Date: 14th September 2023 +Date: ... * Added jQuery 3.7.1 support & dropped previous version [[#9094](https://github.com/encode/django-rest-framework/pull/9094)] * Update CONTRIBUTING.md [[#9095](https://github.com/encode/django-rest-framework/pull/9095)] pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy