We are excited to announce the release of: oslo.service 4.4.0 This release is part of the gazpacho release series. The source is available from: https://opendev.org/openstack/oslo.service Download the package from: https://pypi.org/project/oslo.service Please report issues through: https://bugs.launchpad.net/oslo.service/+bugs For more details, please see below. 4.4.0 ^^^^^ Upgrade Notes * Support for Python 3.9 has been removed. Now the minimum python version supported is 3.10. * The "oslo.service.wsgi.Server" class now includes backend compatibility checks to prevent improper usage with the threading backend. Applications using the threading backend that attempt to instantiate the WSGI Server will now receive an immediate "UnsupportedBackendError" exception with a clear error message. This is an intentional breaking change to prevent potential runtime issues and security concerns that could arise from using a component designed for eventlet in a threading environment. The fail-fast behavior ensures that applications using the threading backend are guided towards the correct deployment patterns. **Migration Path**: Users should migrate to deploying their WSGI applications using standard WSGI servers such as "uwsgi", "gunicorn", or similar alternatives instead of relying on the deprecated oslo.service WSGI server. Changes in oslo.service 4.3.0..4.4.0 ------------------------------------ 09758e9 trivial: Avoid use of kwargs 1ba9201 Synch Service.launch() signature 8d87c06 reno: Update master for unmaintained/2024.1 8c74d07 Extract shared logic between eventlet and threading backends 3ba0a3d Bump pyupgrade target to 3.10+ 359164c Migrate bandit options to pyproject.toml 5570254 Fix incomplete Launcher in threading backend cbd59dd Fix ignored restart_method in threading backend 0dfdf81 Fix wrong mapping in threading backend 427d6ca Add license note to optional dependencies 79a5230 pre-commit: Bump dependencies 0d63eb2 Migrate setup configuration to pyproject.toml 964342e Drop Python 3.9 support bc6f1a4 Update master for stable/2025.2 40b818b Prevent WSGI Server usage with threading backend 9a1594e Update backend documentation with get_backend() and hook behavior Diffstat (except docs and test files) ------------------------------------- .pre-commit-config.yaml | 20 +- oslo_service/backend/__init__.py | 2 +- oslo_service/backend/_common/loopingcall.py | 427 ++++++++++++++++++++ oslo_service/backend/_common/threadgroup.py | 274 +++++++++++++ oslo_service/backend/_eventlet/loopingcall.py | 425 ++------------------ oslo_service/backend/_eventlet/service.py | 64 +-- oslo_service/backend/_eventlet/threadgroup.py | 330 +++------------- oslo_service/backend/_threading/__init__.py | 4 +- oslo_service/backend/_threading/loopingcall.py | 435 +++++---------------- oslo_service/backend/_threading/service.py | 85 +++- oslo_service/backend/_threading/threadgroup.py | 198 +++------- oslo_service/backend/exceptions.py | 14 + oslo_service/eventlet_backdoor.py | 4 +- oslo_service/systemd.py | 2 +- oslo_service/wsgi.py | 21 + pyproject.toml | 47 +++ .../notes/remove-py39-5a197df0a0f9b551.yaml | 5 + ...eading-backend-protection-a8f3d2e19b5c7f84.yaml | 19 + releasenotes/source/2024.1.rst | 2 +- releasenotes/source/2025.2.rst | 6 + releasenotes/source/index.rst | 1 + setup.cfg | 40 -- test-requirements.txt | 4 +- 28 files changed, 1560 insertions(+), 1263 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 3617947..2e8bc2b 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7,2 +7,2 @@ coverage>=4.0 # Apache-2.0 -cotyledon>=2.0.0 -futurist>=3.1.1 +cotyledon>=2.0.0 # Apache-2.0 +futurist>=3.1.1 # Apache-2.0