From d31c30b8687ea0ed2b59b80ae0d90a08909ba399 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Thu, 11 Sep 2025 22:50:49 +0900 Subject: [PATCH] Drop Python 3.9 support It was removed from tested runtimes in 2025.2 . It has been kept for one cycle for smooth transition of the other projects, but it's time to bump the enforced minimum requirement. Also add Python 3.13 which has been tested for some time. Change-Id: I4cb57de3677c90c2c901f5825dc162d9069795ec Signed-off-by: Takashi Kajinami --- .zuul.yaml | 96 +++++++++---------- .../notes/remove-py39-65e562686f829059.yaml | 5 + setup.cfg | 4 +- tox.ini | 2 +- 4 files changed, 56 insertions(+), 51 deletions(-) create mode 100644 releasenotes/notes/remove-py39-65e562686f829059.yaml diff --git a/.zuul.yaml b/.zuul.yaml index acc3b33c..aa4e6071 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -9,108 +9,108 @@ - release-notes-jobs-python3 check: jobs: - - tooz-tox-py39-etcd3gw + - tooz-tox-py310-etcd3gw - tooz-tox-py312-etcd3gw - - tooz-tox-py39-zookeeper + - tooz-tox-py310-zookeeper - tooz-tox-py312-zookeeper - - tooz-tox-py39-redis + - tooz-tox-py310-redis - tooz-tox-py312-redis - - tooz-tox-py39-sentinel + - tooz-tox-py310-sentinel - tooz-tox-py312-sentinel - - tooz-tox-py39-memcached + - tooz-tox-py310-memcached - tooz-tox-py312-memcached - - tooz-tox-py39-postgresql + - tooz-tox-py310-postgresql - tooz-tox-py312-postgresql - - tooz-tox-py39-mysql + - tooz-tox-py310-mysql - tooz-tox-py312-mysql - - tooz-tox-py39-consul + - tooz-tox-py310-consul - tooz-tox-py312-consul gate: jobs: - - tooz-tox-py39-etcd3gw + - tooz-tox-py310-etcd3gw - tooz-tox-py312-etcd3gw - - tooz-tox-py39-zookeeper + - tooz-tox-py310-zookeeper - tooz-tox-py312-zookeeper - - tooz-tox-py39-redis + - tooz-tox-py310-redis - tooz-tox-py312-redis - - tooz-tox-py39-sentinel + - tooz-tox-py310-sentinel - tooz-tox-py312-sentinel - - tooz-tox-py39-memcached + - tooz-tox-py310-memcached - tooz-tox-py312-memcached - - tooz-tox-py39-postgresql + - tooz-tox-py310-postgresql - tooz-tox-py312-postgresql - - tooz-tox-py39-mysql + - tooz-tox-py310-mysql - tooz-tox-py312-mysql - - tooz-tox-py39-consul + - tooz-tox-py310-consul - tooz-tox-py312-consul - job: - name: tooz-tox-py39-consul - parent: openstack-tox-py39 + name: tooz-tox-py310-consul + parent: openstack-tox-py310 description: | - Run tests using ``py39-consul`` environment. + Run tests using ``py310-consul`` environment. vars: - tox_envlist: py39-consul + tox_envlist: py310-consul - job: - name: tooz-tox-py39-etcd3gw - parent: openstack-tox-py39 + name: tooz-tox-py310-etcd3gw + parent: openstack-tox-py310 description: | - Run tests using ``py39-etcd3gw`` environment. + Run tests using ``py310-etcd3gw`` environment. vars: - tox_envlist: py39-etcd3gw + tox_envlist: py310-etcd3gw - job: - name: tooz-tox-py39-memcached - parent: openstack-tox-py39 + name: tooz-tox-py310-memcached + parent: openstack-tox-py310 description: | - Run tests using ``py39-memcached`` environment. + Run tests using ``py310-memcached`` environment. vars: - tox_envlist: py39-memcached + tox_envlist: py310-memcached - job: - name: tooz-tox-py39-mysql - parent: openstack-tox-py39 + name: tooz-tox-py310-mysql + parent: openstack-tox-py310 description: | - Run tests using ``py39-mysql`` environment. + Run tests using ``py310-mysql`` environment. vars: - tox_envlist: py39-mysql + tox_envlist: py310-mysql - job: - name: tooz-tox-py39-postgresql - parent: openstack-tox-py39 + name: tooz-tox-py310-postgresql + parent: openstack-tox-py310 description: | - Run tests using ``py39-postgresql`` environment. + Run tests using ``py310-postgresql`` environment. vars: - tox_envlist: py39-postgresql + tox_envlist: py310-postgresql - job: - name: tooz-tox-py39-redis - parent: openstack-tox-py39 + name: tooz-tox-py310-redis + parent: openstack-tox-py310 description: | - Run tests using ``py39-redis`` environment. + Run tests using ``py310-redis`` environment. vars: - tox_envlist: py39-redis + tox_envlist: py310-redis pre-run: - playbooks/stop-redis.yaml - job: - name: tooz-tox-py39-sentinel - parent: openstack-tox-py39 + name: tooz-tox-py310-sentinel + parent: openstack-tox-py310 description: | - Run tests using ``py39-sentinel`` environment. + Run tests using ``py310-sentinel`` environment. vars: - tox_envlist: py39-sentinel + tox_envlist: py310-sentinel pre-run: - playbooks/stop-redis.yaml - job: - name: tooz-tox-py39-zookeeper - parent: openstack-tox-py39 + name: tooz-tox-py310-zookeeper + parent: openstack-tox-py310 description: | - Run tests using ``py39-zookeeper`` environment. + Run tests using ``py310-zookeeper`` environment. vars: - tox_envlist: py39-zookeeper + tox_envlist: py310-zookeeper - job: name: tooz-tox-py312-consul diff --git a/releasenotes/notes/remove-py39-65e562686f829059.yaml b/releasenotes/notes/remove-py39-65e562686f829059.yaml new file mode 100644 index 00000000..7f1c918b --- /dev/null +++ b/releasenotes/notes/remove-py39-65e562686f829059.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Support for Python 3.9 has been removed. Now the minimum python version + supported is 3.10. diff --git a/setup.cfg b/setup.cfg index 13a74813..2bffa7de 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,7 +6,7 @@ summary = Coordination library for distributed systems. description_file = README.rst license = Apache-2 home_page = https://docs.openstack.org/tooz/latest/ -python_requires = >=3.9 +python_requires = >=3.10 classifier = Environment :: OpenStack Intended Audience :: Developers @@ -15,10 +15,10 @@ classifier = Operating System :: POSIX :: Linux Programming Language :: Python 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 Programming Language :: Python :: 3 :: Only Programming Language :: Python :: Implementation :: CPython Topic :: System :: Distributed Computing diff --git a/tox.ini b/tox.ini index 3030d7d2..5b9abe97 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 3.18.0 -envlist = py3,py{39,312}-{zookeeper,redis,sentinel,memcached,postgresql,mysql,consul,etcd,etcd3gw,kubernetes},pep8 +envlist = py3,py{310,312}-{zookeeper,redis,sentinel,memcached,postgresql,mysql,consul,etcd,etcd3gw,kubernetes},pep8 [testenv] deps =