-
-
Notifications
You must be signed in to change notification settings - Fork 236
Expand file tree
/
Copy pathpyproject.toml
More file actions
109 lines (93 loc) · 2.66 KB
/
pyproject.toml
File metadata and controls
109 lines (93 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# uv sync --all-packages --all-groups # Install all packages with all dependency groups
[project]
name = "vcs-versioning.workspace"
description = "workspace configuration for this monorepo"
version = "0.1+private"
requires-python = ">=3.10"
dependencies = [
"vcs-versioning",
"setuptools-scm",
]
[project.scripts]
create-release-proposal = "vcs_versioning_workspace.create_release_proposal:main"
[dependency-groups]
# PP006 / uv: aggregate groups for local development (members define their own test deps)
dev = [{ include-group = "docs" }, { include-group = "typing" }, { include-group = "release" }]
docs = [
"mkdocs",
"mkdocs-include-markdown-plugin",
"mkdocs-material",
"mkdocstrings[python]>=0.29", # 0.29 renamed import to inventories
"pygments",
"griffe-public-wildcard-imports",
]
typing = [
"types-setuptools",
]
release = [
"towncrier>=23.11.0",
"PyGithub>=2.0.0; sys_platform != 'win32'",
]
[tool.pytest.ini_options]
minversion = "8.2"
testpaths = ["setuptools-scm/testing_scm", "vcs-versioning/testing_vcs"]
xfail_strict = true
addopts = ["-ra", "--strict-config", "--strict-markers", "-p", "vcs_versioning.test_api"]
markers = [
"issue(id): reference to github issue",
"skip_commit: allows to skip committing in the helpers",
]
[tool.mypy]
enable_error_code = [
"ignore-without-code",
"redundant-expr",
"truthy-bool",
]
strict = true
warn_unused_configs = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_return_any = true
warn_unreachable = true
disallow_untyped_defs = true
disallow_any_generics = true
check_untyped_defs = true
no_implicit_reexport = true
# Workspace-specific paths
mypy_path = "vcs-versioning/src:setuptools-scm/src"
explicit_package_bases = true
# setup.py scripts add src/ at runtime; duplicate module name "setup" across packages
exclude = [
"^vcs-versioning/setup\\.py$",
"^setuptools-scm/setup\\.py$",
]
[tool.uv]
package = true
[tool.uv.workspace]
members = ["vcs-versioning", "setuptools-scm"]
[tool.uv.sources]
vcs-versioning = { workspace = true }
setuptools-scm = { workspace = true }
[tool.ruff]
lint.extend-select = ["UP", "I", "B"]
[tool.ruff.lint.per-file-ignores]
"vcs-versioning/setup.py" = ["E402"]
"setuptools-scm/setup.py" = ["E402"]
[tool.repo-review]
ignore = [
"PP002", # this is a uv workspace
"PP003", # this tool is drunk
"PP304", # log_cli shoudltn be the default
"PP309", # filterwarnings is evil unless needed, it should never be error
"PY007", # no to tasks
"PY005", # no tests folder for the workspace
"PY003", # each subproject has one
"GH103",
"GH212",
"MY100",
"PC111",
"PC160",
"PC170",
"PC180",
"PC901",
]