diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e8cbad..90a41cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,25 +14,49 @@ jobs: build: name: Python==${{ matrix.python-version }} | ${{ matrix.django-version }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" + - "3.13" django-version: - - django~=3.2.0 - - django~=4.1.0 - django~=4.2.0 + - django~=5.1.0 + - django~=5.2.0 + exclude: + # Django 5.1+ requires Python >=3.10 + - python-version: "3.9" + django-version: django~=5.1.0 + - python-version: "3.9" + django-version: django~=5.2.0 + # Python 3.13 supported only in Django >=5.1.3 + - python-version: "3.13" + django-version: django~=4.2.0 steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} + - name: Cache APT packages + uses: actions/cache@v4 + with: + path: /var/cache/apt/archives + key: apt-${{ runner.os }}-${{ hashFiles('.github/workflows/ci.yml') }} + restore-keys: | + apt-${{ runner.os }}- + + - name: Disable man page auto-update + run: | + echo 'set man-db/auto-update false' | sudo debconf-communicate >/dev/null + sudo dpkg-reconfigure man-db + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: diff --git a/README.rst b/README.rst index ebb1c20..0a1a422 100755 --- a/README.rst +++ b/README.rst @@ -46,7 +46,7 @@ manipulate a flat JSON object made of simple keys and values**. Compatibility ------------- -Tested on python >= 3.8 and Django 3.2, 4.1 and 4.2. +Tested on python >= 3.9 and Django 4.2, 5.1 and 5.2. It should work also on previous versions of Django. diff --git a/setup.py b/setup.py index 8d32b56..77a0bbe 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,10 @@ packages=find_packages(exclude=['tests*', 'docs*']), include_package_data=True, zip_safe=False, - install_requires=[], + python_requires='>=3.9', + install_requires=[ + 'django>=4.2,<5.3', + ], extras_require={ 'test': [ ( @@ -36,6 +39,14 @@ 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Framework :: Django', + 'Framework :: Django :: 4.2', + 'Framework :: Django :: 5.1', + 'Framework :: Django :: 5.2', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', ], )