Skip to content

Releases: aio-libs/yarl

1.23.0

01 Mar 22:01
v1.23.0
3d05d4c

Choose a tag to compare

Features

  • Added support for pydantic, the :class:~yarl.URL could be used as a
    field type in pydantic models 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
    CFLAGS and LDFLAGS by 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:webknjaz

    Related issues and pull requests on GitHub:
    #1586.

  • The :pep:517 build 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:webknjaz

    Here's an example of using this setting:

    .. code-block:: console

    $ python -m build
    --config-setting=build-inplace=true

    Related 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:webknjaz

    It does so by injecting the -ffile-prefix-map compiler
    option into the CFLAGS environment variable as suggested
    by known reproducible 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
    CFLAGS and LDFLAGS by 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:webknjaz

    Related 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.


1.20.1

29 Oct 22:52
v1.20.1
7bd9442

Choose a tag to compare

Bug fixes

  • Started raising a :exc:ValueError exception raised for corrupted
    IPv6 URL values.

    These fixes the issue where exception :exc:IndexError was
    leaking from the internal code because of not being handled and
    transformed into a user-facing error. The problem was happening
    under the following conditions: empty IPv6 URL, brackets in
    reverse order.

    -- by :user:MaelPic.

    Related issues and pull requests on GitHub:
    #1512.

Packaging updates and notes for downstreams

  • Updated to use Cython 3.1 universally across the build path -- by :user:lysnikolaou.

    Related issues and pull requests on GitHub:
    #1514.

  • Made Cython line tracing opt-in via the with-cython-tracing build config setting -- by :user:bdraco.

    Previously, line tracing was enabled by default in :file:pyproject.toml, which caused build issues for some users and made wheels nearly twice as slow.
    Now line tracing is only enabled when explicitly requested via pip install . --config-setting=with-cython-tracing=true or by setting the YARL_CYTHON_TRACING environment variable.

    Related issues and pull requests on GitHub:
    #1521.


1.22.0

06 Oct 14:06
v1.22.0
ed241de

Choose a tag to compare

Features

  • Added arm64 Windows wheel builds
    -- by :user:finnagin.

    Related issues and pull requests on GitHub:
    #1516.


1.21.0

05 Oct 17:16
v1.21.0
d6d2116

Choose a tag to compare

Contributor-facing changes

  • The :file:reusable-cibuildwheel.yml workflow has been refactored to
    be more generic and :file:ci-cd.yml now holds all the configuration
    toggles -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    #1535.

  • When building wheels, the source distribution is now passed directly
    to the cibuildwheel invocation -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    #1536.

  • Added CI for Python 3.14 -- by :user:kumaraditya303.

    Related issues and pull requests on GitHub:
    #1560.


1.20.0

17 Apr 00:39
v1.20.0
2127e8d

Choose a tag to compare

Features

  • Implemented support for the free-threaded build of CPython 3.13 -- by :user:lysnikolaou.

    Related issues and pull requests on GitHub:
    #1456.

Packaging updates and notes for downstreams

  • Started building wheels for the free-threaded build of CPython 3.13 -- by :user:lysnikolaou.

    Related issues and pull requests on GitHub:
    #1456.


1.19.0

06 Apr 02:32
v1.19.0
116dbda

Choose a tag to compare

Bug fixes

  • Fixed entire name being re-encoded when using :py:meth:yarl.URL.with_suffix -- by :user:NTFSvolume.

    Related issues and pull requests on GitHub:
    #1468.

Features

  • Started building armv7l wheels for manylinux -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1495.

Contributor-facing changes

  • GitHub Actions CI/CD is now configured to manage caching pip-ecosystem
    dependencies using re-actors/cache-python-deps_ -- an action by
    :user:webknjaz that takes into account ABI stability and the exact
    version of Python runtime.

    .. _re-actors/cache-python-deps:
    https://github.com/marketplace/actions/cache-python-deps

    Related issues and pull requests on GitHub:
    #1471.

  • Increased minimum propcache_ version to 0.2.1 to fix failing tests -- by :user:bdraco.

    .. _propcache:
    https://github.com/aio-libs/propcache

    Related issues and pull requests on GitHub:
    #1479.

  • Added all hidden folders to pytest's norecursedirs to prevent it
    from trying to collect tests there -- by :user:lysnikolaou.

    Related issues and pull requests on GitHub:
    #1480.

Miscellaneous internal changes

  • Improved accuracy of type annotations -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #1484.

  • Improved performance of parsing query strings -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1493, #1497.

  • Improved performance of the C unquoter -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1496, #1498.


1.18.3

01 Dec 20:31
v1.18.3
5862a36

Choose a tag to compare

Bug fixes

  • Fixed uppercase ASCII hosts being rejected by :meth:URL.build() <yarl.URL.build> and :py:meth:~yarl.URL.with_host -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #954, #1442.

Miscellaneous internal changes

  • Improved performances of multiple path properties on cache miss -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1443.


1.18.2

29 Nov 23:14
v1.18.2
65d3aed

Choose a tag to compare

This release also failed to fully upload and was yanked from PyPI. Please use 1.18.3 instead.

No significant changes.


1.18.1

29 Nov 21:15
v1.18.1
2cc2ebf

Choose a tag to compare

This release failed to fully upload and was yanked from PyPI. Please use 1.18.2 instead.

Miscellaneous internal changes

  • Improved cache performance when :class:~yarl.URL objects are constructed from :py:meth:~yarl.URL.build with encoded=True -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1432.

  • Improved cache performance for operations that produce a new :class:~yarl.URL object -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1434, #1436.


1.18.0

21 Nov 15:01
v1.18.0
2e8cd0d

Choose a tag to compare

Features

  • Added keep_query and keep_fragment flags in the :py:meth:yarl.URL.with_path, :py:meth:yarl.URL.with_name and :py:meth:yarl.URL.with_suffix methods, allowing users to optionally retain the query string and fragment in the resulting URL when replacing the path -- by :user:paul-nameless.

    Related issues and pull requests on GitHub:
    #111, #1421.

Contributor-facing changes

  • Started running downstream aiohttp tests in CI -- by :user:Cycloctane.

    Related issues and pull requests on GitHub:
    #1415.

Miscellaneous internal changes

  • Improved performance of converting :class:~yarl.URL to a string -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #1422.