Start the arc42 contract and publish the first ADR set
Add the owner-facing publication contract, a regenerable ADR review ledger, and publication entries for this repo's ADR-0001 plus the eight ready railiance-master ADRs.
This commit is contained in:
parent
7a24e9107f
commit
a8fb62a3bc
34 changed files with 9669 additions and 28 deletions
78
tests/test_adr_review_ledger.py
Normal file
78
tests/test_adr_review_ledger.py
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
|
||||
ROOT = Path(__file__).parents[1]
|
||||
sys.path.insert(0, str(ROOT / "tools"))
|
||||
from adr_review_ledger import build_ledger
|
||||
|
||||
|
||||
class AdrReviewLedgerTest(unittest.TestCase):
|
||||
def test_maps_inventory_and_flags_bare_adr_collisions(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory)
|
||||
left = root / "alpha"
|
||||
right = root / "beta"
|
||||
(left / "docs/adr").mkdir(parents=True)
|
||||
(right / "docs/adr").mkdir(parents=True)
|
||||
(left / "docs/adr/ADR-0001-one.md").write_text(
|
||||
"---\nid: ALPHA-ADR-0001\ntitle: One\nstatus: accepted\n"
|
||||
"owner: alpha\nrevision: accepted-1\n"
|
||||
"last_reviewed: \"2026-08-18\"\nreview_interval: 6m\n---\n# One\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
(right / "docs/adr/ADR-0001-two.md").write_text("# Two\n", encoding="utf-8")
|
||||
config = root / "source-inventory.config.json"
|
||||
config.write_text(
|
||||
json.dumps(
|
||||
{
|
||||
"schema_version": 1,
|
||||
"repositories": {
|
||||
"alpha": {"branch": "main", "remote": "https://example.invalid/a.git", "selectors": ["docs/adr/*.md"]},
|
||||
"beta": {"branch": "main", "remote": "https://example.invalid/b.git", "selectors": ["docs/adr/*.md"]},
|
||||
},
|
||||
}
|
||||
),
|
||||
encoding="utf-8",
|
||||
)
|
||||
inventory = root / "source-inventory.json"
|
||||
inventory.write_text(
|
||||
json.dumps(
|
||||
{
|
||||
"schema_version": 1,
|
||||
"sources": [
|
||||
{
|
||||
"source_repo": "alpha",
|
||||
"source_path": "docs/adr/ADR-0001-one.md",
|
||||
"disposition": "metadata-pending",
|
||||
"reason": "pending",
|
||||
},
|
||||
{
|
||||
"source_repo": "beta",
|
||||
"source_path": "docs/adr/ADR-0001-two.md",
|
||||
"disposition": "metadata-pending",
|
||||
"reason": "pending",
|
||||
},
|
||||
],
|
||||
}
|
||||
),
|
||||
encoding="utf-8",
|
||||
)
|
||||
ledger = build_ledger(
|
||||
inventory, config, policy_root=root, source_root=root
|
||||
)
|
||||
rows = {f"{row['source_repo']}/{row['source_path']}": row for row in ledger["rows"]}
|
||||
self.assertEqual(2, len(rows))
|
||||
self.assertEqual([], rows["alpha/docs/adr/ADR-0001-one.md"]["missing_fields"])
|
||||
self.assertIn("id", rows["beta/docs/adr/ADR-0001-two.md"]["missing_fields"])
|
||||
self.assertEqual("ADR-0001", rows["alpha/docs/adr/ADR-0001-one.md"]["bare_adr"])
|
||||
self.assertEqual(
|
||||
["beta/docs/adr/ADR-0001-two.md"],
|
||||
rows["alpha/docs/adr/ADR-0001-one.md"]["bare_adr_collisions"],
|
||||
)
|
||||
self.assertEqual("unreviewed", rows["alpha/docs/adr/ADR-0001-one.md"]["proposed_disposition"])
|
||||
Loading…
Add table
Add a link
Reference in a new issue