Skip to content

Commit 1e22432

Browse files
migrate setuptools config to pyproject.toml
1 parent a5fdfcf commit 1e22432

File tree

3 files changed

+111
-82
lines changed

3 files changed

+111
-82
lines changed

pyproject.toml

Lines changed: 89 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,92 @@
11
[build-system]
2+
build-backend = "setuptools.build_meta"
23
requires = [
3-
"setuptools>=45",
4-
"packaging>=20.0",
5-
"typing_extensions",
4+
"packaging>=20",
5+
"setuptools>=45",
6+
"typing_extensions",
67
]
7-
build-backend = "setuptools.build_meta"
8+
9+
[project]
10+
dynamic = ["version"]
11+
name = "setuptools-scm"
12+
description = "the blessed package to manage your versions by scm tags"
13+
readme = "README.rst"
14+
license.file = "LICENSE"
15+
authors = [
16+
{name="Ronny Pfannschmidt", email="[email protected]"}
17+
]
18+
requires-python = ">=3.7"
19+
classifiers = [
20+
"Development Status :: 5 - Production/Stable",
21+
"Intended Audience :: Developers",
22+
"License :: OSI Approved :: MIT License",
23+
"Programming Language :: Python",
24+
"Programming Language :: Python :: 3",
25+
"Programming Language :: Python :: 3 :: Only",
26+
"Programming Language :: Python :: 3.7",
27+
"Programming Language :: Python :: 3.8",
28+
"Programming Language :: Python :: 3.9",
29+
"Programming Language :: Python :: 3.10",
30+
"Programming Language :: Python :: 3.11",
31+
"Topic :: Software Development :: Libraries",
32+
"Topic :: Software Development :: Version Control",
33+
"Topic :: System :: Software Distribution",
34+
"Topic :: Utilities",
35+
]
36+
dependencies = [
37+
'importlib-metadata; python_version < "3.8"',
38+
"packaging>=20",
39+
"setuptools",
40+
'tomli>=1; python_version < "3.11"',
41+
"typing-extensions",
42+
]
43+
[project.urls]
44+
repository = "https://github.com/pypa/setuptools_scm/"
45+
46+
[project.entry-points."distutils.setup_keywords"]
47+
use_scm_version = "setuptools_scm.integration:version_keyword"
48+
49+
[project.entry-points."setuptools.file_finders"]
50+
setuptools_scm = "setuptools_scm.integration:find_files"
51+
52+
[project.entry-points."setuptools.finalize_distribution_options"]
53+
setuptools_scm = "setuptools_scm.integration:infer_version"
54+
55+
[project.entry-points."setuptools_scm.files_command"]
56+
".git" = "setuptools_scm.file_finder_git:git_find_files"
57+
".hg" = "setuptools_scm.file_finder_hg:hg_find_files"
58+
59+
[project.entry-points."setuptools_scm.files_command_fallback"]
60+
".git_archival.txt" = "setuptools_scm.file_finder_git:git_archive_find_files"
61+
".hg_archival.txt" = "setuptools_scm.file_finder_hg:hg_archive_find_files"
62+
63+
[project.entry-points."setuptools_scm.local_scheme"]
64+
dirty-tag = "setuptools_scm.version:get_local_dirty_tag"
65+
no-local-version = "setuptools_scm.version:get_no_local_node"
66+
node-and-date = "setuptools_scm.version:get_local_node_and_date"
67+
node-and-timestamp = "setuptools_scm.version:get_local_node_and_timestamp"
68+
69+
[project.entry-points."setuptools_scm.parse_scm"]
70+
".git" = "setuptools_scm.git:parse"
71+
".hg" = "setuptools_scm.hg:parse"
72+
73+
[project.entry-points."setuptools_scm.parse_scm_fallback"]
74+
".git_archival.txt" = "setuptools_scm.git:parse_archival"
75+
".hg_archival.txt" = "setuptools_scm.hg:parse_archival"
76+
PKG-INFO = "setuptools_scm.hacks:parse_pkginfo"
77+
pip-egg-info = "setuptools_scm.hacks:parse_pip_egg_info"
78+
"pyproject.toml" = "setuptools_scm.hacks:fallback_version"
79+
"setup.py" = "setuptools_scm.hacks:fallback_version"
80+
81+
[project.entry-points."setuptools_scm.version_scheme"]
82+
"calver-by-date" = "setuptools_scm.version:calver_by_date"
83+
"guess-next-dev" = "setuptools_scm.version:guess_next_dev_version"
84+
"no-guess-dev" = "setuptools_scm.version:no_guess_dev_version"
85+
"post-release" = "setuptools_scm.version:postrelease_version"
86+
"python-simplified-semver" = "setuptools_scm.version:simplified_semver_version"
87+
"release-branch-semver" = "setuptools_scm.version:release_branch_semver_version"
88+
89+
90+
91+
[tool.setuptools.packages.find]
92+
where = ["src"]

setup.cfg

Lines changed: 0 additions & 78 deletions
This file was deleted.

testing/test_regressions.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
from __future__ import annotations
22

33
import os
4+
import pprint
45
import subprocess
56
import sys
7+
from typing import Callable
8+
9+
if sys.version_info >= (3, 8):
10+
distribution: Callable[[str], EntryPoint]
11+
from importlib.metadata import distribution, EntryPoint
12+
else:
13+
from importlib_metadata import distribution, EntryPoint
614
from pathlib import Path
715

816
import pytest
@@ -103,3 +111,17 @@ def test_case_mismatch_on_windows_git(tmp_path: Path) -> None:
103111
do("git init", camel_case_path)
104112
res = parse(str(camel_case_path).lower(), Configuration())
105113
assert res is not None
114+
115+
116+
def test_entrypoints_load() -> None:
117+
d = distribution("setuptools-scm") # type: ignore [no-untyped-call]
118+
119+
eps = d.entry_points
120+
failed: list[tuple[EntryPoint, Exception]] = []
121+
for ep in eps:
122+
try:
123+
ep.load()
124+
except Exception as e:
125+
failed.append((ep, e))
126+
if failed:
127+
pytest.fail(pprint.pformat(failed))

0 commit comments

Comments
 (0)