[PATCH 07/10] Add support for Django REST Framework 3.7, 3.8

Daniel Axtens dja at axtens.net
Fri May 3 17:01:32 AEST 2019


Daniel Axtens <dja at axtens.net> writes:

> Stephen Finucane <stephen at that.guru> writes:
>
>> On Tue, 2019-04-30 at 16:03 +1000, Daniel Axtens wrote:
>>> From: Stephen Finucane <stephen at that.guru>
>>> 
>>> No breaking changes that concern us here.
>>> 
>>> Signed-off-by: Stephen Finucane <stephen at that.guru>
>>> Reviewed-by: Daniel Axtens <dja at axtens.net>
>>> Signed-off-by: Daniel Axtens <dja at axtens.net>
>>> (cherry picked from commit a27f36fb784867e434527b8e65064ae3bdb12c82)
>>> Signed-off-by: Daniel Axtens <dja at axtens.net>
>>
>> I'm conflicted on this. This introduces a change in requirements which
>> is not something we should typically do on a stable branch. The only
>> thing that could save us is that we don't *drop* support for something
>> (I'd be a hard -1 if we did), but is there any reason we couldn't just
>> cut a 2.2 release instead?
>
> So:
>
>  - Production systems may legitimately want to run with the most recent
>    minor version of dependencies, because they often contain security
>    fixes.
>
>  - Production systems may also want to stick to stable versions of PW
>    while running recent dependencies, especially since a 2.1->2.2
>    upgrade will require a schema migration and downtime.
>
>  - Therefore, stable versions of PW should support the most recent
>    versions of our dependencies.
>
> In this case, the only patch we _really_ need is the django-filters one,
> as there's a change between 1.0 and 1.1 that we need support for. The
> DRF changes just allow us to use tox and friends to test that we support
> this usecase.
>
> If you wanted, I'd be happy to only pick the changes to tox.ini and drop
> the changes to requirements-* - then I can use tox to satisfy myself
> that the OzLabs setup is likely to work but we don't change the default
> versions.
>

I've adopted this approach (only change tox.ini), applied the patches,
and tagged v2.1.2.

Regards,
Daniel

> We also should cut 2.2 soon, if for no other reason than to get the db
> speedups, but I don't think it provides a solution for this usecase.
>
> Regards,
> Daniel
>
>>
>> Stephen
>>
>>> ---
>>>  README.rst                                                  | 2 +-
>>>  .../notes/django-rest-framework-3-7-bc6ad5df8bc54afc.yaml   | 6 ++++++
>>>  .../notes/django-rest-framework-3-8-23865db833b4d188.yaml   | 6 ++++++
>>>  requirements-dev.txt                                        | 2 +-
>>>  requirements-prod.txt                                       | 2 +-
>>>  tox.ini                                                     | 5 +++--
>>>  6 files changed, 18 insertions(+), 5 deletions(-)
>>>  create mode 100644 releasenotes/notes/django-rest-framework-3-7-bc6ad5df8bc54afc.yaml
>>>  create mode 100644 releasenotes/notes/django-rest-framework-3-8-23865db833b4d188.yaml
>>> 
>>> diff --git a/README.rst b/README.rst
>>> index 4a970ec5a9ff..ddc4b98125d1 100644
>>> --- a/README.rst
>>> +++ b/README.rst
>>> @@ -45,7 +45,7 @@ Requirements
>>>  
>>>  - Django (1.8 - 1.11)
>>>  
>>> -- Django REST Framework (3.2 - 3.6)
>>> +- Django REST Framework (3.4 - 3.8)
>>>  
>>>  - Django Filters (1.0)
>>>  
>>> diff --git a/releasenotes/notes/django-rest-framework-3-7-bc6ad5df8bc54afc.yaml b/releasenotes/notes/django-rest-framework-3-7-bc6ad5df8bc54afc.yaml
>>> new file mode 100644
>>> index 000000000000..4bf92c999df5
>>> --- /dev/null
>>> +++ b/releasenotes/notes/django-rest-framework-3-7-bc6ad5df8bc54afc.yaml
>>> @@ -0,0 +1,6 @@
>>> +---
>>> +upgrade:
>>> +  - |
>>> +    `Django REST Framework 3.7
>>> +    <http://www.django-rest-framework.org/topics/release-notes/#370/>`_ is now
>>> +    supported.
>>> diff --git a/releasenotes/notes/django-rest-framework-3-8-23865db833b4d188.yaml b/releasenotes/notes/django-rest-framework-3-8-23865db833b4d188.yaml
>>> new file mode 100644
>>> index 000000000000..dc2d2c8f8bfa
>>> --- /dev/null
>>> +++ b/releasenotes/notes/django-rest-framework-3-8-23865db833b4d188.yaml
>>> @@ -0,0 +1,6 @@
>>> +---
>>> +upgrade:
>>> +  - |
>>> +    `Django REST Framework 3.8
>>> +    <http://www.django-rest-framework.org/topics/release-notes/#380/>`_ is now
>>> +    supported.
>>> diff --git a/requirements-dev.txt b/requirements-dev.txt
>>> index 7a8fdb9c8851..b12246dd1b89 100644
>>> --- a/requirements-dev.txt
>>> +++ b/requirements-dev.txt
>>> @@ -1,4 +1,4 @@
>>>  Django>=1.8,<2.0
>>> -djangorestframework>=3.4,<3.7
>>> +djangorestframework>=3.4,<3.9
>>>  django-filter>=1.0,<1.1
>>>  -r requirements-test.txt
>>> diff --git a/requirements-prod.txt b/requirements-prod.txt
>>> index d249ad84c10c..42ff8ecd82f1 100644
>>> --- a/requirements-prod.txt
>>> +++ b/requirements-prod.txt
>>> @@ -1,5 +1,5 @@
>>>  Django>=1.8,<2.0
>>> -djangorestframework>=3.4,<3.7
>>> +djangorestframework>=3.4,<3.9
>>>  django-filter>=1.0,<1.1
>>>  psycopg2>=2.7,<2.8
>>>  sqlparse==0.2.4
>>> diff --git a/tox.ini b/tox.ini
>>> index 327b9e7c14a8..5c741d374a64 100644
>>> --- a/tox.ini
>>> +++ b/tox.ini
>>> @@ -10,8 +10,9 @@ deps =
>>>      django19: django>=1.9,<1.10
>>>      django110: django>=1.10,<1.11
>>>      django111: django>=1.11,<2.0
>>> -    django{18,19,110}: djangorestframework>=3.4,<3.7
>>> -    django111: djangorestframework>=3.6,<3.7
>>> +    django{18,19}: djangorestframework>=3.4,<3.7
>>> +    django110: djangorestframework>=3.4,<3.9
>>> +    django111: djangorestframework>=3.6,<3.9
>>>      django{18,19,110,111}: django-filter>=1.0,<1.1
>>>  setenv =
>>>      DJANGO_SETTINGS_MODULE = patchwork.settings.dev


More information about the Patchwork mailing list