diff --git a/.travis.yml b/.travis.yml index ae4cb4de..c76e079e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,17 @@ language: python -sudo: false +sudo: required cache: pip # Favor explicit over implicit and use an explicit build matrix. matrix: + allow_failures: + - env: TOXENV=py34-df20-django20-drfmaster + - env: TOXENV=py35-df20-django20-drfmaster + - env: TOXENV=py36-df20-django20-drfmaster + - env: TOXENV=py37-df20-django20-drfmaster + - env: TOXENV=py35-df20-django21-drfmaster + - env: TOXENV=py36-df20-django21-drfmaster + - env: TOXENV=py37-df20-django21-drfmaster + include: - python: 3.6 env: TOXENV=flake8 @@ -13,6 +22,8 @@ matrix: env: TOXENV=py27-df11-django111-drf37 - python: 2.7 env: TOXENV=py27-df11-django111-drf38 + - python: 2.7 + env: TOXENV=py27-df11-django111-drf39 - python: 3.4 env: TOXENV=py34-df20-django111-drf36 @@ -24,6 +35,10 @@ matrix: env: TOXENV=py34-df20-django20-drf37 - python: 3.4 env: TOXENV=py34-df20-django20-drf38 + - python: 3.4 + env: TOXENV=py34-df20-django20-drf39 + - python: 3.4 + env: TOXENV=py34-df20-django20-drfmaster - python: 3.5 env: TOXENV=py35-df20-django111-drf36 @@ -35,6 +50,14 @@ matrix: env: TOXENV=py35-df20-django20-drf37 - python: 3.5 env: TOXENV=py35-df20-django20-drf38 + - python: 3.5 + env: TOXENV=py35-df20-django20-drf39 + - python: 3.5 + env: TOXENV=py35-df20-django20-drfmaster + - python: 3.5 + env: TOXENV=py35-df20-django21-drf39 + - python: 3.5 + env: TOXENV=py35-df20-django21-drfmaster - python: 3.6 env: TOXENV=py36-df20-django111-drf36 @@ -46,6 +69,31 @@ matrix: env: TOXENV=py36-df20-django20-drf37 - python: 3.6 env: TOXENV=py36-df20-django20-drf38 + - python: 3.6 + env: TOXENV=py36-df20-django20-drf39 + - python: 3.6 + env: TOXENV=py36-df20-django20-drfmaster + - python: 3.6 + env: TOXENV=py36-df20-django21-drf39 + - python: 3.6 + env: TOXENV=py36-df20-django21-drfmaster + + - python: 3.7 + dist: xenial + sudo: required + env: TOXENV=py37-df20-django20-drf39 + - python: 3.7 + dist: xenial + sudo: required + env: TOXENV=py37-df20-django20-drfmaster + - python: 3.7 + dist: xenial + sudo: required + env: TOXENV=py37-df20-django21-drf39 + - python: 3.7 + dist: xenial + sudo: required + env: TOXENV=py37-df20-django21-drfmaster install: - pip install tox script: diff --git a/CHANGELOG.md b/CHANGELOG.md index d4db4bbc..49114a36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ any parts of the framework not mentioned in the documentation should generally b ### Added +* Add support for Django 2.1, DRF 3.9 and Python 3.7. Please note: + - Django >= 2.1 is not supported with Python < 3.5. + ### Deprecated ### Changed diff --git a/README.rst b/README.rst index 13579a24..e5b9f930 100644 --- a/README.rst +++ b/README.rst @@ -87,9 +87,9 @@ As a Django REST Framework JSON API (short DJA) we are trying to address followi Requirements ------------ -1. Python (2.7, 3.4, 3.5, 3.6) -2. Django (1.11, 2.0) -3. Django REST Framework (3.6, 3.7, 3.8) +1. Python (2.7, 3.4, 3.5, 3.6, 3.7) +2. Django (1.11, 2.0, 2.1) +3. Django REST Framework (3.6, 3.7, 3.8, 3.9) ------------ Installation @@ -116,12 +116,18 @@ From Source Running the example app ^^^^^^^^^^^^^^^^^^^^^^^ +It is recommended to create a virtualenv for testing. Assuming it is already +installed and activated: + :: $ git clone https://github.com/django-json-api/django-rest-framework-json-api.git $ cd django-rest-framework-json-api + $ pip install -r example/requirements.txt $ pip install -e . - $ django-admin.py runserver --settings=example.settings + $ django-admin migrate --settings=example.settings + $ django-admin loaddata drf_example --settings=example.settings + $ django-admin runserver --settings=example.settings Browse to http://localhost:8000 @@ -136,7 +142,7 @@ installed and activated: $ pip install -r requirements-development.txt $ flake8 - $ py.test + $ DJANGO_SETTINGS_MODULE=example.settings.test py.test ----- Usage diff --git a/docs/getting-started.md b/docs/getting-started.md index 26117e0b..baa53189 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -51,9 +51,9 @@ like the following: ## Requirements -1. Python (2.7, 3.4, 3.5, 3.6) -2. Django (1.11, 2.0) -3. Django REST Framework (3.6, 3.7, 3.8) +1. Python (2.7, 3.4, 3.5, 3.6, 3.7) +2. Django (1.11, 2.0, 2.1) +3. Django REST Framework (3.6, 3.7, 3.8, 3.9) ## Installation diff --git a/tox.ini b/tox.ini index c4812e0b..30f6b86f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,16 +1,21 @@ [tox] envlist = - py27-df11-django111-drf{36,37,38} - py{34,35,36}-df20-django111-drf{36,37,38}, - py{34,35,36}-df20-django20-drf{37,38}, + py27-df11-django111-drf{36,37,38,39} + py{34,35,36}-df20-django111-drf{36,37,38,39,master}, + py{34,35,36}-df20-django20-drf{37,38,39,master}, + py37-df20-django20-drf{39,master}, + py{35,36,37}-df20-django21-drf{39,master}, [testenv] deps = django111: Django>=1.11,<1.12 django20: Django>=2.0,<2.1 + django21: Django>=2.1,<2.2 drf36: djangorestframework>=3.6.3,<3.7 drf37: djangorestframework>=3.7.0,<3.8 drf38: djangorestframework>=3.8.0,<3.9 + drf39: djangorestframework>=3.9.0,<3.10 + drfmaster: https://github.com/encode/django-rest-framework/archive/master.zip df11: django-filter<=1.1 df20: django-filter>=2.0