/ pyproject.toml
pyproject.toml
  1  [build-system]
  2  requires = ["pdm-backend"]
  3  build-backend = "pdm.backend"
  4  
  5  [project]
  6  name = "git-changelog"
  7  description = "Automatic Changelog generator using Jinja2 templates."
  8  authors = [{name = "Timothée Mazzucotelli", email = "dev@pawamoy.fr"}]
  9  license = {text = "ISC"}
 10  readme = "README.md"
 11  requires-python = ">=3.9"
 12  keywords = [
 13      "git",
 14      "changelog",
 15      "changelog-generator",
 16      "commit-style",
 17      "commit-convention",
 18  ]
 19  dynamic = ["version"]
 20  classifiers = [
 21      "Development Status :: 4 - Beta",
 22      "Intended Audience :: Developers",
 23      "Programming Language :: Python",
 24      "Programming Language :: Python :: 3",
 25      "Programming Language :: Python :: 3 :: Only",
 26      "Programming Language :: Python :: 3.9",
 27      "Programming Language :: Python :: 3.10",
 28      "Programming Language :: Python :: 3.11",
 29      "Programming Language :: Python :: 3.12",
 30      "Programming Language :: Python :: 3.13",
 31      "Programming Language :: Python :: 3.14",
 32      "Topic :: Documentation",
 33      "Topic :: Software Development",
 34      "Topic :: Software Development :: Documentation",
 35      "Topic :: Utilities",
 36      "Typing :: Typed",
 37  ]
 38  dependencies = [
 39      "appdirs>=1.4",
 40      "Jinja2>=2.10",
 41      "packaging>=24.0",
 42      "semver>=2.13",
 43      "tomli>=2.0; python_version < '3.11'",
 44      "typing-extensions>=4.9; python_version < '3.13'",
 45  ]
 46  
 47  [project.urls]
 48  Homepage = "https://pawamoy.github.io/git-changelog"
 49  Documentation = "https://pawamoy.github.io/git-changelog"
 50  Changelog = "https://pawamoy.github.io/git-changelog/changelog"
 51  Repository = "https://github.com/pawamoy/git-changelog"
 52  Issues = "https://github.com/pawamoy/git-changelog/issues"
 53  Discussions = "https://github.com/pawamoy/git-changelog/discussions"
 54  Gitter = "https://gitter.im/git-changelog/community"
 55  Funding = "https://github.com/sponsors/pawamoy"
 56  
 57  [project.scripts]
 58  git-changelog = "git_changelog.cli:main"
 59  
 60  [tool.pdm]
 61  version = {source = "scm"}
 62  
 63  [tool.pdm.build]
 64  package-dir = "src"
 65  editable-backend = "editables"
 66  
 67  # Include as much as possible in the source distribution, to help redistributors.
 68  excludes = ["**/.pytest_cache"]
 69  source-includes = [
 70      "config",
 71      "docs",
 72      "scripts",
 73      "share",
 74      "tests",
 75      "duties.py",
 76      "mkdocs.yml",
 77      "*.md",
 78      "LICENSE",
 79  ]
 80  
 81  [tool.pdm.build.wheel-data]
 82  # Manual pages can be included in the wheel.
 83  # Depending on the installation tool, they will be accessible to users.
 84  # pipx supports it, uv does not yet, see https://github.com/astral-sh/uv/issues/4731.
 85  data = [
 86      {path = "share/**/*", relative-to = "."},
 87  ]
 88  
 89  [dependency-groups]
 90  dev = [
 91      # dev
 92      "editables>=0.5",
 93  
 94      # maintenance
 95      "build>=1.2",
 96      "git-changelog>=2.5",
 97      "twine>=5.1",
 98  
 99      # ci
100      "duty>=1.4",
101      "ruff>=0.4",
102      "pytest>=8.2",
103      "pytest-cov>=5.0",
104      "pytest-randomly>=3.15",
105      "pytest-xdist>=3.6",
106      "mypy>=1.10",
107      "types-markdown>=3.6",
108      "types-pyyaml>=6.0",
109      "tomli-w>=1.0",
110  
111      # docs
112      "black>=24.4",
113      "markdown-callouts>=0.4",
114      "markdown-exec>=1.8",
115      "mkdocs>=1.6",
116      "mkdocs-coverage>=1.0",
117      "mkdocs-gen-files>=0.5",
118      "mkdocs-git-revision-date-localized-plugin>=1.2",
119      "mkdocs-literate-nav>=0.6",
120      "mkdocs-material>=9.5",
121      "mkdocs-minify-plugin>=0.8",
122      "mkdocstrings[python]>=0.25",
123      # YORE: EOL 3.10: Remove line.
124      "tomli>=2.0; python_version < '3.11'",
125  ]