From bd3e702bca1049b851231ff4e84bc721e2a428d4 Mon Sep 17 00:00:00 2001 From: Ben Finney Date: Mar 08 2023 07:02:21 +0000 Subject: [PATCH 1/2] Add dependency on PyPA's ‘packaging’ library. The package bundled in ‘setuptools.extern.packaging’ is to help make that package self-contained, but is not a supported API. This change migrates our interface to the third-party maintained ‘packaging’ package directly. --- diff --git a/pyproject.toml b/pyproject.toml index 1ecdc29..2c8cbb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,9 @@ # Minimum requirements for the build system. requires = [ "setuptools >=62.4.0", - "docutils"] + "packaging", + "docutils", + ] # Path to the Python object to perform the build. build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index c7746ce..fd3f6fd 100644 --- a/setup.py +++ b/setup.py @@ -60,9 +60,12 @@ setup_kwargs = dict( zip_safe=False, setup_requires=[ "docutils", + "packaging", + "setuptools", ], install_requires=[ "setuptools >=62.4.0", + "packaging", "lockfile >=0.10", ], python_requires=">=3", From 3bbc46967d35cd7e05677018bdc9d552efaeea3e Mon Sep 17 00:00:00 2001 From: Ben Finney Date: Mar 08 2023 07:02:47 +0000 Subject: [PATCH 2/2] Use explicitly-maintained ‘packaging.version’ for version string parsing. --- diff --git a/ChangeLog b/ChangeLog index bba4b5a..f5ee1e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,9 +14,14 @@ Version NEXT :Released: FUTURE :Maintainer: UNKNOWN -Changes: +Bugs Fixed: + +* Migrate to use the explicitly-maintained ‘packaging’ library. + + The package bundled in ‘setuptools.extern.packaging’ is to help make that + package self-contained, but is not a supported API. -* None. + Closes: Pagure #73. Thanks to Michał Górny for the report. Version 3.0.1 diff --git a/test_version.py b/test_version.py index c43cd36..d6095e4 100644 --- a/test_version.py +++ b/test_version.py @@ -20,10 +20,10 @@ import unittest.mock import docutils import docutils.nodes import docutils.writers +from packaging.version import InvalidVersion import setuptools import setuptools.command import setuptools.dist -from setuptools.extern.packaging.version import InvalidVersion import testscenarios import testtools diff --git a/version.py b/version.py index 20d3ef3..2d7d048 100644 --- a/version.py +++ b/version.py @@ -31,12 +31,12 @@ import re import sys import textwrap +import packaging.version import setuptools import setuptools.command.build import setuptools.command.build_py import setuptools.command.egg_info import setuptools.dist -import setuptools.extern.packaging.version def ensure_class_bases_begin_with(namespace, class_name, base_class): @@ -186,7 +186,7 @@ class ChangeLogEntry: # A valid non-version value. return None - valid_version = setuptools.extern.packaging.version.Version(value) + valid_version = packaging.version.Version(value) @classmethod def validate_maintainer(cls, value):