Skip to content

docs(build): add make docs-build and docs-serve, close four BUG-048 record items - #2256

Merged
lusoris merged 4 commits into
masterfrom
docs/bug048-record-debt
Oct 6, 2026
Merged

lusoris merged 4 commits into
masterfrom
docs/bug048-record-debt

Conversation

@lusoris

@lusoris lusoris commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Four records of T-BUG048-RECORD-DEBT-2026-09-26 that need no maintainer decision. The row stays open (re-worded, with what is done and what remains).

  • make docs-build (strict MkDocs build, as the docs workflow and the pre-push gate run it) and make docs-serve exist; docs/development/docs-site-design.md names them. Before: make -n docs-build printed "No rule to make target".
  • The Metal lane comment of libvmaf-build-matrix.yml no longer calls the build stub-only (the runtime landed with ADR-0420); comment only, no job change.
  • ADR-0581's status line names ADR-0597 (integer_vif is luma-only on every backend), in the style ADR-0597 uses for its own refinement; the body is untouched.
  • docs/rebase-notes.md gets the chore(deps): Update dependency anthropic to >=1.3.0 #1118 entry for vmaf_cuda_picture_get_pix_fmt().
  • Already in place and only recorded: the --fast-nr flag rows of vmaf-tune-per-shot.md and vmaf-tune-compare.md, and the bisect cross-links.
  • Left in the row: aiutils.subprocess_utils.run_cmd (adopt or drop), the stale feature_collector.c entries of the generated tidy baselines, the vif_skip_scale0 row, and the three option questions for the maintainer.

Reproducer

make -n docs-build        # mkdocs build --strict
make docs-fragments-check
bash scripts/ci/check-state-md-rows.sh docs/state.md

Deliverables (ADR-0108)

  • Research digest — no digest needed: trivial.
  • Decision matrix — no alternatives: only-one-way fix.
  • AGENTS.md invariant note — no rebase-sensitive invariants.
  • Reproducer / smoke-test command — above.
  • CHANGELOG fragment — changelog.d/changed/docs-build-make-targets.md.
  • Rebase note — docs/rebase-notes.md, the chore(deps): Update dependency anthropic to >=1.3.0 #1118 entry.
  • Docs — docs/development/docs-site-design.md.
  • State — row T-BUG048-RECORD-DEBT-2026-09-26 updated in docs/state.md.

…acOS LTO keeps libc's close() (#2234)

* fix(feature): name the CPU extractors' close callbacks close_fex so macOS LTO keeps libc's close()

test_adm_coverage crashed with SIGSEGV on every macOS leg since #2208 gave
a case a stderr capture that calls close(). Under lldb on the hosted runner
the faulting function is an extractor's static close(VmafFeatureExtractor *)
called with the file descriptor; the debug build without LTO passes.

macOS's <unistd.h> declares close() with an assembler label, so in a
full-LTO link (the release default) the IR linker keeps the declaration and
a static close of another module apart without renaming the static, and both
emit as _close: every C-library close() in the merged module branches into
an extractor. The fdopen() failure paths of libvmaf.c, cambi.c and svm.cpp
make that call too. glibc has no label, so Linux never showed it.

The 17 callbacks are close_fex, the GPU twins' naming; nothing else changes.
test_libc_named_internal_functions refuses a static C function named after a
C library or POSIX function and reports the 17 on master.

* test(ci): stub node in test-dedupe-gate.sh to isolate governance sequence

test-dedupe-gate.sh verifies the standardsctl governance sequence and that dedupe scan failure is propagated by make verify-all. When verify-all gained the praetor documentation gates (docs-lint, docs-figures), make started executing node to lint all markdown files, causing timeouts and failures under host load. Stub node in the temporary directory alongside standardsctl so the unit contract test evaluates only the dedupe sequence.
* chore(tidy): make cert-err33-c a hard stop in .clang-tidy

ADR-0694 asked for cert-err33-c in WarningsAsErrors once its violations were
swept. The ADR-1142 cleanups did that sweep: a full run of the cpu, cuda, hip
and sycl lanes in the dev container (clang-tidy 22.1.8) reports no cert-err33-c
diagnostic, and the last arm64 report has none. The check is promoted now, so
a new unchecked fclose() or fputs() fails Tidy Changed instead of joining a
baseline. A planted fclose(f); gives exit 0 as a warning and exit 1 with the
promotion.

Closes T-CERT-ERR33-SWEEP.
* fix(ai): write the FR regressor registry as strict JSON

The four train_fr_regressor scripts wrote model/tiny/registry.json with a raw
json.dumps, which prints NaN and Infinity for a non-finite value and leaves a
file no strict JSON reader accepts. vmaf_train.registry.write_registry_json()
existed for this and had no production caller; the scripts use it now. A
registry of finite values is byte-identical to before.

Also moves T-BUG048-PERF-RESTORATIONS-2026-09-26 to Recently closed: all four
restorations (#1678, #1683, #1687, #1688) are on master, and the row stayed
open.
…ecord items (#2256)

* docs(build): add make docs-build and docs-serve, close four BUG-048 record items

BUG-048 left four records open that need no decision: the Makefile had no
docs-build or docs-serve target, the Metal lane of the build matrix still
called its build stub-only, ADR-0581 did not name ADR-0597 which made
integer_vif luma-only, and the rebase notes had no entry for the
vmaf_cuda_picture_get_pix_fmt accessor restored in #1118. The --fast-nr flag
rows and the bisect cross-links the row listed were already in place.

The row stays open for the records that need an owner decision.
@github-actions github-actions Bot added the type:docs Documentation updates label Oct 6, 2026
@lusoris
lusoris force-pushed the docs/bug048-record-debt branch from 4107397 to 72721eb Compare October 6, 2026 11:23
@lusoris
lusoris merged commit 72721eb into master Oct 6, 2026
5 of 34 checks passed
@lusoris
lusoris deleted the docs/bug048-record-debt branch October 6, 2026 11:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:docs Documentation updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant