Subject: CVS commit: pkgsrc/net/py-zmq
From: Adam Ciarcinski
Date: 2021-11-14 21:17:08
Message id: 20211114201708.DD2FAFAEC@cvs.NetBSD.org

Log Message:
py-zmq: updated to 22.3.0

22.3.0
======

Fixes:

- Fix `strlcpy` compilation issues on alpine, freebsd.
  Adds new build-time dependency on `packaging`.
- In event-loop integration: warn instead of raise when triggering callback on a \ 
socket whose context has been closed.
- Bundled libzmq in wheels backport a patch to avoid crashes
  due to inappropriate closing of libsodium's random generator
  when using CurveZMQ.

Changes:

- New ResourceWarnings when contexts and sockets are closed by garbage collection,
  which can be a source of hangs and leaks (matches open files)

22.2.1
======

Fix bundling of wepoll on Windows.

22.2.0
======

New features:

- IPC support on Windows:
  where available (64bit Windows wheels and bundled libzmq when compiling from \ 
source, via wepoll),
  IPC should work on appropriate Windows versions.
- Nicer reprs of contexts and sockets
- Memory allocated by `recv(copy=False)` is no longer read-only
- asyncio: Always reference current loop instead of attaching to the current \ 
loop at instantiation time.
  This fixes e.g. contexts and/or sockets instantiated prior to a call to \ 
`asyncio.run`.
- ssh: `$PYZMQ_PARAMIKO_HOST_KEY_POLICY` can be used to set the missing host key \ 
policy,
  e.g. `AutoAdd`.

Fixes:

- Fix memory corruption in gevent integration
- Fix `memoryview(zmq.Frame)` with cffi backend
- Fix threadsafety issue when closing sockets

Changes:

- pypy Windows wheels are 64b-only, following an update in cibuildwheel 2.0
- deprecate `zmq.utils.jsonapi` and remove support for non-stdlib json \ 
implementations in `send/recv_json`.
  Custom serialization methods should be used instead.

22.1.0
======

New features:

- asyncio: experimental support for Proactor eventloop if tornado 6.1 is available
  by running a selector in a background thread.

Fixes:

- Windows: fix type of `socket.FD` option in win-amd64
- asyncio: Cancel timers when using HWM with async Sockets

Other changes:

- Windows: update bundled libzmq dll URLs for Windows.
  Windows wheels no longer include concrt140.dll.
- adopt pre-commit for formatting, linting

22.0.3
======

- Fix fork-safety bug in garbage collection thread (regression in 20.0)
  when using subprocesses.
- Start uploading universal wheels for ARM Macs.

22.0.2
======

- Add workaround for bug in DLL loading for Windows wheels with conda Python \ 
>= 3.8

22.0.1
======

- Fix type of ``Frame.bytes`` for non-copying recvs with CFFI backend \ 
(regression in 21.0)
- Add manylinux wheels for pypy

22.0.0
======

This is a major release due to changes in wheels and building on Windows.
Code changes from 21.0 are minimal.

- Some typing fixes
- Bump bundled libzmq to 4.3.4
- Strip unused symbols in manylinux wheels, resulting in dramatically smaller \ 
binaries.
  This matches behavior in v20 and earlier.
- Windows CPython wheels bundle public libzmq binary builds,
  instead of building libzmq as a Python Extension.
  This means they include libsodium for the first time.
- Our own implementation of bundling libzmq into pyzmq on Windows is removed,
  instead relying on delvewheel (or installations putting dlls on %PATH%) to \ 
bundle dependency dlls.
- The (new in 21.0) Windows wheels for PyPy likely require the Windows vcredist \ 
package.
  This may have always been the case, but the delvewheel approach doesn't seem \ 
to work.
- Windows + PyPy is now the only remaining case where a wheel has libzmq built \ 
as an Extension.
  All other builds ship libzmq built using its own tooling,
  which should result in better, more stable builds.

21.0.2
======

- Fix wheels on macOS older than 10.15 (sets MACOSX_DEPLOYMENT_TARGET to 10.9, \ 
matching wheel ABI tag).

21.0.1
======

pyzmq-21.0.1 only changes CI configuration for Windows wheels (built with VS2017 \ 
instead of VS2019),
fixing compatibility with some older Windows on all Pythons
and removing requirement of VC++ redistributable package on latest Windows and \ 
Python < 3.8.

There still appears to be a compatibility issue with Windows 7 that will be \ 
fixed ASAP.
Until then, you can pin ``pip install pyzmq<21``.

There are no changes from 21.0.0 for other platforms.

21.0
====

pyzmq 21 is a major version bump because of dropped support for old Pythons and \ 
some changes in packaging.
CPython users should not face major compatibility issues if installation works \ 
at all :)
PyPy users may see issues with the new implementation of send/recv.
If you do, please report them!

The big changes are:

- drop support for Python 3.5. Python >= 3.6 is required
- mypy type stubs, which should improve static analysis of pyzmq,
  especially for dynamically defined attributes such as zmq constants.
  These are new! Let us know if you find any issues.
- support for zero-copy and sending bufferables with cffi backend.
  This is experimental! Please report issues.
- More wheels!
    - linux-aarch64 on Python 3.7-3.9
    - wheels for pypy36, 37 on Linux and Windows (previously just mac)

We've totally redone the wheel-building setup, so let us know if you start \ 
seeing instalation issues!

Packaging updates:

- Require Python >= 3.6, required for good type annotation support
- Wheels for macOS no longer build libzmq as a Python Extension,
  instead 'real' libzmq is built and linked to libsodium,
  bundled with delocate.
  This matches the longstanding behavior of Linux wheels,
  and should result in better performance.
- Add manylinux wheels for linux-aarch64. These bundle an older version of \ 
libzmq than the rest.
- Build wheels for python3.8, 3.9 with manylinux2010 instead of manylinux1.
  Wheels for older Pythons will still be built on manylinux1.
- rework cffi backend in setup.py
- All wheels are built on GitHub Actions (most with cibuildwheel) instead of \ 
Min's laptop (finally!).

New features:

- zero-copy support in CFFI backend (``send(copy=False)`` now does something).
- Support sending any buffer-interface-providing objects in CFFI backend.

Bugs fixed:

- Errors during teardown of asyncio Sockets
- Missing MSVCP140.dll in Python 3.9 wheels on Windows,
  causing vcruntime-redist package to be required to use the Python 3.9 wheels \ 
for pyzmq 20.0

20.0
====

20.0 is a major version bump because of dropped support for old Pythons and some \ 
changes in packaging,
but there are only small changes for users with relatively recent versions of Python.

Packaging updates:

- Update bundled libzmq to 4.3.3
- Drop support for Python < 3.5 (all versions of Python < 3.6 are EOL at \ 
time of release)
- Require setuptools to build from source
- Require Cython 0.29 to build from version control (sdists still ship .c files, \ 
so will never need Cython)
- Respect $PKG_CONFIG env for finding libzmq when building from source

New features:

- :meth:`.Socket.bind` and :meth:`.Socket.connect` can now be used as context \ 
managers.

Fixes:

- Better error when libzmq is bundled and fails to be loaded.
- Hold GIL while calling ``zmq_curve_`` functions, which may fix apparent \ 
threadsafety issues.

Files:
RevisionActionfile
1.32modifypkgsrc/net/py-zmq/Makefile
1.14modifypkgsrc/net/py-zmq/PLIST
1.26modifypkgsrc/net/py-zmq/distinfo
1.3modifypkgsrc/net/py-zmq/patches/patch-buildutils_detect.py
1.4modifypkgsrc/net/py-zmq/patches/patch-setup.py