Consider withdrawing release 3.15.0 #9336
Replies: 4 comments 3 replies
-
100% agreed. People should not install 3.15.0 considering all the issues, and considering that most changes are being undone. |
Beta Was this translation helpful? Give feedback.
-
As mentioned in the comment you linked to, I did fix the known issues in my code base(s) with 3.15 but am still strongly considering reverting back to 3.14 which I have been using without issue since it was released. Are there any "must have" updates in 3.15 that are required for django 5? In my experience, it was all working as expected - I have been running Django 5 in prod since shortly after its release. Withdrawing 3.15, adding a subset of what was in it to a 3.16, especially as it relates to both Django 5 and any security issues, and shoring up test coverage to help ensure that breaking changes do not occur in the future seems like a smart move to me. |
Beta Was this translation helpful? Give feedback.
-
I'll add one more example to the mix here form my experience, if for no other reasons so if others search for this issue they find the reason / my solution. I continue to pin back In 3.15.0, the Asserted test in 3.14.0: django-rest-framework/tests/test_generics.py Line 522 in 2da473c Asserted test in 3.15.0: django-rest-framework/tests/test_generics.py Line 527 in 2d8e9ad This change is referenced in the release notes, but not in a way that I'd understand it to be a breaking change. This PR is referenced for the change. If I didn't have my own 404 test wrapped around this (as I imagine many wouldn't), I would have released what I consider a breaking change to my downstreams without a major version bump. Now this response body actually comes from Django itself: https://github.com/django/django/blob/a76c52b19a221147f3a903848f711daa367e2e20/django/shortcuts.py#L88 But DRF didn't seem to be passing it through before, so while I agree that it's better to pass on Django's response body here for a 404, the fact that DRF changed its own implementation (the exception info from Django For those that find this discussion trying to find how to change this behavior back to how it was, set a customer exception handler: REST_FRAMEWORK = {
'EXCEPTION_HANDLER': 'my_project.my_app.utils.custom_exception_handler'
} Here is a simple implementation: from rest_framework import status
from rest_framework.views import exception_handler
def custom_exception_handler(exc, context):
# Call REST framework's default exception handler first,
# to get the standard error response.
response = exception_handler(exc, context)
# Now add the HTTP status code to the response.
if response is not None and response.status_code == status.HTTP_404_NOT_FOUND:
response.data['detail'] = 'Not found.'
return response |
Beta Was this translation helpful? Give feedback.
-
We too have had to pin 3.14.0 because 3.15.1 doesn't fix a test that 3.15.0 broke. |
Beta Was this translation helpful? Give feedback.
-
Given the various serious regressions discovered so far (~10?), and given that more are being discovered, I've become concerned whether installing a 3.15 release is safe, even when the issues listed in #9331 are addressed in 3.15.1.
With several users having expressed serious concern (e.g. #9306 (comment)), it seems like in order to avoid further erosion of confidence in the project, the best thing to do may be to withdraw the broken release, and instead carefully prepare a 3.16 release while ensuring to retain the quality standards that this project has been known for.
Thank you for considering!
I'm tagging a few random people from issues and discussions who seemed to be concerned, in case they'd like to add something. @mrzorn @kevinrenskers @henribru @joseph2rs @alexdlaird @Mehourka @shammellee @martinlehoux
Beta Was this translation helpful? Give feedback.
All reactions