CultLib/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 089859deb4 Write and enforce the semver policy, per operator ruling on 1.0.60
1.0.60 removed public API (CultInspectorAssetPath) under a patch bump; its
own changelog says "Breaking" and the version number lied. Operator ruling:
semver is policy, strictly, for every published package family.

docs/semver-policy.md states what counts as breaking per surface (managed
API, Unity inspector attributes, CultCache wire format/store compatibility,
CultNet protocol, native bridge exports), the 0.y.z pre-1.0 convention, tag
naming, and required changelog shape. Records the 1.0.60 scar as history;
does not renumber it.

scripts/check-changelog-semver.mjs is the mechanical check: refuses a
changelog "### Breaking" section under too small a bump, and refuses a
version that skips, reverses, or repeats the previous published tag. Skips
re-litigating a version that is already tagged (rebuilding immutable
history is not a release action). Wired into publish-packages.yml for the
four npm/PyPI packages, and into build-unity-package.ps1 (cultlib),
packages/cultmath/scripts/build-unity-package.ps1 (cultmath), and a new
scripts/verify-caching-unity-release.ps1 (caching.unity has no build script
of its own to hook into).

18 node:test cases cover the required table (breaking+major/minor/patch,
non-breaking, 0.y.z, skip, downgrade) plus CLI-level git-tag resolution.
Hand-mutated each rule (bump classification, pre-1.0 lane requirement,
breaking-heading detection, breaking early-return, already-published skip)
and confirmed each kill, then restored byte-exact. No mutation harness is
committed; CultLib has none today.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 22:03:22 +02:00
..
cultmesh-provider-session.md Add provider session wire transport 2026-07-14 23:47:30 +01:00
cultnet-selection-cut.md Rule the reference check onto read now and write later 2026-09-17 01:44:09 +02:00
cultnet-transport-parity.md Split the Python runtime into cultcache-py, cultnet-py, cultmesh-py 2026-09-10 13:10:47 +02:00
nuget-packaging.md Write and enforce the semver policy, per operator ruling on 1.0.60 2026-09-17 22:03:22 +02:00
parked-features.md Note that CultManagedDocument is parked with SoA; state the page load rule 2026-09-13 17:17:14 +02:00
persisted-record-encoding.md Write down that a stored record's encoding is part of its contract 2026-09-10 01:18:45 +02:00
python-runtime-parity.md Split the Python runtime into cultcache-py, cultnet-py, cultmesh-py 2026-09-10 13:10:47 +02:00
runtime-parity-scope.md Park the CultCache SoA table at parked/cultcache-soa 2026-09-13 16:21:25 +02:00
semver-policy.md Write and enforce the semver policy, per operator ruling on 1.0.60 2026-09-17 22:03:22 +02:00
typescript-quic-realtime-cut.md Record the pass that beat the bands with a clamp 2026-09-17 02:36:37 +02:00
typescript-quic-realtime-target.md Add the TypeScript QUIC realtime plane migration target 2026-09-15 20:02:33 +02:00