diff --git a/.github/workflows/linux.yaml b/.github/workflows/linux.yaml index ac09ce5..dd68f8e 100644 --- a/.github/workflows/linux.yaml +++ b/.github/workflows/linux.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - py: ['3.8', '3.9', '3.10', '3.11', '3.12'] + py: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - name: checkout uses: actions/checkout@v4 @@ -30,7 +30,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - pg: [12, 13, 14, 15] + pg: [13, 14, 15, 16, 17, 18] steps: - name: checkout uses: actions/checkout@v4 @@ -41,7 +41,7 @@ jobs: - name: install python deps run: pip3 install tox tox-docker - name: run tests - run: tox -e py310-pg${{ matrix.pg }} + run: tox -e py312-pg${{ matrix.pg }} contrib: name: Contrib @@ -55,7 +55,7 @@ jobs: - name: setup python uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.12" - name: install python deps run: pip3 install tox tox-docker - name: run tests @@ -70,7 +70,7 @@ jobs: - name: setup python uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.9" - name: install python deps run: pip3 install tox tox-docker - name: run tests diff --git a/.github/workflows/macos.yaml b/.github/workflows/macos.yaml index 2504d68..a5d66bf 100644 --- a/.github/workflows/macos.yaml +++ b/.github/workflows/macos.yaml @@ -12,11 +12,12 @@ jobs: strategy: matrix: pg: - - postgresql@12 - postgresql@13 - postgresql@14 - postgresql@15 - postgresql@16 + - postgresql@17 + - postgresql@18 runs-on: macos-14 steps: - name: os info diff --git a/docs/installation.rst b/docs/installation.rst index a8da7aa..0e9696a 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -19,8 +19,8 @@ approach is to create a psycopg2 wheel for distribution to production machines Compatibility """"""""""""" -pgcopy is tested with Python versions 3.8 -- 3.12 and -PostgreSQL versions 12 -- 16 +pgcopy is tested with Python versions 3.9 -- 3.14 and +PostgreSQL versions 13 -- 18 .. note:: diff --git a/docs/testing.rst b/docs/testing.rst index c3c3ca4..89a2c58 100644 --- a/docs/testing.rst +++ b/docs/testing.rst @@ -16,7 +16,7 @@ database: For more thorough testing, tox_ with tox-docker_ will run tests on python -versions 3.8 -- 3.12 and postgresql versions 12 -- 16:: +versions 3.9 -- 3.14 and postgresql versions 13 -- 18:: $ tox diff --git a/setup.py b/setup.py index 78cfb49..3aee002 100644 --- a/setup.py +++ b/setup.py @@ -40,11 +40,12 @@ def get_version(package_name, default="0.1"): install_requires=["psycopg2", "pytz"], classifiers=[ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "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", + "Programming Language :: Python :: 3.14", "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", diff --git a/tox.ini b/tox.ini index 6b42c50..c4a77e8 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = - py{38,39,310,311,312} - py310-pg{12,13,14,15} + py{39,310,311,312,313,314} + py312-pg{13,14,15,16,17,18} vector psycopg28 [testenv] @@ -16,16 +16,20 @@ setenv = POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres [testenv:python2.7] -[testenv:py310-pg12] -docker = pg12 -[testenv:py310-pg13] +[testenv:py312-pg13] docker = pg13 -[testenv:py310-pg14] +[testenv:py312-pg14] docker = pg14 -[testenv:py310-pg15] +[testenv:py312-pg15] docker = pg15 +[testenv:py312-pg16] +docker = pg16 +[testenv:py312-pg17] +docker = pg17 +[testenv:py312-pg18] +docker = pg18 [testenv:vector] -base_python = python3.10 +base_python = python3.12 docker = pgvector commands = pytest tests/test_contrib.py -vk Vector [testenv:coverage] @@ -37,13 +41,13 @@ commands = pytest --cov-report=term --cov-report=lcov:coverage.lcov --cov=pgcopy/ tests/ docker = pgvector [testenv:psycopg28] -base_python = python3.10 +base_python = python3.9 deps = pytest psycopg2==2.8.* docker = pg14 -[docker:pg12] -image = postgres:12 +[docker:pg13] +image = postgres:13 environment= POSTGRES_HOST_AUTH_METHOD=trust healthcheck_cmd = psql --user=postgres \ @@ -53,8 +57,8 @@ healthcheck_timeout = 1 healthcheck_retries = 30 healthcheck_interval = 1 healthcheck_start_period = 1 -[docker:pg13] -image = postgres:13 +[docker:pg14] +image = postgres:14 environment= POSTGRES_HOST_AUTH_METHOD=trust healthcheck_cmd = psql --user=postgres \ @@ -64,8 +68,8 @@ healthcheck_timeout = 1 healthcheck_retries = 30 healthcheck_interval = 1 healthcheck_start_period = 1 -[docker:pg14] -image = postgres:14 +[docker:pg15] +image = postgres:15 environment= POSTGRES_HOST_AUTH_METHOD=trust healthcheck_cmd = psql --user=postgres \ @@ -75,8 +79,8 @@ healthcheck_timeout = 1 healthcheck_retries = 30 healthcheck_interval = 1 healthcheck_start_period = 1 -[docker:pg15] -image = postgres:15 +[docker:pg16] +image = postgres:16 environment= POSTGRES_HOST_AUTH_METHOD=trust healthcheck_cmd = psql --user=postgres \ @@ -86,8 +90,19 @@ healthcheck_timeout = 1 healthcheck_retries = 30 healthcheck_interval = 1 healthcheck_start_period = 1 -[docker:pg16] -image = postgres:16 +[docker:pg17] +image = postgres:17 +environment= + POSTGRES_HOST_AUTH_METHOD=trust +healthcheck_cmd = psql --user=postgres \ + --host=127.0.0.1 --quiet --no-align --tuples-only \ + -1 --command="SELECT 1" +healthcheck_timeout = 1 +healthcheck_retries = 30 +healthcheck_interval = 1 +healthcheck_start_period = 1 +[docker:pg18] +image = postgres:18 environment= POSTGRES_HOST_AUTH_METHOD=trust healthcheck_cmd = psql --user=postgres \