Drop support for Django < 4.2 and Python < 3.8

Discussion: https://github.com/encode/django-rest-framework/discussions/8814#discussioncomment-9237791
This commit is contained in:
Peter Thomassen 2024-04-26 16:49:58 +02:00
parent 91bbac1f67
commit 1f2daaf53c
No known key found for this signature in database
GPG Key ID: 5203651ED2F34D28
5 changed files with 9 additions and 35 deletions

View File

@ -14,8 +14,6 @@ jobs:
strategy: strategy:
matrix: matrix:
python-version: python-version:
- '3.6'
- '3.7'
- '3.8' - '3.8'
- '3.9' - '3.9'
- '3.10' - '3.10'
@ -37,18 +35,9 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: python -m pip install --upgrade codecov tox run: python -m pip install --upgrade codecov tox
- name: Install tox-py
if: ${{ matrix.python-version == '3.6' }}
run: python -m pip install --upgrade tox-py
- name: Run tox targets for ${{ matrix.python-version }} - name: Run tox targets for ${{ matrix.python-version }}
if: ${{ matrix.python-version != '3.6' }}
run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d .) run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d .)
- name: Run tox targets for ${{ matrix.python-version }}
if: ${{ matrix.python-version == '3.6' }}
run: tox --py current
- name: Run extra tox targets - name: Run extra tox targets
if: ${{ matrix.python-version == '3.9' }} if: ${{ matrix.python-version == '3.9' }}
run: | run: |

View File

@ -53,8 +53,8 @@ Some reasons you might want to use REST framework:
# Requirements # Requirements
* Python 3.6+ * Python 3.8+
* Django 5.0, 4.2, 4.1, 4.0, 3.2, 3.1, 3.0 * Django 5.0, 4.2
We **highly recommend** and only officially support the latest patch release of We **highly recommend** and only officially support the latest patch release of
each Python and Django series. each Python and Django series.

View File

@ -86,8 +86,8 @@ continued development by **[signing up for a paid plan][funding]**.
REST framework requires the following: REST framework requires the following:
* Python (3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12) * Django (4.2, 5.0)
* Django (3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0) * Python (3.8, 3.9, 3.10, 3.11, 3.12)
We **highly recommend** and only officially support the latest patch release of We **highly recommend** and only officially support the latest patch release of
each Python and Django series. each Python and Django series.

View File

@ -8,7 +8,7 @@ from io import open
from setuptools import find_packages, setup from setuptools import find_packages, setup
CURRENT_PYTHON = sys.version_info[:2] CURRENT_PYTHON = sys.version_info[:2]
REQUIRED_PYTHON = (3, 6) REQUIRED_PYTHON = (3, 8)
# This check and everything above must remain compatible with Python 2.7. # This check and everything above must remain compatible with Python 2.7.
if CURRENT_PYTHON < REQUIRED_PYTHON: if CURRENT_PYTHON < REQUIRED_PYTHON:
@ -83,18 +83,13 @@ setup(
author_email='tom@tomchristie.com', # SEE NOTE BELOW (*) author_email='tom@tomchristie.com', # SEE NOTE BELOW (*)
packages=find_packages(exclude=['tests*']), packages=find_packages(exclude=['tests*']),
include_package_data=True, include_package_data=True,
install_requires=["django>=3.0", 'backports.zoneinfo;python_version<"3.9"'], install_requires=["django>=4.2", 'backports.zoneinfo;python_version<"3.9"'],
python_requires=">=3.6", python_requires=">=3.8",
zip_safe=False, zip_safe=False,
classifiers=[ classifiers=[
'Development Status :: 5 - Production/Stable', 'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment', 'Environment :: Web Environment',
'Framework :: Django', 'Framework :: Django',
'Framework :: Django :: 3.0',
'Framework :: Django :: 3.1',
'Framework :: Django :: 3.2',
'Framework :: Django :: 4.0',
'Framework :: Django :: 4.1',
'Framework :: Django :: 4.2', 'Framework :: Django :: 4.2',
'Framework :: Django :: 5.0', 'Framework :: Django :: 5.0',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
@ -102,8 +97,6 @@ setup(
'Operating System :: OS Independent', 'Operating System :: OS Independent',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.10',

12
tox.ini
View File

@ -1,10 +1,7 @@
[tox] [tox]
envlist = envlist =
{py36,py37,py38,py39}-django30 {py38,py39,py310}-{django42,djangomain}
{py36,py37,py38,py39}-django31 {py311}-{django42,django50,djangomain}
{py36,py37,py38,py39,py310}-django32
{py38,py39,py310}-{django40,django41,django42,djangomain}
{py311}-{django41,django42,django50,djangomain}
{py312}-{django42,djanggo50,djangomain} {py312}-{django42,djanggo50,djangomain}
base base
dist dist
@ -17,11 +14,6 @@ setenv =
PYTHONDONTWRITEBYTECODE=1 PYTHONDONTWRITEBYTECODE=1
PYTHONWARNINGS=once PYTHONWARNINGS=once
deps = deps =
django30: Django>=3.0,<3.1
django31: Django>=3.1,<3.2
django32: Django>=3.2,<4.0
django40: Django>=4.0,<4.1
django41: Django>=4.1,<4.2
django42: Django>=4.2,<5.0 django42: Django>=4.2,<5.0
django50: Django>=5.0,<5.1 django50: Django>=5.0,<5.1
djangomain: https://github.com/django/django/archive/main.tar.gz djangomain: https://github.com/django/django/archive/main.tar.gz