Skip to content

v14.0.0

Choose a tag to compare

@kdeldycke kdeldycke released this 31 Oct 12:01
Immutable release. Only release title and notes can be modified.

Note

14.0.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Breaking: Drop Python 3.10, past its end of life: extra-platforms now needs Python 3.11 or newer.
  • Breaking: Remove the deprecated aliases EXTRA_GROUPS, NON_OVERLAPPING_GROUPS, GUIX_BUILD, TUMBLEWEED, is_guix_build(), is_tumbleweed() and their skip_* and unless_* decorators. Use NON_CANONICAL_GROUPS, CANONICAL_GROUPS, HERMETIC_BUILD and OPENSUSE instead.
  • Breaking: is_unknown(), @skip_unknown and @unless_unknown now match when a trait category resolves to its unknown trait, instead of never.
  • Breaking: Trait.aliases is now a tuple of strings, like Shell.executables, instead of a frozenset.
  • Breaking: symbol_id, detection_func_id, skip_decorator_id and unless_decorator_id are now properties, absent from dataclasses.fields() and dataclasses.asdict().
  • Accept the class metadata of a Trait or Group subclass as class keyword arguments, like class Fruit(Trait, type_name="fruit").
  • Accept a trait ID in any case, or an alias, in Group.remove(), Group.discard() and Group.pop(), like in Group.add().
  • Run a group detection function on its own members only: is_any_windows() no longer spawns ps on macOS.
  • Stop importing typing at runtime, which shortens the cold import of the package.
  • Require pytest 8.4 or newer in the pytest extra.
  • Fix Group.add() adding only the first member of a group whose ID it received: it now raises ValueError.
  • Fix Group.remove() and Trait.groups matching a trait that only shares its ID with a group member.
  • Fix reduce() returning the empty groups of its target_pool.
  • Fix the PyPI sdist missing AGENTS.md and .github/code-of-conduct.md, which the documentation includes.
  • Document installation from MacPorts.

Full changelog: v13.13.0...v14.0.0