Packaging updates and notes for downstreams
-
Declared Python 3.12 and PyPy 3.8-3.10 supported officially
in the distribution package metadata.Related issues and pull requests on GitHub:
#553. -
Replaced the packaging is replaced from an old-fashioned :file:
setup.pyto an
in-tree :pep:517build backend -- by :user:webknjaz.Whenever the end-users or downstream packagers need to build
frozenlist
from source (a Git checkout or an sdist), they may pass aconfig_settings
flagpure-python. If this flag is not set, a C-extension will be built
and included into the distribution.Here is how this can be done with
pip:.. code-block:: console
$ python3 -m pip install . --config-settings=pure-python=This will also work with
-e | --editable.The same can be achieved via
pypa/build:.. code-block:: console
$ python3 -m build --config-setting=pure-python=Adding
-w | --wheelcan forcepypa/buildproduce a wheel from source
directly, as opposed to building ansdistand then building from it.Related issues and pull requests on GitHub:
#560.
Contributor-facing changes
-
It is now possible to request line tracing in Cython builds using the
with-cython-tracing:pep:517config setting
-- :user:webknjaz.This can be used in CI and development environment to measure coverage
on Cython modules, but is not normally useful to the end-users or
downstream packagers.Here's a usage example:
.. code-block:: console
$ python3 -Im pip install . --config-settings=with-cython-tracing=trueFor editable installs, this setting is on by default. Otherwise, it's
off unless requested explicitly.The following produces C-files required for the Cython coverage
plugin to map the measurements back to the PYX-files:.. code-block:: console
$ python -Im pip install -e .Alternatively, the
FROZENLIST_CYTHON_TRACING=1environment variable
can be set to do the same as the :pep:517config setting.Related issues and pull requests on GitHub:
#560. -
Coverage collection has been implemented for the Cython modules
-- by :user:webknjaz.It will also be reported to Codecov from any non-release CI jobs.
Related issues and pull requests on GitHub:
#561. -
A step-by-step :doc:
Release Guide <contributing/release_guide>guide has
been added, describing how to release frozenlist -- by :user:webknjaz.This is primarily targeting the maintainers.
Related issues and pull requests on GitHub:
#563. -
Detailed :doc:
Contributing Guidelines <contributing/guidelines>on
authoring the changelog fragments have been published in the
documentation -- by :user:webknjaz.Related issues and pull requests on GitHub:
#564.