diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ef8ff23..e4ec10eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,7 +59,7 @@ jobs: strategy: max-parallel: 5 matrix: - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - id: checkout-code diff --git a/README.rst b/README.rst index 4f7fa941..a93608c5 100644 --- a/README.rst +++ b/README.rst @@ -81,7 +81,7 @@ Requirements ============ PGHoard can backup and restore PostgreSQL versions 9.6 and above, but is -only tested and actively developed with version 10 and above. +only tested and actively developed with version 12 and above. The daemon is implemented in Python and is tested and developed with version 3.8 and above. The following Python modules are required: @@ -128,12 +128,12 @@ Vagrant ======= The Vagrantfile can be used to setup a vagrant development environment. The vagrant environment has -python 3.8, 3.9 and 3.10 virtual environments and installations of postgresql 10, 11 and 12, 13 and 14. +python 3.8, 3.9, 3.10, 3.11 and 3.12 virtual environments and installations of postgresql 12, 13, 14, 15 and 16. By default vagrant up will start a Virtualbox environment. The Vagrantfile will also work for libvirt, just prefix ``VAGRANT_DEFAULT_PROVIDER=libvirt`` to the ``vagrant up`` command. -Any combination of Python (3.8, 3.9 and 3.10) and Postgresql (10, 11, 12, 13 and 14) +Any combination of Python (3.8, 3.9, 3.10, 3.11 and 3.12) and Postgresql (12, 13, 14, 15 and 16) Bring up vagrant instance and connect via ssh:: @@ -141,22 +141,22 @@ Bring up vagrant instance and connect via ssh:: vagrant ssh vagrant@ubuntu2004:~$ cd /vagrant -Test with Python 3.8 and Postgresql 11:: +Test with Python 3.8 and Postgresql 12:: vagrant@ubuntu2004:~$ source ~/venv3.8/bin/activate - vagrant@ubuntu2004:~$ PG_VERSION=11 make unittest + vagrant@ubuntu2004:~$ PG_VERSION=12 make unittest vagrant@ubuntu2004:~$ deactivate -Test with Python 3.9 and Postgresql 12:: +Test with Python 3.9 and Postgresql 13:: vagrant@ubuntu2004:~$ source ~/venv3.9/bin/activate - vagrant@ubuntu2004:~$ PG_VERSION=12 make unittest + vagrant@ubuntu2004:~$ PG_VERSION=13 make unittest vagrant@ubuntu2004:~$ deactivate -Test with Python 3.10 and Postgresql 13:: +Test with Python 3.10 and Postgresql 14:: vagrant@ubuntu2004:~$ source ~/venv3.10/bin/activate - vagrant@ubuntu2004:~$ PG_VERSION=13 make unittest + vagrant@ubuntu2004:~$ PG_VERSION=14 make unittest vagrant@ubuntu2004:~$ deactivate And so on diff --git a/Vagrantfile b/Vagrantfile index 010fbfe2..5d2602b2 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -38,8 +38,8 @@ Vagrant.configure("2") do |config| sed -i "s/^#start_conf.*/start_conf='manual'/g" /etc/postgresql-common/createcluster.conf sed -i "s/^#create_main_cluster.*/create_main_cluster=false/g" /etc/postgresql-common/createcluster.conf - apt-get install -y python{3.8,3.9,3.10} python{3.8,3.9,3.10}-dev python{3.8,3.9,3.10}-venv - apt-get install -y postgresql-{11,12,13,14,15,16} postgresql-server-dev-{11,12,13,14,15,16} + apt-get install -y python{3.8,3.9,3.10,3.11,3.12} python{3.8,3.9,3.10,3.11,3.12}-dev python{3.8,3.9,3.10,3.11,3.12}-venv + apt-get install -y postgresql-{11,12,13,14,15,16} postgresql-server-dev-{12,13,14,15,16} username="$(< /dev/urandom tr -dc a-z | head -c${1:-32};echo;)" password=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;) @@ -68,7 +68,7 @@ Vagrant.configure("2") do |config| config.vm.provision "shell", inline: $script, privileged: true $script = <<-SCRIPT - versions=(3.8 3.9 3.10) + versions=(3.8 3.9 3.10 3.11 3.12) for version in "${versions[@]}"; do python${version} -m venv venv${version} source ~/venv${version}/bin/activate diff --git a/docs/development.rst b/docs/development.rst index 01f6b286..d5dfbcc3 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -54,12 +54,12 @@ Vagrant ======= The Vagrantfile can be used to setup a vagrant development environment. The vagrant environment has -python 3.8, 3.9 and 3.10 virtual environments and installations of postgresql 10, 11 and 12, 13 and 14. +python 3.8, 3.9, 3.10, 3.11 and 3.12 virtual environments and installations of postgresql 12, 13, 14, 15 and 16. By default vagrant up will start a Virtualbox environment. The Vagrantfile will also work for libvirt, just prefix ``VAGRANT_DEFAULT_PROVIDER=libvirt`` to the ``vagrant up`` command. -Any combination of Python (3.8, 3.9 and 3.10) and Postgresql (10, 11, 12, 13 and 14) +Any combination of Python (3.8, 3.9, 3.10, 3.11 and 3.12) and Postgresql (12, 13, 14, 15 and 16) Bring up vagrant instance and connect via ssh:: @@ -67,22 +67,22 @@ Bring up vagrant instance and connect via ssh:: vagrant ssh vagrant@ubuntu2004:~$ cd /vagrant -Test with Python 3.8 and Postgresql 11:: +Test with Python 3.8 and Postgresql 12:: vagrant@ubuntu2004:~$ source ~/venv3.8/bin/activate - vagrant@ubuntu2004:~$ PG_VERSION=11 make unittest + vagrant@ubuntu2004:~$ PG_VERSION=12 make unittest vagrant@ubuntu2004:~$ deactivate -Test with Python 3.9 and Postgresql 12:: +Test with Python 3.9 and Postgresql 13:: vagrant@ubuntu2004:~$ source ~/venv3.9/bin/activate - vagrant@ubuntu2004:~$ PG_VERSION=12 make unittest + vagrant@ubuntu2004:~$ PG_VERSION=13 make unittest vagrant@ubuntu2004:~$ deactivate -Test with Python 3.10 and Postgresql 13:: +Test with Python 3.10 and Postgresql 14:: vagrant@ubuntu2004:~$ source ~/venv3.10/bin/activate - vagrant@ubuntu2004:~$ PG_VERSION=13 make unittest + vagrant@ubuntu2004:~$ PG_VERSION=14 make unittest vagrant@ubuntu2004:~$ deactivate And so on diff --git a/pyproject.toml b/pyproject.toml index 42016393..4a13f7f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ classifiers=[ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Database :: Database Engines/Servers", "Topic :: Software Development :: Libraries", ] diff --git a/test/conftest.py b/test/conftest.py index dffd51a0..e4da1d11 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -35,7 +35,7 @@ logutil.configure_logging() -DEFAULT_PG_VERSIONS = ["16", "15", "14", "13", "12", "11", "10"] +DEFAULT_PG_VERSIONS = ["16", "15", "14", "13", "12"] def port_is_listening(hostname: str, port: int, timeout: float = 0.5) -> bool: