diff --git a/Makefile b/Makefile index 9940a14e..9ce7c5ee 100644 --- a/Makefile +++ b/Makefile @@ -145,7 +145,7 @@ doc-watch: # Build documentation only from src. doc-build: - pdm run sphinx-build -a docs $(PUBLIC_DIR) + pdm run sphinx-build --fail-on-warning --write-all docs $(PUBLIC_DIR) # Generate html coverage reports with badge. doc-coverage: test-run diff --git a/pdm.dev.lock b/pdm.dev.lock index 9f296e7d..a1e96443 100644 --- a/pdm.dev.lock +++ b/pdm.dev.lock @@ -5,7 +5,7 @@ groups = ["doc", "lint", "test"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:bb122c24e17decd9d1d6c8b6bf2bad444717e0ca671e262ed2ddde2be4851df2" +content_hash = "sha256:3b3cf93a57ae97f3f868cff27773abbd10f762b7d68b0a1bc24e1656994431e9" [[metadata.targets]] requires_python = ">=3.9" diff --git a/pdm.lock b/pdm.lock index 11e6d98f..350cb5fd 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:bb122c24e17decd9d1d6c8b6bf2bad444717e0ca671e262ed2ddde2be4851df2" +content_hash = "sha256:3b3cf93a57ae97f3f868cff27773abbd10f762b7d68b0a1bc24e1656994431e9" [[metadata.targets]] requires_python = ">=3.9" diff --git a/pyproject.toml b/pyproject.toml index 77cb8eaa..46abf681 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,8 +37,8 @@ dynamic = [ "version", ] dependencies = [ - "click", - "pydantic-settings", + "click>=8.1.8", + "pydantic-settings>=2.7.1", ] urls.documentation = "https://serious-scaffold.github.io/ss-python" urls.issue = "https://github.com/serious-scaffold/ss-python/issues" @@ -47,22 +47,22 @@ scripts.ss-python-cli = "ss_python.cli:cli" [dependency-groups] test = [ - "coverage", - "pytest", + "coverage>=7.6.10", + "pytest>=8.3.4", ] doc = [ - "autodoc-pydantic", - "coverage", - "furo", - "mypy[reports]", - "myst-parser", - "pytest", - "sphinx", - "sphinx-click", - "sphinx-design", + "autodoc-pydantic>=2.2.0", + "coverage>=7.6.10", + "furo>=2024.8.6", + "mypy[reports]>=1.14.1", + "myst-parser>=3.0.1", + "pytest>=8.3.4", + "sphinx>=7.4.7", + "sphinx-click>=6.0.0", + "sphinx-design>=0.6.1", ] lint = [ - "mypy", + "mypy>=1.14.1", ] [tool.pdm] diff --git a/src/ss_python/cli.py b/src/ss_python/cli.py index 18c06c6b..7b9f642d 100644 --- a/src/ss_python/cli.py +++ b/src/ss_python/cli.py @@ -4,6 +4,7 @@ @click.group() +@click.version_option() def cli() -> None: """CLI for Serious Scaffold Python.""" diff --git a/template/Makefile.jinja b/template/Makefile.jinja index 4b546a1b..b6a69d23 100644 --- a/template/Makefile.jinja +++ b/template/Makefile.jinja @@ -155,7 +155,7 @@ doc-watch: # Build documentation only from src. doc-build: - pdm run sphinx-build -a docs $(PUBLIC_DIR) + pdm run sphinx-build --fail-on-warning --write-all docs $(PUBLIC_DIR) # Generate html coverage reports with badge. doc-coverage: test-run diff --git a/template/pyproject.toml.jinja b/template/pyproject.toml.jinja index 8ea22a62..67362858 100644 --- a/template/pyproject.toml.jinja +++ b/template/pyproject.toml.jinja @@ -78,8 +78,8 @@ dynamic = [ "version", ] dependencies = [ - "click", - "pydantic-settings", + "click>=8.1.8", + "pydantic-settings>=2.7.1", ] urls.documentation = "https://{{ page_url() }}" {% if repo_platform == 'github' %} @@ -92,22 +92,22 @@ scripts.{{ package_name }}-cli = "{{ module_name }}.cli:cli" [dependency-groups] test = [ - "coverage", - "pytest", + "coverage>=7.6.10", + "pytest>=8.3.4", ] doc = [ - "autodoc-pydantic", - "coverage", - "furo", - "mypy[reports]", - "myst-parser", - "pytest", - "sphinx", - "sphinx-click", - "sphinx-design", + "autodoc-pydantic>=2.2.0", + "coverage>=7.6.10", + "furo>=2024.8.6", + "mypy[reports]>=1.14.1", + "myst-parser>=3.0.1", + "pytest>=8.3.4", + "sphinx>=7.4.7", + "sphinx-click>=6.0.0", + "sphinx-design>=0.6.1", ] lint = [ - "mypy", + "mypy>=1.14.1", ] [tool.pdm] diff --git a/template/src/{{ module_name }}/cli.py.jinja b/template/src/{{ module_name }}/cli.py.jinja index 8538098f..c85322e5 100644 --- a/template/src/{{ module_name }}/cli.py.jinja +++ b/template/src/{{ module_name }}/cli.py.jinja @@ -4,6 +4,7 @@ import click @click.group() +@click.version_option() def cli() -> None: """CLI for {{ project_name }}."""