From 38b1456a4229321c879a1c3b3ff427864893fa26 Mon Sep 17 00:00:00 2001 From: AIGC Director Kit contributors Date: Wed, 12 Aug 2026 15:18:40 +0800 Subject: [PATCH 1/2] release version 0.2.0 --- CHANGELOG.md | 2 +- README.md | 2 +- pyproject.toml | 2 +- src/aigc_director_kit/__init__.py | 2 +- tests/test_version.py | 19 +++++++++++++++++++ 5 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 tests/test_version.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b9ae48..8d96f19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## Unreleased +## [0.2.0] - 2026-08-12 - Added the `aigc-director-skill-workflow` handoff contract and schema. - Added `validate-workflow` for structural validation and deterministic action dry-runs. diff --git a/README.md b/README.md index e179f43..81343e5 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ AIGC 视频返工经常不是“不会生成”,而是镜头合同没有锁定 - 自然语言动作请求超出动作库,却被悄悄编成了不存在的动作; - 技术预演、正式生成和成片 QC 被混成一个结论。 -本项目 v0.1 先把最稳定、最容易复用的部分做成工具: +本项目 v0.2 先把最稳定、最容易复用的部分做成工具: 1. `validate-plan`:校验镜头计划的结构、时长、相机关键点和预算,并提示相邻镜头的出场状态与入场状态是否需要人工确认; 2. `list-actions`:从用户自己的动作目录检索动作; diff --git a/pyproject.toml b/pyproject.toml index ef7d85b..99acdaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "aigc-director-kit" -version = "0.1.4" +version = "0.2.0" description = "Deterministic contracts for AI animation shot planning and action selection." readme = "README.md" requires-python = ">=3.10" diff --git a/src/aigc_director_kit/__init__.py b/src/aigc_director_kit/__init__.py index 7197bfd..2f61c96 100644 --- a/src/aigc_director_kit/__init__.py +++ b/src/aigc_director_kit/__init__.py @@ -25,4 +25,4 @@ "validate_workflow_file", ] -__version__ = "0.1.4" +__version__ = "0.2.0" diff --git a/tests/test_version.py b/tests/test_version.py new file mode 100644 index 0000000..94ce8a0 --- /dev/null +++ b/tests/test_version.py @@ -0,0 +1,19 @@ +import tomllib +import unittest +from pathlib import Path + +from aigc_director_kit import __version__ + + +ROOT = Path(__file__).resolve().parents[1] + + +class VersionTests(unittest.TestCase): + def test_runtime_and_project_versions_match(self) -> None: + project = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8")) + self.assertEqual(__version__, "0.2.0") + self.assertEqual(__version__, project["project"]["version"]) + + +if __name__ == "__main__": + unittest.main() From 70c5b87efe6a80bfbc2641843c6f82c985c8bb58 Mon Sep 17 00:00:00 2001 From: AIGC Director Kit contributors Date: Wed, 12 Aug 2026 15:21:14 +0800 Subject: [PATCH 2/2] fix version test on Python 3.10 --- tests/test_version.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/test_version.py b/tests/test_version.py index 94ce8a0..b0fc90a 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -1,4 +1,4 @@ -import tomllib +import re import unittest from pathlib import Path @@ -10,9 +10,11 @@ class VersionTests(unittest.TestCase): def test_runtime_and_project_versions_match(self) -> None: - project = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8")) + project_text = (ROOT / "pyproject.toml").read_text(encoding="utf-8") + project_version = re.search(r'^version\s*=\s*"([^"]+)"\s*$', project_text, re.MULTILINE) + self.assertIsNotNone(project_version) self.assertEqual(__version__, "0.2.0") - self.assertEqual(__version__, project["project"]["version"]) + self.assertEqual(__version__, project_version.group(1)) if __name__ == "__main__":