diff --git a/src/towncrier/_project.py b/src/towncrier/_project.py index 9c887ff0..8e391ede 100644 --- a/src/towncrier/_project.py +++ b/src/towncrier/_project.py @@ -13,7 +13,7 @@ from importlib import import_module from types import ModuleType -from incremental import Version +from incremental import Version as IncrementalVersion def _get_package(package_dir: str, package: str) -> ModuleType: @@ -50,8 +50,12 @@ def get_version(package_dir: str, package: str) -> str: if isinstance(version, str): return version.strip() - if isinstance(version, Version): - return version.base().strip() + if isinstance(version, IncrementalVersion): + # FIXME:https://github.com/twisted/incremental/issues/81 + # Incremental uses `.rcN`. + # importlib uses `rcN` (without a dot separation). + # Here we make incremental work like importlib. + return version.base().strip().replace(".rc", "rc") if isinstance(version, tuple): return ".".join(map(str, version)).strip() @@ -76,7 +80,7 @@ def get_project_name(package_dir: str, package: str) -> str: if isinstance(version, str): return package.title() - if isinstance(version, Version): + if isinstance(version, IncrementalVersion): # Incremental has support for package names return version.package diff --git a/src/towncrier/test/test_project.py b/src/towncrier/test/test_project.py index c6880618..e55a3098 100644 --- a/src/towncrier/test/test_project.py +++ b/src/towncrier/test/test_project.py @@ -14,9 +14,9 @@ try: - from importlib.metadata import version + from importlib.metadata import version as metadata_version except ImportError: - version = None + metadata_version = None class VersionFetchingTests(TestCase): @@ -48,14 +48,14 @@ def test_tuple(self): version = get_version(temp, "mytestproja") self.assertEqual(version, "1.3.12") - @skipIf(version is None, "Needs importlib.metadata.") + @skipIf(metadata_version is None, "Needs importlib.metadata.") def test_incremental(self): """ An incremental Version __version__ is picked up. """ pkg = "../src" - self.assertEqual(version("towncrier"), get_version(pkg, "towncrier")) + self.assertEqual(metadata_version("towncrier"), get_version(pkg, "towncrier")) self.assertEqual("towncrier", get_project_name(pkg, "towncrier")) def _setup_missing(self):