# SOME DESCRIPTIVE TITLE. # Copyright (C) 2016, oslo.service Developers # This file is distributed under the same license as the oslo.service Release Notes package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: oslo.service Release Notes \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-11-04 16:06+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../:28 msgid "" "**If your project was** directly importing any of these modules, please " "update the imports to use the public API instead." msgstr "" #: ../../:31 current msgid "" "**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." msgstr "" #: ../../:21 unmaintained/2023.1>:172 #: unmaintained/2024.1>:190 unmaintained/victoria>:155 #: unmaintained/wallaby>:155 unmaintained/xena>:172 unmaintained/zed>:172 msgid "1.17.0" msgstr "" #: ../../:5 stable/pike>:5 #: unmaintained/2023.1>:156 unmaintained/2024.1>:174 unmaintained/victoria>:139 #: unmaintained/wallaby>:139 unmaintained/xena>:156 unmaintained/zed>:156 msgid "1.19.0" msgstr "" #: ../../:21 unmaintained/2023.1>:112 #: unmaintained/2024.1>:130 unmaintained/victoria>:95 unmaintained/wallaby>:95 #: unmaintained/xena>:112 unmaintained/zed>:112 msgid "1.35.0" msgstr "" #: ../../:5 unmaintained/2023.1>:96 #: unmaintained/2024.1>:114 unmaintained/victoria>:79 unmaintained/wallaby>:79 #: unmaintained/xena>:96 unmaintained/zed>:96 msgid "1.37.0" msgstr "" #: ../../:26 unmaintained/2023.1>:77 #: unmaintained/2024.1>:95 unmaintained/victoria>:60 unmaintained/wallaby>:60 #: unmaintained/xena>:77 unmaintained/zed>:77 msgid "1.40.0" msgstr "" #: ../../:5 stable/ussuri>:21 #: unmaintained/2023.1>:56 unmaintained/2024.1>:74 unmaintained/victoria>:39 #: unmaintained/wallaby>:39 unmaintained/xena>:56 unmaintained/zed>:56 msgid "1.40.2" msgstr "" #: ../../:5 unmaintained/2023.1>:40 #: unmaintained/2024.1>:58 unmaintained/victoria>:23 unmaintained/wallaby>:23 #: unmaintained/xena>:40 unmaintained/zed>:40 msgid "2.0.0" msgstr "" #: ../../:5 msgid "2.4.1" msgstr "" #: ../../:5 msgid "2.5.1" msgstr "" #: ../../:22 msgid "2.6.1" msgstr "" #: ../../:5 msgid "2.6.2" msgstr "" #: ../../:23 unmaintained/2024.1>:41 #: unmaintained/zed>:23 msgid "2.7.0" msgstr "" #: ../../:5 unmaintained/2024.1>:23 #: unmaintained/yoga>:5 unmaintained/zed>:5 msgid "2.8.0" msgstr "" #: ../../:5 msgid "3.3.0" msgstr "" #: ../../:88 msgid "3.6.0" msgstr "" #: ../../:68 msgid "4.0.0" msgstr "" #: ../../:22 msgid "4.1.0" msgstr "" #: ../../:5 msgid "4.1.1-3" msgstr "" #: ../../:83 msgid "4.2.0" msgstr "" #: ../../:52 msgid "4.2.1" msgstr "" #: ../../:35 msgid "4.2.2" msgstr "" #: ../../:5 msgid "4.3.0" msgstr "" #: ../../:5 current msgid "4.3.0-14" msgstr "" #: ../../:101 msgid "A native `SignalHandler` implementation using standard Python signals" msgstr "" #: ../../:99 msgid "" "A new `ThreadGroup` and `Thread` abstraction to mimic `eventlet`-like " "behavior" msgstr "" #: ../../:114 msgid "" "A new `register_backend_default_hook()` API has been added. It allows users " "to define a fallback backend type in case `init_backend()` was not called " "early enough. This is helpful in environments where import order or " "initialization timing cannot be guaranteed." msgstr "" #: ../../:31 msgid "" "A new backend system has been introduced to modularize and improve the " "flexibility of the service implementation. This system allows developers to " "choose or implement alternative backends." msgstr "" #: ../../:14 unmaintained/2024.1>:32 #: unmaintained/victoria>:14 unmaintained/wallaby>:14 unmaintained/xena>:31 #: unmaintained/yoga>:14 unmaintained/zed>:14 msgid "" "A new config options, ``[DEFAULT] wsgi_server_debug``, has been added. This " "allows admins to configure whether the server should send exception " "tracebacks to the clients on HTTP 500 errors. This defaults to ``False``, " "preserving previous behavior." msgstr "" #: ../../:14 stable/pike>:14 #: unmaintained/2023.1>:165 unmaintained/2024.1>:183 unmaintained/victoria>:148 #: unmaintained/wallaby>:148 unmaintained/xena>:165 unmaintained/zed>:165 msgid "" "Add a new type of looping call: FixedIntervalWithTimeoutLoopingCall. It is a " "FixedIntervalLoopingCall with timeout checking." msgstr "" #: ../../:14 unmaintained/2023.1>:105 #: unmaintained/2024.1>:123 unmaintained/victoria>:88 unmaintained/wallaby>:88 #: unmaintained/xena>:105 unmaintained/zed>:105 msgid "" "Add support for profiling (capture function calltrace) service's worker " "processes." msgstr "" #: ../../:92 msgid "" "Added a new `threading` backend to `oslo.service`, using standard Python " "threads instead of `eventlet`. This includes a full implementation of:" msgstr "" #: ../../:107 msgid "Additionally:" msgstr "" #: ../../:57 stable/train>:10 stable/ussuri>:26 #: unmaintained/2023.1>:28 unmaintained/2023.1>:61 unmaintained/2024.1>:10 #: unmaintained/2024.1>:46 unmaintained/2024.1>:79 unmaintained/victoria>:44 #: unmaintained/wallaby>:44 unmaintained/xena>:10 unmaintained/xena>:61 #: unmaintained/zed>:28 unmaintained/zed>:61 msgid "Bug Fixes" msgstr "" #: ../../:35 msgid "" "By default, the ``eventlet`` backend is used, preserving the previous " "behavior. The backend is dynamically loaded through the new backend " "mechanism." msgstr "" #: ../../:43 stable/stein>:45 #: unmaintained/2023.1>:136 unmaintained/2024.1>:154 unmaintained/victoria>:119 #: unmaintained/wallaby>:119 unmaintained/xena>:136 unmaintained/zed>:136 msgid "Deprecation Notes" msgstr "" #: ../../:145 msgid "" "Ensure that no threads are started before `oslo.service` forks the workers." msgstr "" #: ../../:119 msgid "Example:" msgstr "" #: ../../:147 msgid "" "Explicitly manage thread lifecycle — for example, stop all threads before " "forking, as currently done in Nova." msgstr "" #: ../../:32 unmaintained/2024.1>:50 #: unmaintained/xena>:14 unmaintained/zed>:32 msgid "" "Fix the backdoor helper method fo() to also work when there are objects " "present in the current python instance that do not have a __class__ " "attribute." msgstr "" #: ../../:73 msgid "" "Fixed a crash that occurred during service shutdown in the threading " "backend, caused by an incorrect call to the non-existent internal method " "``_terminate()`` on ``cotyledon.ServiceManager``. The shutdown process now " "correctly uses the public ``shutdown()`` method, ensuring graceful and " "reliable termination of services." msgstr "" #: ../../:164 msgid "" "In the long term, process scaling should be handled externally (e.g. via " "Kubernetes or systemd), rather than by the service itself." msgstr "" #: ../../:14 msgid "" "Internal backend modules have been renamed to **explicitly indicate that " "they are** private:" msgstr "" #: ../../:132 msgid "Known Issues" msgstr "" #: ../../:10 stable/2025.1>:27 #: stable/2025.2>:88 stable/pike>:10 stable/stein>:10 stable/stein>:26 #: stable/train>:31 unmaintained/2023.1>:10 unmaintained/2023.1>:82 #: unmaintained/2023.1>:101 unmaintained/2023.1>:117 unmaintained/2023.1>:161 #: unmaintained/2024.1>:28 unmaintained/2024.1>:100 unmaintained/2024.1>:119 #: unmaintained/2024.1>:135 unmaintained/2024.1>:179 unmaintained/victoria>:10 #: unmaintained/victoria>:65 unmaintained/victoria>:84 #: unmaintained/victoria>:100 unmaintained/victoria>:144 #: unmaintained/wallaby>:10 unmaintained/wallaby>:65 unmaintained/wallaby>:84 #: unmaintained/wallaby>:100 unmaintained/wallaby>:144 unmaintained/xena>:27 #: unmaintained/xena>:82 unmaintained/xena>:101 unmaintained/xena>:117 #: unmaintained/xena>:161 unmaintained/yoga>:10 unmaintained/zed>:10 #: unmaintained/zed>:82 unmaintained/zed>:101 unmaintained/zed>:117 #: unmaintained/zed>:161 msgid "New Features" msgstr "" #: ../../:26 unmaintained/2023.1>:177 #: unmaintained/2024.1>:195 unmaintained/victoria>:160 #: unmaintained/wallaby>:160 unmaintained/xena>:177 unmaintained/zed>:177 msgid "Other Notes" msgstr "" #: ../../:141 msgid "" "See: https://gibizer.github.io/posts/Eventlet-Removal-The-First-Threading-" "Bug/#threads--osfork--confused-threadpools" msgstr "" #: ../../:14 unmaintained/2023.1>:49 #: unmaintained/2024.1>:67 unmaintained/victoria>:32 unmaintained/wallaby>:32 #: unmaintained/xena>:49 unmaintained/zed>:49 msgid "" "Support for Python 2.7 has been dropped. The minimum version of Python now " "supported is Python 3.6." msgstr "" #: ../../:97 msgid "" "Support for Python 3.8 has been removed. Now the minimum python version " "supported is 3.9 ." msgstr "" #: ../../:14 current msgid "" "Support for Python 3.9 has been removed. Now the minimum python version " "supported is 3.10." msgstr "" #: ../../:30 unmaintained/2023.1>:181 #: unmaintained/2024.1>:199 unmaintained/victoria>:164 #: unmaintained/wallaby>:164 unmaintained/xena>:181 unmaintained/zed>:181 msgid "Switch to reno for managing release notes." msgstr "" #: ../../:54 unmaintained/2023.1>:145 #: unmaintained/2024.1>:163 unmaintained/victoria>:128 #: unmaintained/wallaby>:128 unmaintained/xena>:145 unmaintained/zed>:145 msgid "" "The API of the ThreadGroup add_timer() and add_dynamic_timer() methods has " "been identified as error-prone when passing arguments intended for the " "callback function. Passing callback arguments in this way is now deprecated. " "Callers should use the new add_timer_args() or add_dynamic_timer_args() " "methods (respectively) instead when it is necessary to pass arguments to the " "timer callback function." msgstr "" #: ../../:37 unmaintained/2023.1>:128 #: unmaintained/2024.1>:146 unmaintained/victoria>:111 #: unmaintained/wallaby>:111 unmaintained/xena>:128 unmaintained/zed>:128 msgid "" "The ThreadGroup add_timer_args() and add_dynamic_timer_args() methods now " "support passing a stop_on_exception=False argument to allow the timer to " "keep running even when an exception is raised by the callback function." msgstr "" #: ../../:30 unmaintained/2023.1>:121 #: unmaintained/2024.1>:139 unmaintained/victoria>:104 #: unmaintained/wallaby>:104 unmaintained/xena>:121 unmaintained/zed>:121 msgid "" "The ThreadGroup class has new add_timer_args() and add_dynamic_timer_args() " "methods to create timers passing the positional and keyword arguments to the " "callback as a sequence and a mapping. This API provides more flexibility for " "the addition of timer control options in the future." msgstr "" #: ../../:49 unmaintained/2023.1>:140 #: unmaintained/2024.1>:158 unmaintained/victoria>:123 #: unmaintained/wallaby>:123 unmaintained/xena>:140 unmaintained/zed>:140 msgid "" "The ``ThreadGroup.cancel()`` method is deprecated and will be removed in a " "future major release." msgstr "" #: ../../:19 current msgid "" "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." msgstr "" #: ../../:14 stable/2025.2>:44 msgid "" "The ``oslo_service.wsgi`` module has been undeprecated. It contains many " "utilities besides the eventlet-based ``Server`` class. Instead, only the " "``Server`` class itself is now deprecated." msgstr "" #: ../../:61 msgid "" "The ``threading`` backend now accepts the ``wait_interval`` argument in " "``ProcessLauncher`` for compatibility with services like Neutron. The " "parameter is still used in the ``eventlet`` backend to reduce CPU usage " "during child monitoring loops, but has no effect in ``threading``. A warning " "is logged if it is passed. In addition, multiple calls to " "``launch_service()`` on the same ``ProcessLauncher`` instance are now " "supported, using a single ``ServiceManager`` internally. This makes the " "threading backend fully compatible with how the ``eventlet`` backend behaves." msgstr "" #: ../../:35 unmaintained/2023.1>:86 #: unmaintained/2024.1>:104 unmaintained/victoria>:69 unmaintained/wallaby>:69 #: unmaintained/xena>:86 unmaintained/zed>:86 msgid "" "The config option backdoor_socket_path now is a format string that supports " "{pid}, which will be replaced with the PID of the current process. This " "makes the eventlet backdoor accessible when spawning multiple processes with " "the same backdoor_socket_path inside the configuration." msgstr "" #: ../../:77 msgid "" "The following deprecated options have been removed. Use the ``[ssl]`` " "options instead." msgstr "" #: ../../:47 msgid "" "The following modules are now deprecated and will be removed in a future " "release:" msgstr "" #: ../../:21 msgid "" "These modules were never intended to be used directly. **This change makes " "it clearer** that they are internal to ``oslo_service.backend``. Projects " "should only interact with the backend system via the public interface " "provided in ``oslo_service.backend.__init__``—**specifically through " "functions like** ``get_component()``, ``get_backend()``, and " "``init_backend()``." msgstr "" #: ../../:103 msgid "" "This backend provides a standard-thread-compatible alternative that avoids " "monkey-patching, making it suitable for environments where `eventlet` is " "problematic or undesirable." msgstr "" #: ../../:126 msgid "" "This hook will only be used if `init_backend()` has not already been called." msgstr "" #: ../../:25 current msgid "" "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." msgstr "" #: ../../:143 msgid "To avoid this issue, you can:" msgstr "" #: ../../:10 current stable/2025.1>:10 stable/2025.1>:73 #: stable/2025.1>:93 stable/2025.2>:10 stable/2025.2>:40 stable/2025.2>:154 #: stable/ussuri>:10 unmaintained/2023.1>:45 unmaintained/2024.1>:63 #: unmaintained/victoria>:28 unmaintained/wallaby>:28 unmaintained/xena>:45 #: unmaintained/zed>:45 msgid "Upgrade Notes" msgstr "" #: ../../:146 msgid "Use `ProcessLauncher(no_fork=True)` to disable forking entirely." msgstr "" #: ../../:62 msgid "" "Users should remove any dependencies on these modules as soon as possible." msgstr "" #: ../../:136 msgid "" "When using the `threading` backend with multiple workers (i.e. " "`ProcessLauncher` with `fork()`), **starting threads before the fork occurs " "can lead to corrupted state** due to how `os.fork()` behaves in multi-" "threaded processes. This is a known limitation in Python." msgstr "" #: ../../:158 msgid "" "While Python 3.14 defaults to ``spawn`` as the multiprocessing start method, " "`oslo.service` continues to rely on ``fork`` as the only supported method " "for creating worker processes. Many parts of OpenStack depend on objects " "that cannot be safely pickled (e.g. argparse parsers, thread locks, lambdas " "in config defaults), which makes ``spawn`` currently impractical." msgstr "" #: ../../:14 msgid "" "`Bug #1983949 `_: " "Fixed eventlet native threads tpool on child process when parent process has " "used them before launching the service." msgstr "" #: ../../:97 msgid "" "`LoopingCall` variants (`FixedIntervalLoopingCall`, `DynamicLoopingCall`, " "etc.) using `futurist.ThreadPoolExecutor`" msgstr "" #: ../../:109 msgid "" "`ProcessLauncher` now supports a `no_fork=True` mode, allowing services to " "run in the main process without forking. This is useful when `fork()` is " "unsafe — for example, in threaded environments or with Python 3.12+ where " "the default multiprocessing start method has changed to `spawn`." msgstr "" #: ../../:95 msgid "" "`Service`, `Launcher`, `ServiceLauncher`, and `ProcessLauncher` using " "`cotyledon`" msgstr "" #: ../../:14 stable/ussuri>:30 #: unmaintained/2023.1>:65 unmaintained/2024.1>:83 unmaintained/victoria>:48 #: unmaintained/wallaby>:48 unmaintained/xena>:65 unmaintained/zed>:65 msgid "" "``SIGHUP`` is now handled properly with ``restart_method='mutate'``, no " "longer restarting child processes. See `bug 1794708`_ for details. In " "conjunction with the fix for `bug 1715374`_ in oslo.privsep, the nova-" "compute service now behaves correctly when it receives ``SIGHUP``." msgstr "" #: ../../:80 msgid "``[DEFAULT] ssl_ca_file``" msgstr "" #: ../../:81 msgid "``[DEFAULT] ssl_cert_file``" msgstr "" #: ../../:82 msgid "``[DEFAULT] ssl_key_file``" msgstr "" #: ../../:121 msgid "" "```python from oslo_service import backend backend." "register_backend_default_hook(lambda: backend.BackendType.THREADING) ```" msgstr "" #: ../../:17 msgid "``oslo_service.backend.common`` → ``oslo_service.backend._common``" msgstr "" #: ../../:19 msgid "``oslo_service.backend.eventlet`` → ``oslo_service.backend._eventlet``" msgstr "" #: ../../:18 msgid "" "``oslo_service.backend.threading`` → ``oslo_service.backend._threading``" msgstr "" #: ../../:53 msgid "" "``oslo_service.eventlet_backdoor``: This module has been deprecated and will " "be removed in version ``2026.2.`` It is no longer maintained." msgstr "" #: ../../:56 msgid "" "``oslo_service.fixtures``: This module has been deprecated and will be " "removed in version ``2026.2``. It is no longer maintained." msgstr "" #: ../../:59 msgid "" "``oslo_service.sslutils``: This module has been deprecated and will be " "removed in version ``2026.2``. It is no longer maintained." msgstr "" #: ../../:50 msgid "" "``oslo_service.wsgi``: Users are advised to migrate to ``uwsgi`` for serving " "WSGI applications." msgstr "" #: ../source/2023.1.rst:3 msgid "2023.1 Series Release Notes" msgstr "" #: ../source/2023.2.rst:3 msgid "2023.2 Series Release Notes" msgstr "" #: ../source/2024.1.rst:3 msgid "2024.1 Series Release Notes" msgstr "" #: ../source/2024.2.rst:3 msgid "2024.2 Series Release Notes" msgstr "" #: ../source/2025.1.rst:3 msgid "2025.1 Series Release Notes" msgstr "" #: ../source/2025.2.rst:3 msgid "2025.2 Series Release Notes" msgstr "" #: ../source/index.rst:3 msgid "oslo.service Release Notes" msgstr "" #: ../source/ocata.rst:3 msgid "Ocata Series Release Notes" msgstr "" #: ../source/pike.rst:3 msgid "Pike Series Release Notes" msgstr "" #: ../source/queens.rst:3 msgid "Queens Series Release Notes" msgstr "" #: ../source/rocky.rst:3 msgid "Rocky Series Release Notes" msgstr "" #: ../source/stein.rst:3 msgid "Stein Series Release Notes" msgstr "" #: ../source/train.rst:3 msgid "Train Series Release Notes" msgstr "" #: ../source/unreleased.rst:3 msgid "Unreleased Release Notes" msgstr "" #: ../source/ussuri.rst:3 msgid "Ussuri Series Release Notes" msgstr "" #: ../source/victoria.rst:3 msgid "Victoria Series Release Notes" msgstr "" #: ../source/wallaby.rst:3 msgid "Wallaby Series Release Notes" msgstr "" #: ../source/xena.rst:3 msgid "Xena Series Release Notes" msgstr "" #: ../source/yoga.rst:3 msgid "Yoga Series Release Notes" msgstr "" #: ../source/zed.rst:3 msgid "Zed Series Release Notes" msgstr ""