chore: adopt learning-first charter and UTC run versions

This commit is contained in:
Hermes Agent
2026-10-20 15:57:54 +00:00
parent 9dfd777c41
commit dd7e8b8b20
20 changed files with 138 additions and 47 deletions
+45
View File
@@ -0,0 +1,45 @@
#!/usr/bin/env python3
"""Stamp a development/release run once, using its current UTC date and time.
Run before building: python3 tools/stamp_version.py && make
Ordinary rebuilds and validation retain the stamp for reproducibility.
Historical release notes and changelog entries are deliberately not rewritten.
"""
from datetime import datetime, timezone
from pathlib import Path
import re
ROOT = Path(__file__).resolve().parents[1]
CURRENT_DOCS = (
"CURRENT_STATUS.md", "CLASSROOM_READINESS.md", "CLI.md", "SPEC.md",
"FINAL_RELEASE_CHECKLIST.md", "WEB_SERVER_PLAN.md", "GRAPHICS.md",
"PERFORMANCE.md", "COMPLETE_PLATFORM_ROADMAP.md", "SDL12.md",
"V1_16_PACKAGES_PROJECTS.md",
)
def main():
source = ROOT / "src/claro.c"
match = re.search(r'#define CLARO_VERSION "Claro ([^"\n]+)"', source.read_text())
if not match:
raise SystemExit("Cannot find CLARO_VERSION; no files changed")
previous = match.group(1)
version = datetime.now(timezone.utc).strftime("v%Y.%m.%d.%H%M%S")
paths = [source, ROOT / "README.md"]
paths += sorted((ROOT / "tools").glob("*.py"))
paths += [ROOT / "docs" / name for name in CURRENT_DOCS]
updates = []
for path in paths:
if path == Path(__file__).resolve() or not path.exists():
continue
old = path.read_text(encoding="utf-8")
new = old.replace(previous, version)
if new != old:
updates.append((path, new))
for path, content in updates:
path.write_text(content, encoding="utf-8")
print(f"Claro {version} (UTC); updated {len(updates)} current source/docs/validator files")
if __name__ == "__main__":
main()