github python-attrs/attrs 24.2.0

3 months ago

Highlights

Big releases always carry the risk of regressions, but never did I expect to break Python 3.14’s CI! On the plus side, attrs runs on 3.14 now.

Full changelog below!

Special Thanks

This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!

Above and Beyond

Variomedia AG (@variomedia), Tidelift (@tidelift), FilePreviews (@filepreviews), Klaviyo (@klaviyo), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).

Maintenance Sustainers

Adam Hill (@adamghill), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Moving Content AG (@moving-content), ProteinQure (@ProteinQure), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), The Westervelt Company (@westerveltco), Philippe Galvan (@PhilippeGalvan), Birk Jernström (@birkjernstrom), Chris Withers (@cjw296), Christopher Dignam (@chdsbd), Stefan Hagen (@sthagen), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), Mike Fiedler (@miketheman), Thomas Klinger (@thmsklngr), Duncan Hill (@cricalix), Colin Marquardt (@cmarqu), and Andreas Poehlmann (@ap--).

Not to forget 7 more amazing humans who chose to be generous but anonymous!

Full Changelog

Deprecations

  • Given the amount of warnings raised in the broader ecosystem, we've decided to only soft-deprecate the hash argument to @define / @attr.s. Please don't use it in new code, but we don't intend to remove it anymore. #1330

Changes

  • attrs.converters.pipe() (and its syntactic sugar of passing a list for attrs.field()'s / attr.ib()'s converter argument) works again when passing attrs.setters.convert to on_setattr (which is default for attrs.define). #1328
  • Restored support for PEP 649 / 749-implementing Pythons -- currently 3.14-dev. #1329

This release contains contributions from @hynek.

Artifact Attestations

You can verify this release's artififact attestions using GitHub's CLI tool by downloading the sdist and wheel from PyPI and running:

$ gh attestation verify --owner python-attrs attrs-24.2.0.tar.gz

and

$ gh attestation verify --owner python-attrs attrs-24.2.0-py3-none-any.whl

Don't miss a new attrs release

NewReleases is sending notifications on new releases.