diff --git a/.circleci/config.yml b/.circleci/config.yml index 64e60c3..d71d4ed 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,6 +12,17 @@ executors: POSTGRES_DB: 'psqlextra' POSTGRES_USER: 'psqlextra' POSTGRES_PASSWORD: 'psqlextra' + python-rc: + parameters: + version: + type: string + docker: + - image: python:<< parameters.version >>-rc-buster + - image: postgres:16.0 + environment: + POSTGRES_DB: 'psqlextra' + POSTGRES_USER: 'psqlextra' + POSTGRES_PASSWORD: 'psqlextra' commands: install-dependencies: @@ -106,6 +117,17 @@ jobs: extra: test - run-tests: pyversion: 311 + + test-python312: + executor: + name: python-rc + version: "3.12" + steps: + - checkout + - install-dependencies: + extra: test + - run-tests: + pyversion: 312 - store_test_results: path: reports - run: @@ -188,6 +210,12 @@ workflows: only: /.*/ branches: only: /.*/ + - test-python312: + filters: + tags: + only: /.*/ + branches: + only: /.*/ - analysis: filters: tags: diff --git a/setup.py b/setup.py index b3217fb..a26439d 100644 --- a/setup.py +++ b/setup.py @@ -1,13 +1,17 @@ -import distutils.cmd import os import subprocess from setuptools import find_packages, setup +try: + from distutils.cmd import Command as Command +except ImportError: + from setuptools import Command as Command + exec(open("psqlextra/_version.py").read()) -class BaseCommand(distutils.cmd.Command): +class BaseCommand(Command): user_options = [] def initialize_options(self): @@ -63,12 +67,13 @@ def run(self): "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", ], python_requires=">=3.6", install_requires=[ - "Django>=2.0,<5.0", + "Django>=2.0,<6.0", "python-dateutil>=2.8.0,<=3.0.0", ], extras_require={ diff --git a/tox.ini b/tox.ini index 3e229d0..a2063d7 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,10 @@ envlist = {py36,py37}-dj{20,21,22,30,31,32}-psycopg{28,29} {py38,py39,py310}-dj{21,22,30,31,32,40}-psycopg{28,29} - {py38,py39,py310,py311}-dj{41}-psycopg{28,29} - {py38,py39,py310,py311}-dj{42}-psycopg{28,29,31} + {py38,py39,py310,py311,py312}-dj{41}-psycopg{28,29} + {py38,py39,py310,py311,py312}-dj{42}-psycopg{28,29,31} + {py310,py311,py312}-dj{50}-psycopg{31} + [testenv] deps = @@ -16,6 +18,7 @@ deps = dj40: Django~=4.0.0 dj41: Django~=4.1.0 dj42: Django~=4.2.0 + dj50: Django~=5.0.0 psycopg28: psycopg2[binary]~=2.8 psycopg29: psycopg2[binary]~=2.9 psycopg31: psycopg[binary]~=3.1