Features
-
Added support for
pydantic, the :class:~yarl.URLcould be used as a
field type inpydanticmodels seamlessly.Related issues and pull requests on GitHub:
#1607.
Packaging updates and notes for downstreams
-
The CI has been set up to notify Codecov about upload completion
-- by :user:webknjaz.With this, Codecov no longer needs to guess whether it received all
the intended coverage reports or not.Related issues and pull requests on GitHub:
#1577. -
The in-tree build backend allows the end-users appending
CFLAGSandLDFLAGSby setting respective environment
variables externally.It additionally sets up default compiler flags to perform
building with maximum optimization in release mode. This
makes the resulting artifacts shipped to PyPI smaller.When line tracing is requested, the compiler and linker
flags are configured to include as much information as
possible for debugging and coverage tracking. The
development builds are therefore smaller.-- by :user:
webknjazRelated issues and pull requests on GitHub:
#1586. -
The :pep:
517build backend now supports a new config
setting for controlling whether to build the project in-tree
or in a temporary directory. It only affects wheels and is
set up to build in a temporary directory by default. It does
not affect editable wheel builds — they will keep being
built in-tree regardless.-- by :user:
webknjazHere's an example of using this setting:
.. code-block:: console
$ python -m build
--config-setting=build-inplace=trueRelated issues and pull requests on GitHub:
#1590. -
Starting this version, when building the wheels is happening
in an automatically created temporary directory, the build
backend makes an effort to normalize the respective file
system path to a deterministic source checkout directory.-- by :user:
webknjazIt does so by injecting the
-ffile-prefix-mapcompiler
option into theCFLAGSenvironment variable as suggested
by knownreproducible build practices <https://reproducible-builds.org/docs/build-path/>__.The effect is that downstreams will get more reproducible
build results.Related issues and pull requests on GitHub:
#1591. -
Dropped Python 3.9 support; Python 3.10 is the minimal supported Python version
-- by :user:bdraco.Related issues and pull requests on GitHub:
#1609.
Contributor-facing changes
-
The deprecated license classifier was removed from :file:
setup.cfg
-- by :user:yegorich.Related issues and pull requests on GitHub:
#1550. -
The in-tree build backend allows the end-users appending
CFLAGSandLDFLAGSby setting respective environment
variables externally.It additionally sets up default compiler flags to perform
building with maximum optimization in release mode. This
makes the resulting artifacts shipped to PyPI smaller.When line tracing is requested, the compiler and linker
flags are configured to include as much information as
possible for debugging and coverage tracking. The
development builds are therefore smaller.-- by :user:
webknjazRelated issues and pull requests on GitHub:
#1586. -
The CI has been updated to consistently benchmark optimized
release builds -- by :user:webknjaz.When the release workflow is triggered, the pre-built wheels
ready to hit PyPI are being tested. Otherwise, the job
builds the project from source, while the rest of the
workflow uses debug builds for line tracing and coverage
collection.Related issues and pull requests on GitHub:
#1587.