Files
091e5b7ec7 release: v2.1.0 (node consolidation & configuration cleanup) (#151)
Bump version 2.0.0 -> 2.1.0 and document the node consolidation (Knowledge Base
Loader folded into Configuration) and configuration cleanup (trimmed inputs,
plain-language tooltips). Update the release-readiness checks.

Co-authored-by: kunail0804 <kunail0804@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 20:55:20 +02:00

64 lines
2.1 KiB
Python

"""Release-readiness checks for Version 1 (issue #32)."""
from __future__ import annotations
import tomllib
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parent.parent
def _pyproject() -> dict:
return tomllib.loads((REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8"))
def test_version_is_2_1_0() -> None:
assert _pyproject()["project"]["version"] == "2.1.0"
def test_changelog_documents_current_version() -> None:
changelog = (REPO_ROOT / "CHANGELOG.md").read_text(encoding="utf-8")
assert "2.1.0" in changelog
def test_definition_of_done_exists() -> None:
assert (REPO_ROOT / "docs" / "definition_of_done.md").is_file()
def test_all_schema_files_present() -> None:
schema_files = {p.name for p in (REPO_ROOT / "schemas" / "json").glob("*.schema.json")}
expected = {
"scene.schema.json",
"character.schema.json",
"concept.schema.json",
"interaction.schema.json",
"metadata.schema.json",
"knowledge_base_entry.schema.json",
"resolved_tag.schema.json",
"configuration.schema.json",
}
assert expected <= schema_files
def test_knowledge_base_domain_files_present() -> None:
kb_files = {p.name for p in (REPO_ROOT / "knowledge_base").glob("*.json")}
# The by-domain layout from MASTER_SPEC §15.3.
for domain in ("appearance", "clothing", "anatomy", "expressions", "environments"):
assert f"{domain}.json" in kb_files
def test_default_config_and_prompt_shipped() -> None:
assert (REPO_ROOT / "config" / "default_config.json").is_file()
assert (REPO_ROOT / "prompts" / "analyzer_system_prompt.md").is_file()
def test_manifest_includes_data_directories() -> None:
manifest = (REPO_ROOT / "MANIFEST.in").read_text(encoding="utf-8")
for directory in ("schemas", "knowledge_base", "prompts", "config"):
assert directory in manifest
def test_schemas_are_declared_as_package_data() -> None:
package_data = _pyproject()["tool"]["setuptools"]["package-data"]
assert any("json" in pattern for pattern in package_data["schemas"])