commit 53e3e813873bde72fe1bde8166227f112a6626e8 Author: Thomas Goirand <zigo@debian.org> Date: Mon Jun 30 12:27:51 2025 +0200 Add remove-python-3.13-classifier.patch. commit 3cee0abd3aacd7b0c69548b1e5b056d1044eabb8 Author: Thomas Goirand <zigo@debian.org> Date: Mon Jun 30 12:20:12 2025 +0200 * Blacklist a number of unit tests that are failing with the current upstream code that adds Python 3.13 compat. commit 9db87c3af00d5a589d0e49883375297f62372748 Author: Thomas Goirand <zigo@debian.org> Date: Wed Jun 18 13:27:55 2025 +0200 Refresh patch. commit 7b4de25126110b88a6b14fe02edaa1165a8386c5 Author: Thomas Goirand <zigo@debian.org> Date: Wed Jun 18 13:27:32 2025 +0200 Packaging 0.40.0+2025.06.18.e470c1f493 commit 544ea0521651251645c895b5101d458940adbc6e Merge: f7fd231 e470c1f Author: Thomas Goirand <zigo@debian.org> Date: Wed Jun 18 13:27:13 2025 +0200 Merge tag '0.40.0+2025.06.18.e470c1f493' into new-40 commit f7fd2316123f27e5b55565124de4f1ccdc853dcf Author: Thomas Goirand <zigo@debian.org> Date: Wed Apr 2 12:34:28 2025 +0200 Add Skip_ident_comparison_to_avoid_crash_on_Python3.13.patch. commit ee2aa71c8051acb3d4291225054918313296278c Author: Thomas Goirand <zigo@debian.org> Date: Tue Apr 1 16:44:28 2025 +0200 Add test_send_1k_req_rep to blacklist, failing on armel. commit 6b88ab8ab29d34e4e181b82729114741648f9712 Author: Thomas Goirand <zigo@debian.org> Date: Sun Mar 30 12:33:51 2025 +0200 Fixed diff with upstream release. commit d892d445ece3d7773ccb8e72f7f02e8eecbc23af Author: Thomas Goirand <zigo@debian.org> Date: Sun Mar 30 12:32:13 2025 +0200 * Removed patches appiled upstream: - -python3.13-support.patch - Spew_Correct_line_lookup_from_inspect.getsourcelines.patch - Use_greenthread_s_dead_state_where_possible.patch * Refresh some other patches. commit d0fbeb5c347a236e906e8f3798a8ecb763708c9b Author: Thomas Goirand <zigo@debian.org> Date: Sun Mar 30 12:29:13 2025 +0200 Now packaging 0.39.1 commit dc268a251ec677d23fe41dfc35f116827b3cccdf Merge: 9801bfe 3ec6317 Author: Thomas Goirand <zigo@debian.org> Date: Sun Mar 30 12:28:56 2025 +0200 Merge tag '0.39.1' into debian/epoxy commit 9801bfe9473cd87d9582b1ae0480c0838c038aaa Author: Thomas Goirand <zigo@debian.org> Date: Wed Jan 8 08:21:08 2025 +0100 Add test_ssl_close to blacklist of tests (Closes: #1092379). commit 2b02790e43830860359e6265e0f7277d1dd8270d Author: Thomas Goirand <zigo@debian.org> Date: Tue Dec 17 08:23:58 2024 +0100 * Re-blacklist (Closes: #1090270): - test_orig_thread - test_send_1k_pub_sub commit 335ddabfd24c3ae605def0557964fa06604ec596 Author: Thomas Goirand <zigo@debian.org> Date: Tue Dec 17 08:19:27 2024 +0100 Rebuilt. commit b6deb68c62f2d5293d195bbd4a888f24ee735bc4 Author: Thomas Goirand <zigo@debian.org> Date: Tue Dec 10 16:39:52 2024 +0100 * Re-disable these: - test_clear - test_noraise_dns_tcp - test_raise_dns_tcp - test_dns_methods_are_green commit 73571247c7330c562d94402e411dd12a369b6688 Author: Thomas Goirand <zigo@debian.org> Date: Tue Dec 10 10:25:44 2024 +0100 * Re-enable all tests but: - test_fork_after_monkey_patch - test_cancel_proportion. commit d4693abab4b0ab2ab049f783451f0a223f28abc4 Author: Thomas Goirand <zigo@debian.org> Date: Tue Dec 10 10:01:51 2024 +0100 Add Use_greenthread_s_dead_state_where_possible.patch (Closes: #1089050). commit 8dccc8c8a66051eeb1bb677280886434e3d4ebf8 Author: Thomas Goirand <zigo@debian.org> Date: Mon Dec 9 16:03:17 2024 +0100 Fix python3.13-support.patch patch header. commit f6d70cc82bc7ea6ae7ffec3f066ad81bb53436fe Author: Thomas Goirand <zigo@debian.org> Date: Fri Nov 15 14:06:55 2024 +0100 * Add Spew_Correct_line_lookup_from_inspect.getsourcelines.patch, thanks to Stefano Rivera. commit 841a49f9f029468564a3987fa637731b0fba2c8c Author: Thomas Goirand <zigo@debian.org> Date: Fri Nov 15 10:22:37 2024 +0100 * Replaced python3.13-support.patch by a new one available at https://github.com/eventlet/eventlet/pull/988. commit 3965edc93483069782e0be65d88e2f3097431432 Author: Thomas Goirand <zigo@debian.org> Date: Tue Oct 29 11:39:41 2024 +0100 Add python3.13-support.patch. commit c025cd0580a5cd48e88e3461886cb563d4c6649b Author: Thomas Goirand <zigo@debian.org> Date: Sun Oct 13 23:27:38 2024 +0200 Blacklist test_orig_thread (Closes: #1082997). commit a249c3d8892a418e0a2545b090f68c5a35cbecfa Author: Thomas Goirand <zigo@debian.org> Date: Thu Oct 3 15:08:53 2024 +0200 Rebuilt. commit 2b175e6a5bf10dcfee1d252895d2cdbc0e4e7215 Author: Thomas Goirand <zigo@debian.org> Date: Tue Sep 24 12:53:34 2024 +0200 Removed python3-six from build-depends (Closes: #1079826). commit b7f3ed83caee971feccef4a11a35ad4be11712c8 Author: Thomas Goirand <zigo@debian.org> Date: Tue Sep 24 10:18:32 2024 +0200 Fix egg-info and module reported version. (Closes: #1078714). commit 1b9f3cf637c32692e6daf9d5813de4d9f791a29f Author: Thomas Goirand <zigo@debian.org> Date: Fri Sep 20 11:34:54 2024 +0200 Run tests in parrallel with -n `nproc` and pytest-xdist. commit e488a67a584d4b3795cd4fb068d94934aa5a2419 Author: Thomas Goirand <zigo@debian.org> Date: Fri Sep 20 11:31:44 2024 +0200 Add install-all-files.patch. commit 1c401eb7a05869ff419528d48542a156e7435ffc Author: Thomas Goirand <zigo@debian.org> Date: Fri Sep 20 11:30:33 2024 +0200 Refreshed patches. commit b0366a981ed59e0b9f8aff64edb0ef715f84b44c Author: Thomas Goirand <zigo@debian.org> Date: Thu Sep 19 16:50:37 2024 +0200 Uploading to unstable. commit b9b385502fd2593dd5d8746a4f9a621e136c586a Author: Thomas Goirand <zigo@debian.org> Date: Mon Sep 9 09:43:48 2024 +0200 Now packaging 0.36.1 commit 94fc3240c0a78a44e3b7beac2c8d5ecc940ca53e Merge: 54ea40d 7eb208b Author: Thomas Goirand <zigo@debian.org> Date: Mon Sep 9 09:43:29 2024 +0200 Merge tag '0.36.1' into debian/dalmatian 0.36.1 https://github.com/eventlet/eventlet/issues/951 Summary: * 7eb208b2 Update changelog for version 0.36.1 (#952) * c0cb04d7 fix: eventlet.websocket not always used from eventlet.wsgi (fixes #946) (#949) * 80f3936f (master) [doc] clean remnant refs to the pyevent removed hub (#944) * d3962812 [trivial] linkage awesome-asyncio into our migration guide (#947) commit 54ea40dbf6e8e8e1bc7a2b6b716234b003525b1f Author: Thomas Goirand <zigo@debian.org> Date: Wed Jun 5 14:11:40 2024 +0200 * Backlist 4 unit tests depending on /etc/resolv.conf (Closes: #1070333): - test_clear - test_noraise_dns_tcp - test_raise_dns_tcp - test_dns_methods_are_green commit deafcf80ff61aa52ed8b6a4acd678f2da05cfea2 Author: Thomas Goirand <zigo@debian.org> Date: Tue Jun 4 10:27:10 2024 +0200 d/changelog. commit fe2b73b89cf5a7ddc7322785565f0eccf5fd0cd6 Author: Thomas Goirand <zigo@debian.org> Date: Tue Feb 20 16:23:27 2024 +0100 Add python3-hatchling as build-depends. commit d4613694051b958c7fee6c9a7890124ead486dc4 Author: Thomas Goirand <zigo@debian.org> Date: Wed Feb 14 22:00:29 2024 +0100 Added python3-sphinxcontrib.apidoc as build-depends. commit e26eefb3e7ba84fa9b7850a422411b422d045436 Author: Thomas Goirand <zigo@debian.org> Date: Wed Feb 14 21:57:38 2024 +0100 Fix d/rules for doc moved to doc/source upstream. commit a10a6e3e6eedc7004dcb83147125173c90464e12 Author: Thomas Goirand <zigo@debian.org> Date: Wed Feb 14 21:52:29 2024 +0100 Switch to pytest from nose (Closes: #1018489). commit 0632a7196a269ec172ad9e05b18a109f226ffa7c Author: Thomas Goirand <zigo@debian.org> Date: Wed Feb 14 21:47:08 2024 +0100 Usual maintenance: rebase, refresh and remove patches. commit c123f02609c8bf2726d8a136ac3e080f1ada3113 Author: Thomas Goirand <zigo@debian.org> Date: Wed Feb 14 21:34:13 2024 +0100 Now packaging 0.35.1 commit f5c4adc9722aab8ec97d8c3e73a56f983f5e13d9 Author: Jay Faulkner <jay@jvf.cc> Date: Tue Jan 30 10:11:32 2024 -0800 Do not allow failed patching to stop execution (#907) There are some cases where monkey_patching cannot always be performed early enough; such as sphinx autodoc importing. To help handle these cases, exceptions during patching are logged and execution is allowed to continue. This fixed an issue in OpenStack Manila docs generation caused by an upgrade to eventlet 0.35.0. commit 4b2392ad63815f7b99e9c3ee19a51dcbff6230ac Author: Hervé Beraud <hberaud@redhat.com> Date: Mon Jan 22 16:05:14 2024 +0100 Add Python 3.7 to pyproject classifiers (#904) The support of this version of python has been reintroduced [1]. Updating classifiers accordingly. https://github.com/eventlet/eventlet/commit/64410214d0856f989e3b7c5f0bbe256d2b191f2f commit 6541967ac3193bbcf2801f07e4360f1b3b3f7f69 Author: Hervé Beraud <hberaud@redhat.com> Date: Mon Jan 22 16:04:48 2024 +0100 clean remnant files (#903) - git is now used instead of mercurial - doc is now automatically hosted on readthedocs commit 80c56082c0437d7679cb44fb85e9e4535daab43b Author: Hervé Beraud <hberaud@redhat.com> Date: Mon Jan 22 14:32:56 2024 +0100 document our release process (#900) commit 6b777193946357928d6cf5cb9c1d9742bbe1cd40 Author: Michał <92364784+m-danilow@users.noreply.github.com> Date: Mon Jan 22 09:59:33 2024 +0100 fix link in readme (#902) Co-authored-by: m-danilow <mdanilowski@student.agh.edu.pl> Co-authored-by: Hervé Beraud <hberaud@redhat.com> commit 74a37d9ece35072437c577512508bcac5b349bb5 Author: Hervé Beraud <hberaud@redhat.com> Date: Mon Jan 22 09:38:25 2024 +0100 update changelog for version 0.35.0 (#898) Related to #897 commit c9900b6e9db1d30f32922f5d66fb76cfad59f72b Author: Hervé Beraud <hberaud@redhat.com> Date: Mon Jan 22 09:37:36 2024 +0100 Move docs to readthedocs (#899) Official docs is now hosted on the readthedocs. https://eventlet.readthedocs.io/en/latest/ Only branches or tags containing the previous readthedocs setup are able to been displayed. For now only the master branch contains the right setup. Historically, the docs was hosted on gh-pages. This previous setup only host the last built version. No parallel versions of the docs were possible. This new way of documenting eventlet allow us to parallelize versions. That will be better to reflect deprecations, removal, or additions. Now remain a bit of work: - make other maintainers readthedocs admin - transfer eventlet.net to readthedocs - disable gh-pages commit 2776e0d51a7dacfc75dd1b2627fb9849af1ba9b1 Author: Hervé Beraud <hberaud@redhat.com> Date: Fri Jan 19 19:12:01 2024 +0100 [doc] fix a missing word (#901) commit 58db33b0c84fef21c87b25debd752b68201994e1 Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Thu Jan 18 10:37:18 2024 -0500 Basic documentation for asyncio migration (#892) * Basic documentation for asyncio migration. --------- Co-authored-by: Itamar Turner-Trauring <itamar@pythonspeed.com> Co-authored-by: Hervé Beraud <hberaud@redhat.com> commit f0e57cba4c165a58e0323831dae465c83a9e5136 Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Thu Jan 18 10:22:02 2024 -0500 Add very minimal linting (#894) * Add some linting. * Fix some lints. --------- Co-authored-by: Itamar Turner-Trauring <itamar@pythonspeed.com> commit 9dd556d6e79f287d416c5b320f456e946ae55d90 Author: Hervé Beraud <hberaud@redhat.com> Date: Thu Jan 18 14:35:01 2024 +0100 install eventlet at readthedocs build (#895) commit 1170cb640bad81dc6a0b86e8ca988340265a7121 Author: Claudius Kienle <privat@claudiuskienle.de> Date: Thu Jan 18 12:41:20 2024 +0100 fix truncate size nullable (#789) Co-authored-by: Itamar Turner-Trauring <itamar@itamarst.org> Co-authored-by: Hervé Beraud <hberaud@redhat.com> commit 0c448c9a541d36a900ee0325a700882c48edef35 Author: Hervé Beraud <hberaud@redhat.com> Date: Wed Jan 17 09:56:24 2024 +0100 Handle transport endpoint shutdown in conditions (#884) ESHUTDOWN errors types are raised when a socket cannot send after transport endpoint is shutdown [1]. BrokenPipeError correspond to errno EPIPE and ESHUTDOWN. BrokenPipeError are raised when trying to write on a pipe while the other end has been closed, or trying to write on a socket which has been shutdown for writing [2]. If we specificaly handle EPIPE [3] in our exception management we should also handle ESHUTDOWN in the same way. A BrokenPipeError. This patch made the addition of the ESHUTDOWN each time EPIPE is specificaly handled. [1] https://docs.python.org/fr/3/library/errno.html#errno.ESHUTDOWN [2] https://docs.python.org/fr/3/library/exceptions.html#BrokenPipeError [3] https://docs.python.org/fr/3/library/errno.html#errno.EPIPE commit 4577ba1c49d6d9638fdc8c8f75affa3484a888d1 Author: Tim Burke <tim.burke@gmail.com> Date: Tue Jan 16 13:39:00 2024 -0800 Rework reject_bad_requests option commit 8a342f3f10d438b922f715024c19c3d19c846d7f Author: Tim Burke <tim.burke@gmail.com> Date: Tue Jan 16 10:48:48 2024 -0800 Fix NameError from #826 commit 27bdde1d88d2dc262db39244409fb9adae7895d4 Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Tue Jan 16 14:31:12 2024 -0500 Support awaiting GreenThread in an `async def` context (#889) commit 47caf192823bc39c22b40b5a15ad9d1c33408957 Author: Bernhard M. Wiedemann <githubbmwprimary@lsmod.de> Date: Tue Jan 16 18:29:37 2024 +0100 Extend test cert to 2049 (#643) This change makes tests pass after 2028 Background: As part of my work on reproducible builds for openSUSE, I check that software still gives identical build results in the future. The usual offset is +15 years, because that is how long I expect some software will be used in some places. This showed up failing tests in our package build. See https://reproducible-builds.org/ for why this matters. Co-authored-by: Hervé Beraud <hberaud@redhat.com> commit 9ca6adf0a2f3548c70436658989c2aecd3d6303a Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Tue Jan 16 11:09:00 2024 -0500 Asyncio hub support for Python 3.7 to 3.9 (#886) commit 024309721babf69ee49fc9e97d1ea029de2b8447 Author: Hervé Beraud <hberaud@redhat.com> Date: Tue Jan 16 16:27:42 2024 +0100 fix bad directory name in readthedocs config file (#888) commit fe5c06bde90f8a0d107b5f266a6859abaa47df0d Author: Hervé Beraud <hberaud@redhat.com> Date: Tue Jan 16 15:43:25 2024 +0100 Modernize doc generation (#880) * Use tox to build docs - Move files into doc/source - Create a new testenv related to docs. - Manage docs requirements into a dedicated file - Remove obsolete makefile and build artifacts * Launch docs building with github action Also: - fix path in the existing script - adapt gitignore rule to track github actions * fix doc errors * Use readthedocs to host the documentation commit ca4a1fb137d0c392c4d67ac787e4a27d8a3bdbd4 Author: Hervé Beraud <hberaud@redhat.com> Date: Tue Jan 16 15:22:01 2024 +0100 Fix bad exceptions handlings (#883) This patch fix 2 conditions that are badly designed. They can't work. In all case the exception will be catched by the first except and then the second one will be all the time ignored. commit ad916bf46ff08f7936a8e10562c370df0066a3a7 Author: Hervé Beraud <hberaud@redhat.com> Date: Tue Jan 16 15:10:04 2024 +0100 Reword maintenance policy sentences (#882) Reword sentences to make them more meaningful, fix typos, remove examples to discourage new usages. commit 7d33e48d138cfc6bbdeb6e16b437002216ae1d59 Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Tue Jan 16 08:52:08 2024 -0500 Support using asyncio coroutines from inside greenlets (#877) Add `spawn_for_awaitable()`, which allows wrapping a coroutine/asyncio.Future/asyncio.Task in an eventlet GreenThread, or more generally using asyncio libraries from eventlet. commit 1613d0e64495ff0ffb23c94e1ae7b466b3427803 Author: Radoslaw Śmigielski <rsmigiel@redhat.com> Date: Mon Jan 15 10:01:51 2024 +0100 Bugfix/837 (#881) * Remove deprecated CGIHTTPServer and SimpleHTTPServer Both classes CGIHTTPServer and SimpleHTTPServer have been removed in Py3. This change makes green version of CGIHTTPServer and SimpleHTTPServer working again with Py3. * Fix doctest example with exception Python traceback contains details that are likely to change depending on the execution environment, these details can be ignored. While the correct exception type (AssertionError) remains unchanged. commit 5fa30a5bfe6b8495184ab2f24b899a286245e629 Author: Hervé Beraud <hberaud@redhat.com> Date: Mon Jan 15 09:43:59 2024 +0100 Update maintenance goals (#850) - Discourage new eventlet usages - Encourage usages of asyncio for network programming - Speak about our intentions to allow transitions from eventlet to asyncio - Highlight our plan to retire eventlet - Maintenance only for bugfixes and security purposes - New features are not accepted commit efff53e178f76669a1cc8d5ae5464d3bdde47953 Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Thu Jan 11 11:41:46 2024 -0500 An asyncio hub for eventlet (#870) An asyncio hub based on a prototype by Miguel Grinberg: https://gist.github.com/miguelgrinberg/829a20792d7283ae27b1f6a390c378b9 --------- Co-authored-by: Itamar Turner-Trauring <itamar@pythonspeed.com> commit d41397718dadd3a7df46b09b874ed20643dc455c Author: Hervé Beraud <hberaud@redhat.com> Date: Thu Jan 11 16:31:27 2024 +0100 update changelog for version 0.34.3 (#876) commit 8ee7fcad2040804e1131ad5bcda85a1517d392fb Author: Hervé Beraud <hberaud@redhat.com> Date: Thu Jan 11 16:05:24 2024 +0100 Fix security issue related to RFC 9112 (#826) By default reject requests which contains headers `content-length` and `transfer-encoding` at the same time. That's not allowed by RFC 9112 and that could lead to potential security attacks. If the `reject_bad_request` option is turned off, then similar requests will be processed even if they are bad formed. That will allow compatibility with old server that can't be updated. https://www.rfc-editor.org/rfc/rfc9112#section-6.1-15 This is an extract of the RFC: > A server MAY reject a request that contains both Content-Length and > Transfer-Encoding or process such a request in accordance with the > Transfer-Encoding alone. Regardless, the server MUST close the > connection after responding to such a request to avoid the potential > attacks. > A server or client that receives an HTTP/1.0 message containing > a Transfer-Encoding header field MUST treat the message as if the > framing is faulty, even if a Content-Length is present, and close the > connection after processing the message. The message sender might have > retained a portion of the message, in buffer, that could be > misinterpreted by further use of the connection. The following request would lead to this scenario: ``` POST / HTTP/1.1 Host: a.com Transfer-Encoding: chunked Content-Length: 0 Content-Type: application/x-"##-form-urlencoded 14 id=1'or sleep(1);### 0 ``` With these changes, when this kind of request is received the connection is closed and an error 400 is returned. This scenario can be tested by using the following process: 1. run a wsgi server either by using the wsgi sample in official examples (http://eventlet.net/doc/examples.html#wsgi-server) 2. send the following HTTP request to the running server: ``` curl -d "param1=value1¶m2=value2" -X POST -H 'Transfer-Encoding: chunked' -H 'Content-Length: 0' --http1.1 http://0.0.0.0:8090 -i ``` The previous curl command display returned headers and status code. You can observe that now, with these changes, bad requests are rejected. These changes also remove `content-lenght` from the `chunk` tests to avoid reflecting something that's not a bad practice. This security issue was originally discovered by Keran Mu (mkr22@mails.tsinghua.edu.cn) and Jianjun Chen (jianjun@tsinghua.edu.cn), from Tsinghua University and Zhongguancun Laboratory Thanks to them for raising our attention about this security problem. Co-authored-by: Itamar Turner-Trauring <itamar@itamarst.org> commit ca625ff30e51df4011cbbf40ee4d38d78adb2ead Author: Itamar Turner-Trauring <itamar@itamarst.org> Date: Thu Jan 11 09:42:46 2024 -0500 No more segfaults: a new approach for greening existing locks (#866) Switch to a new mechanism for converting pre-existing RLocks to Eventlet-compatible ones at monkey-patching time, hopefully with fewer segfaults. --------- Co-authored-by: Itamar Turner-Trauring <itamar@pythonspeed.com> commit 51b3ccd7b583c33f6803f2d3384f2cb2e398a3b8 Author: Tuomo <tuokri@users.noreply.github.com> Date: Wed Jan 10 17:35:01 2024 +0200 greendns: fix getaddrinfo parameter name for Python 3 (#809) * greendns: fix getaddrinfo parameter name for Python 3 The `socktype` parameter has been renamed `type`. Upgrading eventlet accordingly. https://github.com/eventlet/eventlet/issues/775 Co-authored-by: Tim Burke <tim.burke@gmail.com> commit 00232e776804d241c9ee836e46b3dedb8fbeb850 Author: Radoslaw Śmigielski <rsmigiel@redhat.com> Date: Tue Jan 9 17:50:53 2024 +0100 Fix deprecation warning on ssl.PROTOCOL_TLS (#872) * Fix deprecation warning on ssl.PROTOCOL_TLS ssl.PROTOCOL_SSLv23 has been deprecated since version Python 3.6. Use PROTOCOL_TLS instead. --------- Co-authored-by: Radoslaw Smigielski <radoslaw.smigielski@nokia.com> commit 9b0be57e73fc765cbe2ea170e8024879ad6a996e Author: Radoslaw Śmigielski <rsmigiel@redhat.com> Date: Tue Jan 9 17:50:27 2024 +0100 Pytests, fix error at teardown of TestGreenSocket.test_full_duplex (#871) Pytests keeps failing with below error: ERROR at teardown of TestGreenSocket.test_full_duplex tests/__init__.py:194: in tearDown and above is caused by: eventlet/hubs/hub.py:310: TestIsTakingTooLong By simply increasing the TEST_TIMEOUT let fully pass all the tests. Co-authored-by: Radoslaw Smigielski <radoslaw.smigielski@nokia.com> commit 9012982c5eba55fe295abfd8c2a7e060573bd7aa Author: Radoslaw Śmigielski <rsmigiel@redhat.com> Date: Tue Jan 2 23:02:21 2024 +0100 Fix low hanging fruits in examples (#867) - problems related to the Py2/Py3 switch - be more clear with error message when zmq module is missing commit 679b142aea2e357415408760a0b538e8590c2c10 Author: Radoslaw Śmigielski <radeksm@users.noreply.github.com> Date: Tue Jan 2 16:22:27 2024 +0100 Skip test which uses Py cgi module (#865) * Skip test which uses Py cgi module Python cgi module has been deprecated since version 3.11, and will be removed in version 3.13. Skip test_019_fieldstorage_compat test if Py >= 3.11. Fixes https://github.com/eventlet/eventlet/issues/863 commit 57d0eceb305d509a64bf3617bc86227ae01ab5e0 Author: Eli Schwartz <eschwartz93@gmail.com> Date: Fri Dec 22 13:22:45 2023 -0500 Drop old code based on python < 3.7, part 2: everything other than eventlet/ (#858) * inline version comparison checks Assigning global constants for sys.version_info comparisons makes it hard to run automatic migrations. * automatically upgrade code to drop python2-specific Klass(object) part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP004 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific super(), part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP008 --fix --unsafe-fixes ``` fixing a couple of resulting pycodestyle indent issues, and committing the results. * automatically upgrade code to drop python2-specific coding cookie part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP009 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific future import part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP010 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific exceptions, part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP024 --fix ``` and committing the results. * automatically upgrade code to drop python2 format placeholders, part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP030 --fix --unsafe-fixes ``` and committing the results. * automatically upgrade code to drop python2-specific imports, part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP035 --fix ``` and realizing that it was already try/excepted. The automatic rewriter doesn't notice the difference, but we do. Manually fix this up, and commit it. * automatically upgrade remaining code to drop python2-specific logic, part 1 Ported by running the following command: ``` find eventlet -name '*.py' -exec pyupgrade --py3-only --keep-percent-format {} + ``` fixing a couple of resulting pycodestyle indent/spacing issues, and committing the results. Touch only the primary project code for now. Clean up the tests etc. later. This covers a few different types of fixes: - collapse various six imports to their canonical python3 location - elide or collapse various six.PY2 / six.PY3 conditional code to unconditionally, exclusively, run the latter - catch some OSError conversions that ruff did not catch, because of `__import__()` - rewrite set/dict to literals - directly use dict methods (.keys, .items, ...) instead of py2-wrapper .iter - mark strings as raw if they have invalid escape sequences * manually clean up a lot of remaining "import six" code, part 1 Touch only the eventlet/ directory. Manual cleanups to follow. Variously: - simply drop an unused import - convert six.StringIO to io.StringIO - convert six.b() to encoding string -> bytes - collapsing six.moves or six.PY2 logic too complex for the rewriter * Drop remaining python < 3.7 compatible legacy code, part 1 Automatically migrated by running: ``` ruff check eventlet/ --select UP036 --fix --unsafe-fixes ``` and committing the results. Touch only eventlet/ for now. This implements one fixer: - code guarded by sys.version_info conditional on a target python of py37 * automatically upgrade code to drop python2-specific Klass(object) part 2 Ported by running the following command: ``` ruff check . --select UP004 --fix ``` and committing the results. * automatically upgrade code to drop python2.6-specific unittest method Ported by running the following command: ``` ruff check . --select UP005 --fix ``` fixing a couple of resulting pycodestyle indent issues, and committing the results. * automatically upgrade code to drop python2-specific super(), part 2 Ported by running the following command: ``` ruff check . --select UP008 --fix --unsafe-fixes ``` and committing the results. * automatically upgrade code to drop python2-specific coding cookie part 2 Ported by running the following command: ``` ruff check . --select UP009 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific future import part 2 Ported by running the following command: ``` ruff check . --select UP010 --fix ``` and committing the results. * automatically upgrade code to drop python2 encode of string literal Ported by running the following command: ``` ruff check . --select UP012 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific open mode Ported by running the following command: ``` ruff check . --select UP015 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific io.open alias Ported by running the following command: ``` ruff check . --select UP020 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific exceptions, part 2 Ported by running the following command: ``` ruff check . --select UP024 --fix ``` fixing a couple of resulting pycodestyle indent/spacing issues, and committing the results. * automatically upgrade code to drop python2-specific u string prefix Ported by running the following command: ``` ruff check . --select UP025 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific yield loop Ported by running the following command: ``` ruff check . --select UP028 --fix ``` and committing the results. * automatically upgrade code to drop python2 format placeholders, part 2 Ported by running the following command: ``` ruff check . --select UP030 --fix --unsafe-fixes ``` and committing the results. * automatically upgrade remaining code to drop python2-specific logic, part 2 Ported by running the following command: ``` find . -name '*.py' -exec pyupgrade --py3-only --keep-percent-format {} + ``` fixing a couple of resulting pycodestyle indent/spacing issues, and committing the results. Clean up the rest of the non eventlet/ code. This covers a few different types of fixes: - collapse various six imports to their canonical python3 location - elide or collapse various six.PY2 / six.PY3 conditional code to unconditionally, exclusively, run the latter - catch some OSError conversions that ruff did not catch, because of `__import__()` - rewrite set/dict to literals - directly use dict methods (.keys, .items, ...) instead of py2-wrapper .iter - mark strings as raw if they have invalid escape sequences * manually clean up a lot of remaining "import six" code, part 2 Clean up all remaining code outside of eventlet/ itself. Variously: - simply drop an unused import - convert six.StringIO to io.StringIO - convert six.b() to encoding string -> bytes - collapsing six.moves or six.PY2 logic too complex for the rewriter * Drop remaining python < 3.7 compatible legacy code, part 2 Automatically migrated by running: ``` ruff check . --select UP036 --fix --unsafe-fixes ``` and committing the results. Clean up all remaining code outside of eventlet/ itself. This implements one fixer: - code guarded by sys.version_info conditional on a target python of py37 * Restore to correct code (matching the version in stdlib) --------- Co-authored-by: Itamar Turner-Trauring <itamar@itamarst.org> Co-authored-by: Itamar Turner-Trauring <itamar@pythonspeed.com> commit 969ddb5ed8dddbc28125737ec06561e1af79a01e Author: Eli Schwartz <eschwartz93@gmail.com> Date: Fri Dec 22 12:47:53 2023 -0500 Drop old code based on python < 3.7, part 1: eventlet directory (#853) * inline version comparison checks Assigning global constants for sys.version_info comparisons makes it hard to run automatic migrations. * automatically upgrade code to drop python2-specific Klass(object) part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP004 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific super(), part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP008 --fix --unsafe-fixes ``` fixing a couple of resulting pycodestyle indent issues, and committing the results. * automatically upgrade code to drop python2-specific coding cookie part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP009 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific future import part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP010 --fix ``` and committing the results. * automatically upgrade code to drop python2-specific exceptions, part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP024 --fix ``` and committing the results. * automatically upgrade code to drop python2 format placeholders, part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP030 --fix --unsafe-fixes ``` and committing the results. * automatically upgrade code to drop python2-specific imports, part 1 Ported by running the following command: ``` ruff check eventlet/ --select UP035 --fix ``` and realizing that it was already try/excepted. The automatic rewriter doesn't notice the difference, but we do. Manually fix this up, and commit it. * automatically upgrade remaining code to drop python2-specific logic, part 1 Ported by running the following command: ``` find eventlet -name '*.py' -exec pyupgrade --py3-only --keep-percent-format {} + ``` fixing a couple of resulting pycodestyle indent/spacing issues, and committing the results. Touch only the primary project code for now. Clean up the tests etc. later. This covers a few different types of fixes: - collapse various six imports to their canonical python3 location - elide or collapse various six.PY2 / six.PY3 conditional code to unconditionally, exclusively, run the latter - catch some OSError conversions that ruff did not catch, because of `__import__()` - rewrite set/dict to literals - directly use dict methods (.keys, .items, ...) instead of py2-wrapper .iter - mark strings as raw if they have invalid escape sequences * manually clean up a lot of remaining "import six" code, part 1 Touch only the eventlet/ directory. Manual cleanups to follow. Variously: - simply drop an unused import - convert six.StringIO to io.StringIO - convert six.b() to encoding string -> bytes - collapsing six.moves or six.PY2 logic too complex for the rewriter * Drop remaining python < 3.7 compatible legacy code, part 1 Automatically migrated by running: ``` ruff check eventlet/ --select UP036 --fix --unsafe-fixes ``` and committing the results. Touch only eventlet/ for now. This implements one fixer: - code guarded by sys.version_info conditional on a target python of py37 --------- Co-authored-by: Itamar Turner-Trauring <itamar@itamarst.org> commit 85be95c8823f3d2b444038ef1fc38f6d12142352 Author: Hervé Beraud <hberaud@redhat.com> Date: Fri Dec 22 15:26:25 2023 +0100 Generate module version file at build (#859) * Generate module version file at build Gunicore rely on `eventlet.__version__` [1], however this data have been removed during our modernization of the continuous deployment mechanisms [2]. People reported problem with gunicore after 0.34.1 [3][4], so, it could be worth to reintroduce similar version info, to avoid side effects. This patch propose to use a `hatch-vcs` hook [5] to generate dynamically, at build, the missing data. Other solutions exists but each of them have their own problems [6]. Indeed, considering "footgun" described in [6] I choose the hatch-vcs approach, because, retrieving a wrong version number during development when the lib is installed in editable mode, is not, I think, something horrible. I prefer this side effect rather than relying on another additional underlying library just to print a version number when eventlet is installed in editable mode. A new additional requirement which would be installed anytime at runtime and production. Moreover, sometimes you want to import a package from a development repository tarball you just downloaded (where there's no metadata or Git tags present). So, Using `setuptools_scm` or `importlib.metadata.version` won't works in that context. Fix https://github.com/benoitc/gunicorn/issues/3120 _version.py is generated, and therefore shouldn't be checked in. Adding it to `.gitignore`. [1] https://github.com/benoitc/gunicorn/issues/3120 [2] https://github.com/eventlet/eventlet/pull/845 [3] https://github.com/eventlet/eventlet/pull/845#discussion_r1433985555 [4] https://github.com/eventlet/eventlet/issues/842#issuecomment-1864896273 [5] https://github.com/ofek/hatch-vcs#build-hook [6] https://github.com/maresb/hatch-vcs-footgun-example --------- Co-authored-by: Itamar Turner-Trauring <itamar@pythonspeed.com> commit 5eea85fca7f66b936be6368eb28f85d4720b4eb9 Author: Hervé Beraud <hberaud@redhat.com> Date: Fri Dec 22 14:26:54 2023 +0100 update changelog for version 0.34.2 (#860) commit 706c0cd3bb5f2b6b94b4f7c587d44d64acaded8c Author: Ruitong Zhu <ruitong_zhu@berkeley.edu> Date: Thu Dec 21 13:19:55 2023 -0800 Allowing inheritance of GreenSSLSocket without overriding the __new__ method (#796) Replace hard coded class name to avoid inconvenience when inheriting from this class. For a wrapper class GreenSSLSocketWrapper to inherit from GreenSSLSocket, it has to overwrite the __new__ method since __class__ was hard coded to be GreenSSLSocket. commit f0fdb78d101e752ff0bfd2d1d1d5690454399d78 Author: Hervé Beraud <hberaud@redhat.com> Date: Thu Dec 21 17:43:35 2023 +0100 Fix pypi broken link (#857) commit 4e6ff3b9c658f8cef8faad5807ac8a15db0dfc4c Author: Hervé Beraud <hberaud@redhat.com> Date: Wed Dec 20 18:20:23 2023 +0100 Update changelog (#856) commit a84ee1250ece7d1cdfe761bfffa2ada32cc74e2c Author: Hervé Beraud <hberaud@redhat.com> Date: Wed Dec 20 17:59:33 2023 +0100 Ignore asyncore and asynchat for Python 3.12+ (#854) Starting Python 3.12 these modules have been removed https://docs.python.org/3/whatsnew/3.12.html Fix #804 commit a9b111d67129f07a335a52383086b078f29ae55d Author: Hervé Beraud <hberaud@redhat.com> Date: Wed Dec 20 17:57:32 2023 +0100 Fix OIDC authentication failure (#855) The publish job require writing permissions to store the `id-token` requested by Pypi. Without that change, we will get the following error: > Trusted publishing exchange failure: > OpenID Connect token retrieval failed: GitHub: missing or insufficient > OIDC token permissions, the ACTIONS_ID_TOKEN_REQUEST_TOKEN environment > variable was unset > This generally indicates a workflow configuration error, such as > insufficient permissions. Make sure that your workflow has `id-token: write` > configured at the job level, e.g.: Learn more at: https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#adding-permissions-settings. commit 80d7f2a55ee7bbcc80bfc09dfad7aadc215e9b70 Author: victor <16359131+jiajunsu@users.noreply.github.com> Date: Thu Dec 21 00:56:01 2023 +0800 Fix memory leak in module greendns (alternative to #682) (#811) * Fix memory leak in module greendns Change `EAI_*_ERROR` to `lambda` expression, and initialize them when being called, to avoid memory leak with `__traceback__.tb_next` fixes https://github.com/eventlet/eventlet/issues/810 commit d36a36f53ce34ee3e74a208e2cd177939b13f467 Author: Hervé Beraud <hberaud@redhat.com> Date: Wed Dec 20 16:11:16 2023 +0100 rename github workflow to fix ignored action (#852) Also modify action to react on push and pull-requests. Can be useful to try to build the package at each pull-request.
Among the 13 debian patches available in version 0.39.1-2 of the package, we noticed the following issues: