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

Daniel Axtens dja at axtens.net
Wed May 1 11:04:30 AEST 2019


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.

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