Changes
=======
* Drop support of Python 3.7 and update CI (#578)
(by @fantix in ee5ad26a for #578)
Fixes
=====
* Restore uvloop.new_event_loop and other missing uvloop members to typing (#573)
(by @graingert in 5c500ee2 for #573)
* Fix docstring of loop.shutdown_default_executor (#535)
(by @Gelbpunkt in 919da567 for #535)
* Fix CI status badge (#522)
(by @shuuji3 in 0e9ff6cd for #522)
See the linked GitHub issue from the previous version of the badge:
https://github.com/badges/shields/issues/8671
In summary, this type of badge was changed in a breaking fashion such that
the badges were just linking to the github issue rather than showing the
data. Updating the url resolves this.
Also update the link of the badge to specify the workflow file rather
than the name, which matches the new behaviour of the badge.
---------
Co-authored-by: Elliot Ford <elliot.ford@astrazeneca.com>
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd74 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c3 for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c5, @dulmandakh in 1dd40f17)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 06876434 for #563)
* Bump Cython to 0.29.36
* Add missing new API -- timeout param to shutdown_default_executor
* Stop using the beloved, but now deprecated, 'IF'
* Explicitly qualify void-returning callback functions as `noexcept`.
* Fix test_libuv_get_loop_t_ptr to work under Python 3.12
* "Fix" the failing asyncio tests by adding a sleep() call
* Add 3.12 to CI scripts
* Stop configuring watchers for asyncio tests under 3.12+
* Add the new timeout parameter of shutdown_default_executor to typeshed
* Implement uvloop.run()
* Add pyproject.toml and update CI
Co-authored-by: Fantix King <fantix.king@gmail.com>
This release adds Python 3.11 support, updates bundled libuv to 1.43.0
and fixes a handful of issues.
Changes
=======
* Expose uv_loop_t pointer for integration with other C-extensions (#310)
(by @pranavtbhat in b332eb85 for #310)
* Support python 3.11+ (#473)
(by @zeroday0619 in 8e42921d for #473)
* Expose libuv uv_fs_event functionality (#474)
(by @jensbjorgensen @fantix in 74d381e8 for #474)
* Activate debug mode when `-X dev` is used
(by @jack1142 in 637a77a3)
* Expose uv_version() for libuv API compatibility (#491)
(by @fantix in 089f6cbf for #491)
* Fix loop.getaddrinfo() and tests (#495)
(by @fantix in 598b16fd for #495)
* Bump to libuv 1.43.0
(by @fantix in 94e5e535)
Fixes
=====
* _TransProtPair is no longer defined in asyncio.events
(by @jensbjorgensen in fae5f7fb)
* use a TypeVar for asyncio.BaseProtocol (#478)
(by @graingert in 3aacb352 for #478)
* Fix segfault in TimerHandle.when() after cleared
(by @jensbjorgensen in c39afff8 for #469)
* Avoid self._errpipe_write double close (#466)
(by @graingert in 72140d7e for #466)
* Fix typo in test (#456)
(by @kianmeng in 033d52d0 for #456)
* Fix potential infinite loop (#446)
(by @kfur in ada43c06 for #446)
* use a stack of self._fds_to_close to prevent double closes (#481)
(by @graingert in 3214cf68 for #481)
* Fix incorrect main thread id value forking from a thread (#453)
(by @horpto @fantix in e7934c88 for #453)
* create_subprocess_exec should treat env={} as empty environment (#439) (#454)
(by @byllyfish in e04637e0 for #439)
* Queue write only after processing all buffers (#445)
(by @jakirkham @fantix in 9c6ecb62 for #445)
* Drop Python 3.6 support for thread ident
(by @fantix in 9c37930e)
* bugfix: write to another transport in resume_writing() fails (#498)
(by @fantix in d2deffef for #498)
Build
=====
* Upgrade GitHub Actions (#477) (#480)
(by @cclauss in fcbf422d for #477, 10086942 for #480)
* typo `same as same`
(by @YoSTEALTH in fedba80a)
* setup.py: allow to override extra_compile_args (#443)
(by @giuliobenetti in a130375f for #443)
* Drop hack in setup.py in finalize_options (492)
(by @fantix in 2f1bc83c for #492)
* Fix tests invocation on release CI worklow (#489)
(by @ben9923 in d6a2b597 for #489)
Documentation
=============
* use asyncio.Runner loop_factory on 3.11+ (#472)
(by @graingert in 31ba48ca for #472)
* Fix CI badge in docs, remove remaining Travis CI references from docs
(by @Nothing4You in c6901a74)
* Fix typo in README
(by @monosans in 73d7253b)
* Fix tests: 15s SSL_HANDSHAKE_TIMEOUT
Also allow longer time for slow tests on qemu aarch64 for GitHub Actions
* Build sdist on 22.04 to support LoongArch
Allows `writelines` to leverage vectorized IO within uvloop to send
multiple buffers in one `sendmsg` call.
* Update license copyright
Co-authored-by: Fantix King <fantix.king@gmail.com>
* chore: Cython version update
* add 3.11-dev pipeline
* Test and build on Python 3.11
* Drop test_context_run_segfault
* Support context in loop.create_task()
* Consistent PseudoSocket repr
* Add stubs for new 3.11 loop.sock_*() methods
* Skip test_create_ssl_server_manual_connection_lost on 3.11 for now
Co-authored-by: Fantix King <fantix.king@gmail.com>
Co-authored-by: Elvis Pranskevichus <elvis@edgedb.com>
* Fix incorrect main thread id value in mp.Process
* Make MAIN_THREAD_ID a lazy value and add test
Co-authored-by: Александр Менщиков <menshchikov@zvonok.com>
Co-authored-by: Fantix King <fantix.king@gmail.com>
* Add test for preexec_fn fd double close issue
* use a stack of self._fds_to_close to prevent double closes
and make tests easier to write because the close order is deterministic
and in the order that opens happen in
this should also be a bit faster because list.append is faster
than set.add and we skip a call to os_close(-1) and catching an
OSError exception
* DRY os_dup call
Co-authored-by: Fantix King <fantix.king@gmail.com>
At the moment extra_compile_args is set to -O2 by default. But m68k
toolchain has a bug that when trying to build Extension uvloop.loop enters
an infinite loop[1]. So we need to override -O2 with -O0 to make it
work. So let's getenv('MODULES_CFLAGS') and assign it to local
MODULES_CFLAGS (former CFLAGS) and assign it to extra_compile_args. If
not MODULES_CFLAGS is found then -O2 is kept as default.
[1]: http://autobuild.buildroot.net/results/17d/17d6e6422abadcd6313c430c40f2a5d7162dbbd3/build-end.log
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
* Rename to UVLOOP_OPT_CFLAGS
Co-authored-by: Fantix King <fantix.king@gmail.com>
This release adds Python 3.10 support, updates bundled libuv to 1.42.0
and fixes a handful of issues.
Changes
=======
* Python 3.10 support (#432)
(by @elprans in 2519e2df for #432)
* Bump vendored libuv to 1.42.0 (#433)
(by @elprans in a62f7818 for #433)
* Use cibuildwheel to build wheels (#435)
(by @elprans in 20febe0b for #435)
* Add support for <timer handle>.when()
(by Jens Jorgensen in 62b2af9c)
Fixes
=====
* Fix ref issue when protocol is in Cython
(by @fantix in 70cafc82 for #2222)
* set python_requires
(by @graingert in c808a663)
* SSL: schedule first data after waiter wakeup
(by @fantix in 2081db89)
* Fix a possible race condition in sslproto test
(by @fantix in b0526cd5 for #412)
* Fix `call_soon_threadsafe` thread safety
(by @fantix in 4b803b15)