chore: add setuptools-scm with version
All checks were successful
build / build (push) Successful in 2m14s

This commit is contained in:
张泊明518370910136 2025-06-02 20:22:41 -04:00
parent df5295258f
commit b90cf8c38f
GPG Key ID: D47306D7062CDA9D
5 changed files with 112 additions and 64 deletions

2
.gitignore vendored
View File

@ -160,3 +160,5 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
joj3_config_generator/_version.py

View File

@ -51,6 +51,15 @@ repos:
rev: 24.8.0
hooks:
- id: black
- repo: local
hooks:
- id: generate-version-file
name: generate _version.py
entry: pdm build --no-wheel
language: system
pass_filenames: false
always_run: true
# - repo: local
# hooks:
# - id: pytest-check

View File

@ -0,0 +1,8 @@
try:
from ._version import version as __version__
except ImportError:
__version__ = "0.0.0+development-untracked"
def get_version() -> str:
return __version__

View File

@ -6,6 +6,7 @@ import tomlkit
import typer
from typing_extensions import Annotated
from joj3_config_generator import get_version
from joj3_config_generator.generator import (
convert_joj1_conf,
convert_joj3_conf,
@ -19,7 +20,31 @@ from joj3_config_generator.loader import (
from joj3_config_generator.models.const import JOJ3_CONFIG_ROOT
from joj3_config_generator.utils.logger import logger
app = typer.Typer(add_completion=False)
app = typer.Typer(add_completion=False, name="joj3-forge")
def version_callback(value: bool) -> None:
if value:
print(f"{app.info.name} Version: {get_version()}")
raise typer.Exit()
@app.callback()
def common(
ctx: typer.Context,
version: Annotated[
Optional[bool],
typer.Option(
"--version",
help="Show the application version and exit.",
callback=version_callback,
is_eager=True,
),
] = None,
) -> None:
if ctx.resilient_parsing:
return
logger.info(f"Running '{ctx.invoked_subcommand}' command. Version: {get_version()}")
@app.command(hidden=True)

View File

@ -1,6 +1,6 @@
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
requires = ["pdm-backend", "setuptools>=64", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"
[project]
name = "JOJ3-config-generator"
@ -71,3 +71,7 @@ init_forbid_extra = true
init_typed = true
warn_required_dynamic_aliases = true
warn_untyped_fields = true
[tool.setuptools_scm]
write_to = "joj3_config_generator/_version.py"
fallback_version = "0.0.0+unknown"