diff --git a/pkgs/development/python-modules/attrs/default.nix b/pkgs/development/python-modules/attrs/default.nix index 855b4bf86982c..a298dc36f507c 100644 --- a/pkgs/development/python-modules/attrs/default.nix +++ b/pkgs/development/python-modules/attrs/default.nix @@ -3,22 +3,31 @@ , buildPythonPackage , fetchPypi , pythonOlder -, setuptools +, hatchling }: buildPythonPackage rec { pname = "attrs"; - version = "22.2.0"; - disabled = pythonOlder "3.6"; + version = "23.1.0"; + disabled = pythonOlder "3.7"; format = "pyproject"; src = fetchPypi { inherit pname version; - hash = "sha256-ySJ7/C8BmTwD9o2zfR0VyWkBiDI8BnxkHxo1ylgYX5k="; + hash = "sha256-YnmDbVgVE6JvG/I1+azTM7yRFWg/FPfo+uRsmPxQ4BU="; }; + patches = [ + # hatch-vcs and hatch-fancy-pypi-readme depend on pytest, which depends on attrs + ./remove-hatch-plugins.patch + ]; + + postPatch = '' + substituteAllInPlace pyproject.toml + ''; + nativeBuildInputs = [ - setuptools + hatchling ]; outputs = [ @@ -47,6 +56,7 @@ buildPythonPackage rec { meta = with lib; { description = "Python attributes without boilerplate"; homepage = "https://github.com/python-attrs/attrs"; + changelog = "https://github.com/python-attrs/attrs/releases/tag/${version}"; license = licenses.mit; maintainers = with maintainers; [ ]; }; diff --git a/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch b/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch new file mode 100644 index 0000000000000..7d7b83a366e0b --- /dev/null +++ b/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch @@ -0,0 +1,74 @@ +diff --git a/pyproject.toml b/pyproject.toml +index fb8fae3..998211f 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,7 +1,7 @@ + # SPDX-License-Identifier: MIT + + [build-system] +-requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme"] ++requires = ["hatchling"] + build-backend = "hatchling.build" + + +@@ -26,7 +26,8 @@ classifiers = [ + "Typing :: Typed", + ] + dependencies = ["importlib_metadata;python_version<'3.8'"] +-dynamic = ["version", "readme"] ++dynamic = ["readme"] ++version = "@version@" + + [project.optional-dependencies] + tests-no-zope = [ +@@ -67,50 +68,9 @@ Changelog = "https://www.attrs.org/en/stable/changelog.html" + Funding = "https://github.com/sponsors/hynek" + Tidelift = "https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=pypi" + +- +-[tool.hatch.version] +-source = "vcs" +-raw-options = { local_scheme = "no-local-version" } +- + [tool.hatch.build.targets.wheel] + packages = ["src/attr", "src/attrs"] + +-[tool.hatch.metadata.hooks.fancy-pypi-readme] +-content-type = "text/markdown" +- +-# PyPI doesn't support the tag. +-[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +-text = """

+- +- attrs +- +-

+-""" +- +-[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +-path = "README.md" +-start-after = "" +- +-[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +-text = """ +- +-## Release Information +- +-""" +- +-[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +-path = "CHANGELOG.md" +-pattern = "\n(###.+?\n)## " +- +-[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] +-text = """ +- +---- +- +-[Full changelog](https://www.attrs.org/en/stable/changelog.html) +-""" +- +- + # Make coverage play nicely with pytest-xdist. + [tool.hatch.build.targets.wheel.hooks.autorun] + dependencies = ["hatch-autorun"]