Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-eventlet for openSUSE:Factory checked in at 2025-05-23 14:27:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-eventlet (Old) and /work/SRC/openSUSE:Factory/.python-eventlet.new.2732 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-eventlet" Fri May 23 14:27:32 2025 rev:63 rq:1278545 version:0.40.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-eventlet/python-eventlet.changes 2025-04-22 17:26:22.954295753 +0200 +++ /work/SRC/openSUSE:Factory/.python-eventlet.new.2732/python-eventlet.changes 2025-05-23 14:27:38.285176628 +0200 @@ -1,0 +2,10 @@ +Mon May 19 11:06:05 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to 0.40.0 + * [fix] Fix ssl test when linking against openssl 3.5 (#1034) + * Drop support Python 3.8 (#1021) + * [doc] Various doc updates (#981, #1033) + * [env] Drop PyPy support (#1035 #1037) +- Drop fix-test-with-openssl-3.5.0.patch, fixed upstream + +------------------------------------------------------------------- Old: ---- eventlet-0.39.1.tar.gz fix-test-with-openssl-3.5.0.patch New: ---- eventlet-0.40.0.tar.gz BETA DEBUG BEGIN: Old: * [env] Drop PyPy support (#1035 #1037) - Drop fix-test-with-openssl-3.5.0.patch, fixed upstream BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-eventlet.spec ++++++ --- /var/tmp/diff_new_pack.Ix5xQt/_old 2025-05-23 14:27:38.889202150 +0200 +++ /var/tmp/diff_new_pack.Ix5xQt/_new 2025-05-23 14:27:38.893202318 +0200 @@ -18,15 +18,13 @@ %{?sle15_python_module_pythons} Name: python-eventlet -Version: 0.39.1 +Version: 0.40.0 Release: 0 Summary: Concurrent networking library for Python License: MIT Group: Development/Languages/Python URL: https://eventlet.net Source: https://files.pythonhosted.org/packages/source/e/eventlet/eventlet-%{version}.tar.gz -# PATCH-FIX-OPENSUSE: fix-test-with-openssl-3.5.0.patch bsc#1241037 -- based on PR 1034 -Patch1: fix-test-with-openssl-3.5.0.patch BuildRequires: %{python_module hatch-vcs} BuildRequires: %{python_module pip} BuildRequires: %{python_module wheel} ++++++ eventlet-0.39.1.tar.gz -> eventlet-0.40.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/.github/workflows/test.yaml new/eventlet-0.40.0/.github/workflows/test.yaml --- old/eventlet-0.39.1/.github/workflows/test.yaml 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/.github/workflows/test.yaml 2020-02-02 01:00:00.000000000 +0100 @@ -5,16 +5,16 @@ schedule: - cron: "43 7 */14 * *" # every two weeks, time chosen by RNG jobs: - tox: - name: "tox ${{ matrix.toxenv }}" - continue-on-error: ${{ matrix.ignore-error }} + # Required tests + required-tests: + name: "Required Tests: ${{ matrix.toxenv }}" runs-on: ${{ matrix.os }} # https://github.community/t/duplicate-checks-on-push-and-pull-request-simultaneous-event/18012/5 if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'eventlet/eventlet' timeout-minutes: 10 services: mysql: - image: mysql:5.7 + image: mysql:8.0 env: { MYSQL_ALLOW_EMPTY_PASSWORD: yes } ports: ["3306:3306"] options: --health-cmd="mysqladmin ping" --health-timeout=5s --health-retries=5 --health-interval=5s @@ -29,28 +29,57 @@ fail-fast: false matrix: include: - - { py: 3.8, toxenv: py38-epolls, ignore-error: false, os: ubuntu-latest } - - { py: 3.8, toxenv: py38-openssl, ignore-error: false, os: ubuntu-latest } - - { py: 3.8, toxenv: py38-poll, ignore-error: false, os: ubuntu-latest } - - { py: 3.8, toxenv: py38-selects, ignore-error: false, os: ubuntu-latest } - - { py: 3.8, toxenv: py38-asyncio, ignore-error: false, os: ubuntu-latest } - - { py: 3.9, toxenv: py39-epolls, ignore-error: false, os: ubuntu-latest } - - { py: 3.9, toxenv: py39-poll, ignore-error: false, os: ubuntu-latest } - - { py: 3.9, toxenv: py39-selects, ignore-error: false, os: ubuntu-latest } - - { py: 3.9, toxenv: py39-dnspython1, ignore-error: false, os: ubuntu-latest } - - { py: 3.9, toxenv: py39-asyncio, ignore-error: false, os: ubuntu-latest } - - { py: "3.10", toxenv: py310-epolls, ignore-error: false, os: ubuntu-latest } - - { py: "3.10", toxenv: py310-poll, ignore-error: false, os: ubuntu-latest } - - { py: "3.10", toxenv: py310-selects, ignore-error: false, os: ubuntu-latest } - - { py: "3.10", toxenv: ipv6, ignore-error: false, os: ubuntu-latest } - - { py: "3.10", toxenv: py310-asyncio, ignore-error: false, os: ubuntu-latest } - - { py: "3.11", toxenv: py311-epolls, ignore-error: false, os: ubuntu-latest } - - { py: "3.11", toxenv: py311-asyncio, ignore-error: false, os: ubuntu-latest } - - { py: "3.12", toxenv: py312-epolls, ignore-error: false, os: ubuntu-latest } - - { py: "3.12", toxenv: py312-asyncio, ignore-error: false, os: ubuntu-latest } - - { py: "3.13", toxenv: py313-epolls, ignore-error: false, os: ubuntu-24.04 } - - { py: "3.13", toxenv: py313-asyncio, ignore-error: false, os: ubuntu-24.04 } - - { py: pypy3.9, toxenv: pypy3-epolls, ignore-error: true, os: ubuntu-20.04 } + - { py: 3.9, toxenv: py39-epolls, os: ubuntu-latest } + - { py: 3.9, toxenv: py39-openssl, os: ubuntu-latest } + - { py: 3.9, toxenv: py39-poll, os: ubuntu-latest } + - { py: 3.9, toxenv: py39-selects, os: ubuntu-latest } + - { py: 3.9, toxenv: py39-dnspython1, os: ubuntu-latest } + - { py: 3.9, toxenv: py39-asyncio, os: ubuntu-latest } + - { py: "3.10", toxenv: py310-epolls, os: ubuntu-latest } + - { py: "3.10", toxenv: py310-poll, os: ubuntu-latest } + - { py: "3.10", toxenv: py310-selects, os: ubuntu-latest } + - { py: "3.10", toxenv: ipv6, os: ubuntu-latest } + - { py: "3.10", toxenv: py310-asyncio, os: ubuntu-latest } + - { py: "3.11", toxenv: py311-epolls, os: ubuntu-latest } + - { py: "3.11", toxenv: py311-asyncio, os: ubuntu-latest } + - { py: "3.12", toxenv: py312-epolls, os: ubuntu-latest } + - { py: "3.12", toxenv: py312-asyncio, os: ubuntu-latest } + - { py: "3.13", toxenv: py313-epolls, os: ubuntu-latest } + - { py: "3.13", toxenv: py313-asyncio, os: ubuntu-latest } + + steps: + - name: install system packages + run: sudo apt install -y --no-install-recommends ccache libffi-dev default-libmysqlclient-dev libpq-dev libssl-dev libzmq3-dev + + - uses: actions/checkout@v4 + - name: cache pip + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ matrix.toxenv }}-${{ hashFiles('.github/workflows/test.yaml', 'setup.py') }} + restore-keys: | + ${{ runner.os }}-pip- + ${{ runner.os }}- + - name: cache tox + uses: actions/cache@v4 + with: + path: .tox + key: ${{ runner.os }}-tox-${{ matrix.toxenv }}-${{ hashFiles('tox.ini') }} + restore-keys: | + ${{ runner.os }}-tox- + ${{ runner.os }}- + + - name: setup python ${{ matrix.py }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.py }} + - name: install codecov, tox + run: pip install codecov tox + - run: env + - name: run tests + run: tox --verbose --verbose -e ${{ matrix.toxenv }} + - name: codecov + run: codecov --flags=$(echo ${{ matrix.toxenv }} |tr -d -- '-.') steps: - name: install system packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/NEWS new/eventlet-0.40.0/NEWS --- old/eventlet-0.39.1/NEWS 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/NEWS 2020-02-02 01:00:00.000000000 +0100 @@ -1,6 +1,14 @@ Unreleased ========== +0.40.0 +====== + +* [fix] Fix ssl test when linking against openssl 3.5 (#1034) +* Drop support Python 3.8 (#1021) +* [doc] Various doc updates (#981, #1033) +* [env] Drop PyPy support (#1035 #1037) + 0.39.1 ====== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/PKG-INFO new/eventlet-0.40.0/PKG-INFO --- old/eventlet-0.39.1/PKG-INFO 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: eventlet -Version: 0.39.1 +Version: 0.40.0 Summary: Highly concurrent networking library Project-URL: Homepage, https://github.com/eventlet/eventlet Project-URL: History, https://github.com/eventlet/eventlet/blob/master/NEWS @@ -19,7 +19,6 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 @@ -27,7 +26,7 @@ Classifier: Programming Language :: Python :: 3.13 Classifier: Topic :: Internet Classifier: Topic :: Software Development :: Libraries :: Python Modules -Requires-Python: >=3.8 +Requires-Python: >=3.9 Requires-Dist: dnspython>=1.15.0 Requires-Dist: greenlet>=1.0 Provides-Extra: dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/doc/source/asyncio/guide/glossary.rst new/eventlet-0.40.0/doc/source/asyncio/guide/glossary.rst --- old/eventlet-0.39.1/doc/source/asyncio/guide/glossary.rst 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/doc/source/asyncio/guide/glossary.rst 2020-02-02 01:00:00.000000000 +0100 @@ -18,7 +18,7 @@ **Concurrency** is when two or more tasks can start, run, and complete in overlapping time **periods**. It doesn't necessarily mean they'll ever both be -running **at the same instant**. For example, _multitasking_ on a single-core +running **at the same instant**. For example, *multitasking* on a single-core machine. .. _glossary-cooperative-multitasking: @@ -106,7 +106,7 @@ Parallelism ----------- -**Parallelism** is when tasks _literally_ run at the same time, e.g., on a +**Parallelism** is when tasks *literally* run at the same time, e.g., on a multicore processor. A condition that arises when at least two threads are executing simultaneously. @@ -129,7 +129,7 @@ which process should execute next. Therefore, all processes will get some amount of CPU time at any given time. -CPython also has _preemptive multitasking_: If a thread runs +CPython also has **preemptive multitasking**: If a thread runs uninterrupted for 1000 bytecode instructions in Python 2, or runs 15 milliseconds in Python 3, then it gives up the GIL and another thread may run. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/doc/source/asyncio/migration.rst new/eventlet-0.40.0/doc/source/asyncio/migration.rst --- old/eventlet-0.39.1/doc/source/asyncio/migration.rst 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/doc/source/asyncio/migration.rst 2020-02-02 01:00:00.000000000 +0100 @@ -108,9 +108,27 @@ deprecate CLI options that are related to Eventlet, we invite the reader to take a look to :ref:`manage-your-deprecations`. -The `awesome-asyncio <https://github.com/timofurrer/awesome-asyncio>`_ github -repository propose a curated list of awesome Python asyncio frameworks, -libraries, software and resources. Do not hesitate to take a look at it. +For a more comprehensive migration guide, please visit the +Eventlet migration guide available here: +`https://removal.eventlet.org/ <https://removal.eventlet.org/>`_. + +This guide provides: + +* **Detailed migration steps** to transition from Eventlet to modern alternatives. +* **Multiple alternatives** to Eventlet, including ``asyncio`` for asynchronous + programming and Python's native ``threading`` module for multithreading. +* **Advanced migration paradigms** to help you refactor your code incrementally + and minimize disruptions during the transition. + +For example, the section `Preparing for Migration +<https://removal.eventlet.org/guide/preparing-for-migration/>`_ +introduces strategies to prepare your codebase for migration. +It covers topics such as identifying blocking APIs, isolating Eventlet-specific +code, and gradually replacing it with ``asyncio`` or other alternatives. + +The `awesome-asyncio <https://github.com/timofurrer/awesome-asyncio>`_ GitHub +repository proposes a curated list of awesome Python asyncio frameworks, +libraries, software, and resources. Do not hesitate to take a look at it. You may find candidates compatible with asyncio that can allow you to replace some of your actual underlying libraries. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/doc/source/index.rst new/eventlet-0.40.0/doc/source/index.rst --- old/eventlet-0.39.1/doc/source/index.rst 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/doc/source/index.rst 2020-02-02 01:00:00.000000000 +0100 @@ -74,7 +74,7 @@ Supported Python Versions ========================= -Currently supporting CPython 3.8+. +Currently supporting CPython 3.9+. Concepts & References diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/eventlet/_version.py new/eventlet-0.40.0/eventlet/_version.py --- old/eventlet-0.39.1/eventlet/_version.py 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/eventlet/_version.py 2020-02-02 01:00:00.000000000 +0100 @@ -17,5 +17,5 @@ __version_tuple__: VERSION_TUPLE version_tuple: VERSION_TUPLE -__version__ = version = '0.39.1' -__version_tuple__ = version_tuple = (0, 39, 1) +__version__ = version = '0.40.0' +__version_tuple__ = version_tuple = (0, 40, 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/eventlet/greenio/base.py new/eventlet-0.40.0/eventlet/greenio/base.py --- old/eventlet-0.39.1/eventlet/greenio/base.py 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/eventlet/greenio/base.py 2020-02-02 01:00:00.000000000 +0100 @@ -426,13 +426,6 @@ def __exit__(self, *args): self.close() - if "__pypy__" in sys.builtin_module_names: - def _reuse(self): - getattr(self.fd, '_sock', self.fd)._reuse() - - def _drop(self): - getattr(self.fd, '_sock', self.fd)._drop() - def _operation_on_closed_file(*args, **kwargs): raise ValueError("I/O operation on closed file") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/pyproject.toml new/eventlet-0.40.0/pyproject.toml --- old/eventlet-0.39.1/pyproject.toml 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/pyproject.toml 2020-02-02 01:00:00.000000000 +0100 @@ -17,7 +17,7 @@ ] description = "Highly concurrent networking library" readme = "README.rst" -requires-python = ">=3.8" +requires-python = ">=3.9" license = {text = "MIT"} classifiers = [ "Development Status :: 4 - Beta", @@ -27,7 +27,6 @@ "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/tests/ssl_test.py new/eventlet-0.40.0/tests/ssl_test.py --- old/eventlet-0.39.1/tests/ssl_test.py 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/tests/ssl_test.py 2020-02-02 01:00:00.000000000 +0100 @@ -80,7 +80,8 @@ sock.recv(8192) try: self.assertEqual(b'', sock.recv(8192)) - except greenio.SSL.ZeroReturnError: + except (greenio.SSL.ZeroReturnError, + BrokenPipeError): pass sock = listen_ssl_socket() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eventlet-0.39.1/tox.ini new/eventlet-0.40.0/tox.ini --- old/eventlet-0.39.1/tox.ini 2020-02-02 01:00:00.000000000 +0100 +++ new/eventlet-0.40.0/tox.ini 2020-02-02 01:00:00.000000000 +0100 @@ -13,10 +13,9 @@ envlist = ipv6 pep8 - py38-openssl + py39-openssl py39-dnspython1 - pypy3-epolls - py{38,39,310,311,312,313}-{selects,poll,epolls,asyncio} + py{39,310,311,312,313}-{selects,poll,epolls,asyncio} skipsdist = True [testenv:ipv6] @@ -69,11 +68,11 @@ coverage pytest pytest-cov - py38-openssl: pyopenssl==22.1.0 + py39-openssl: pyopenssl==22.1.0 pypy3: psycopg2cffi-compat==1.1 - py{38,39}-{selects,poll,epolls}: pyzmq==21.0.2 - py{38,39,310,311}: mysqlclient==2.0.3 - py{38,39}: psycopg2-binary==2.8.4 + py39-{selects,poll,epolls}: pyzmq==21.0.2 + py{39,310,311}: mysqlclient==2.0.3 + py39: psycopg2-binary==2.8.4 py{310,311}: psycopg2-binary==2.9.5 py{310,311}: pyzmq==25.0.0 dnspython1: dnspython<2