McRogueFace/tools
John McCardle 50d6f1e5d2 build(docs): chain the release documentation pipeline into make release-docs
Every piece of this pipeline already existed -- generate_all_docs.sh,
generate_api_manifest.py, api_delta.py (with its --site-dir page resolver and its
--format gitea checklist), and the site's build_reference.py / build_library.py,
which already knew how to read this repo. Nothing chained them. So the site's
generated reference sat 26 engine commits behind, stamped verified_commit b6720f6,
and nothing noticed or could have noticed.

  make docs             regenerate man page, API reference, stubs, manifest
  make stamp-snippets   re-run the docs snippets; stamp what actually happened
  make check-snippets   CI gate: fail on a broken snippet or a stale stamp
  make api-delta        what changed, and which site pages that obligates
  make release-docs     all of it, for cutting a tag

release-docs deliberately does not commit and does not touch the hand-written
pages. It refreshes what is derived, proves the published samples still run,
rebuilds the site's generated half against this engine, and prints the checklist of
curated pages the API change obliges you to revisit. The judgment stays with a
human; only the mechanical parts are mechanical.

Two ref-shaped traps, both hit while building this:

  * BASE_REF and RELEASE_REF are different refs and I had conflated them. The delta
    is measured FROM the previous release; the site's source links are pinned TO the
    tag being cut. One variable could not be both.

  * api_delta now distinguishes "this ref predates the manifest" from "this ref is
    broken". 0.2.8 is older than the manifest infra (54624b3), so it has no baseline
    -- every object would read as "added", which is noise, not a delta. It says so
    and exits clean. An unknown ref is still an error.

stamp_snippets --check compares only the CLAIMS a header makes (status, objects),
never `verified`. That field records the engine a snippet was last confirmed
against -- provenance, not a freshness assertion. Had --check demanded it equal
HEAD, every commit would have invalidated all 130 stamps and the gate would have
cried wolf until people stopped listening.

Running it regenerated all 52 reference pages against the current engine, which
cleared every stale UIGrid / compute_astar / gridstate mention the docs audit found
in the generated tree -- the engine's docstrings had been right for weeks; the site
had simply never been rebuilt.
2026-07-14 18:33:31 -04:00
..
hooks Untrack generated docs; add API manifest infra and pre-commit hook 2026-07-11 20:57:31 -04:00
api_delta.py build(docs): chain the release documentation pipeline into make release-docs 2026-07-14 18:33:31 -04:00
audit_pymethoddef.py Add tools/audit_pymethoddef.py - MCRF_METHOD/MCRF_PROPERTY compliance auditor 2026-04-18 12:30:25 -04:00
build_debug_libs.sh Fix build_debug_libs.sh flag quoting so --asan/--tsan can rebuild 2026-06-21 16:44:33 -04:00
capture_audio_synth_header.py Fix capture_audio_synth_header.py for headless --exec mode 2026-04-18 23:25:17 -04:00
check_frozen_docstrings.sh Add docstring-macro validation scripts for #314 F15 2026-06-21 00:11:15 -04:00
generate_all_docs.sh Wire strict frozen-docstring gate into the doc pipeline (#314 F15) 2026-06-21 06:45:11 -04:00
generate_api_manifest.py fix(bindings): make dynamic module attributes dir()-discoverable 2026-07-13 23:47:04 -04:00
generate_color_table.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
generate_dynamic_docs.py fix(engine): headless step() is a full simulation frame; --exec can no longer hang 2026-07-14 06:37:52 -04:00
generate_man_page.sh docs: Complete Phase 7 documentation system with parser fixes and man pages 2025-10-30 21:20:50 -04:00
generate_stubs.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
generate_stubs_v2.py fix(stubs): emit a parseable .pyi when a return type is authored as prose 2026-07-14 07:29:56 -04:00
package.sh Untrack generated docs; add API manifest infra and pre-commit hook 2026-07-11 20:57:31 -04:00
package_stdlib.py distribution packaging 2026-01-09 12:00:59 -05:00
stamp_snippets.py build(docs): chain the release documentation pipeline into make release-docs 2026-07-14 18:33:31 -04:00
stdlib_modules.yaml distribution packaging 2026-01-09 12:00:59 -05:00
test_link_transform.py feat: add link transformation to documentation generator 2025-10-30 11:39:54 -04:00
test_vector_docs.py feat: convert PyVector properties to use macros 2025-10-30 11:33:49 -04:00
ui_methods_documentation.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
untrack_generated_docs.sh Untrack generated docs; add API manifest infra and pre-commit hook 2026-07-11 20:57:31 -04:00
validate_file_docstrings.sh Add docstring-macro validation scripts for #314 F15 2026-06-21 00:11:15 -04:00