@@ -6,7 +6,9 @@ readme = "README.md"
66license = " AGPL-3.0-or-later"
77license-files = [" LICENSE.txt" ]
88requires-python = " >=3.10,<3.14"
9- dynamic = [" version" ]
9+ # Managed by python-semantic-release (see [tool.semantic_release]). Do not
10+ # edit by hand; it is bumped automatically on merge to main.
11+ version = " 1.1.2"
1012classifiers = [
1113 " Development Status :: 3 - Alpha" ,
1214 " Intended Audience :: Developers" ,
@@ -80,15 +82,9 @@ tutorial = ["osw[dataimport]"]
8082all = [" osw[dataimport,DB,UI,S3,wikitext]" ]
8183
8284[build-system ]
83- requires = [" hatchling" , " hatch-vcs " ]
85+ requires = [" hatchling" ]
8486build-backend = " hatchling.build"
8587
86- [tool .hatch .version ]
87- source = " vcs"
88- # Preserve the setuptools-scm scheme the project used previously so tag-derived
89- # versions are identical (e.g. 1.1.2.post1.dev25+g<sha>).
90- raw-options = { version_scheme = " no-guess-dev" }
91-
9288[dependency-groups ]
9389dev = [
9490 # test stack
@@ -268,18 +264,24 @@ ignore = [
268264preview = true
269265
270266[tool .semantic_release ]
271- # No version_toml/version_variables: the package version is derived from
272- # the git tag by hatch-vcs, so semantic-release only computes the next
273- # version from the conventional commits, updates the changelog, commits,
274- # tags (vX.Y.Z) and creates the GitHub release. Publishing to PyPI happens
275- # in the same workflow run (on-release-main.yml).
267+ # python-semantic-release owns the version: it reads the conventional commits
268+ # on main, bumps the static version below and in CITATION.cff, updates the
269+ # changelog, relocks uv.lock, commits, tags (vX.Y.Z) and creates the GitHub
270+ # release. Publishing to PyPI happens in the same workflow run
271+ # (on-release-main.yml).
276272commit_parser = " conventional"
277273tag_format = " v{version}"
278274commit_message = " chore(release): v{version} [skip ci]"
279275# our history starts at v0.x; without this, PSR would jump a 0.x baseline
280276# straight to 1.0.0 (moot at >=1.0.0, kept for copy-paste safety)
281277allow_zero_version = true
282278exclude_commit_patterns = [''' chore\(release\):.*''' ]
279+ version_toml = [" pyproject.toml:project.version" ]
280+ version_variables = [" CITATION.cff:version" ]
281+ # relock so uv.lock's own pin of osw's version stays consistent, and include
282+ # the relocked file in the release commit
283+ build_command = " uv lock"
284+ assets = [" uv.lock" ]
283285
284286[tool .semantic_release .changelog ]
285287# prepend new versions at the insertion flag, keep the manual history below
0 commit comments