From d878a0f9b81eb75141043aaae6878864b90ff79b Mon Sep 17 00:00:00 2001 From: beatz174-bit Date: Wed, 13 May 2026 08:19:39 +1000 Subject: [PATCH] docs: make compose inventory generation deterministic --- docs/generated/compose-inventory.md | 2 +- docs/public/compose-inventory.md | 2 +- scripts/docs/generate-compose-inventory.py | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/generated/compose-inventory.md b/docs/generated/compose-inventory.md index fd07b2a..c079bfa 100644 --- a/docs/generated/compose-inventory.md +++ b/docs/generated/compose-inventory.md @@ -1,6 +1,6 @@ # Docker Compose Inventory -Generated: 2026-05-12T22:04:13Z +Source fingerprint: `d6aa78e3317a` ## Summary diff --git a/docs/public/compose-inventory.md b/docs/public/compose-inventory.md index fd07b2a..c079bfa 100644 --- a/docs/public/compose-inventory.md +++ b/docs/public/compose-inventory.md @@ -1,6 +1,6 @@ # Docker Compose Inventory -Generated: 2026-05-12T22:04:13Z +Source fingerprint: `d6aa78e3317a` ## Summary diff --git a/scripts/docs/generate-compose-inventory.py b/scripts/docs/generate-compose-inventory.py index e705372..00e46d9 100644 --- a/scripts/docs/generate-compose-inventory.py +++ b/scripts/docs/generate-compose-inventory.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 +import hashlib import sys, yaml -from datetime import datetime, timezone def md(v): return str(v).replace('|','\\|') if v is not None else '' @@ -9,7 +9,9 @@ with open(inp) as f: c=yaml.safe_load(f) or {} svcs=c.get('services',{}) or {} nets=c.get('networks',{}) or {} vols=c.get('volumes',{}) or {} -lines=["# Docker Compose Inventory","",f"Generated: {datetime.now(timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ')}","","## Summary","","| Item | Count |","|---|---:|",f"| Services | {len(svcs)} |",f"| Networks | {len(nets)} |",f"| Volumes | {len(vols)} |","","## Services","","| Service | Container | Image | Build | Profiles | Networks | Ports | Restart |","|---|---|---|---|---|---|---|---|"] +raw=open(inp,'rb').read() +fingerprint=hashlib.sha256(raw).hexdigest()[:12] +lines=["# Docker Compose Inventory","",f"Source fingerprint: `{fingerprint}`","","## Summary","","| Item | Count |","|---|---:|",f"| Services | {len(svcs)} |",f"| Networks | {len(nets)} |",f"| Volumes | {len(vols)} |","","## Services","","| Service | Container | Image | Build | Profiles | Networks | Ports | Restart |","|---|---|---|---|---|---|---|---|"] for n,s in sorted(svcs.items()): build=s.get('build','') if isinstance(build,dict): build=build.get('context','')