Repository navigation
fix(ci): un-overcorrect meson setup in working-directory: core steps - #60
Merged
Merged
Conversation
PR #46 supplement's sed replaced `meson setup build -` with `meson setup build core -` globally. Steps that already set `working-directory: core` (or equivalent) treat `.` as their source tree, so the appended `core` positional directed meson to `core/core/` which does not exist — producing "Neither source directory 'build' nor build directory 'core' exist." Revert the extra `core` positional in every step that carries `working-directory: core`: - tests-and-quality-gates.yml: netflix-golden build, cross-backend build, vulkan-vif-cross-backend build (lavapipe + Arc nightly), vulkan-parity-matrix-gate build, sanitizer-matrix build, dnn-onnx build, build-mcp step, build-coverage step, build-coverage-gpu step (10 occurrences). - sanitizers.yml: ASan+UBSan build, TSan build (2 occurrences). - security-scans.yml: CodeQL C++ build (1 occurrence). Steps without working-directory (lint-and-format.yml clang-tidy + cppcheck, supply-chain.yml release build, rust-ci.yml libvmaf install, fuzz.yml, sanitizers.yml build-fuzz) run from repo root and correctly retain the `core` source-dir positional. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
enabled auto-merge (squash)
May 28, 2026 18:07
4 tasks
lusoris
added a commit
that referenced
this pull request
May 28, 2026
…0735) Fixes 8 pre-existing required-aggregator failures that blocked every PR post-#60. All classified as workflow config bugs, post-rename path drift, or code bugs from the float_ansnr drop in PR #38. 1. Windows MSVC CUDA + SYCL build: ninja -C libvmaf\build -> core\build (stale ADR-0700 rename leftover in libvmaf-build-matrix.yml) 2. Ubuntu HIP smoke: remove test_float_ansnr_hip_extractor_registered (float_ansnr_hip dropped by PR #38 / ADR-0720; test not updated) 3. Netflix CPU Golden (D24): remove float_ansnr from VmafIntegerFeatureExtractor._generate_result() and its ATOM_FEATURES_TO_VMAFEXEC_KEY_DICT — the CLI exited 255 on the removed extractor before any score was computed; the CI gate tests already expect ansnr to be absent (assertRaises KeyError) 4. CodeQL Python: update codeql-config.yml paths libvmaf/ -> core/; add explicit no-op build step to suppress C++ autobuild 5. Gitleaks: add go.sum, Cargo.lock, gen/go/*.pb.go, h1: regex, and stopwords to .gitleaks.toml allowlist (package-manager hash FPs) 6. Semgrep: add compat/python-vmaf/matlab/ and compat/python-vmaf/resource/ to .semgrepignore (post-ADR-0700 rename; python/vmaf/matlab/ no longer matched the file); verified locally: 0 findings 7. Tiny AI: implement missing dumps_jsonl_row (aiutils.jsonl_utils) and dumps_registry_json + write_registry_json (vmaf_train.registry) which tests imported but were never implemented 8. core/AGENTS.md + docs/state.md: document the ansnr-removal invariant and track T-LEGACY-RUNNER-ANSNR-BROKEN as an open bug Residual: VmafFeatureExtractor (legacy float path) still requests float_ansnr; legacy runner tests fail locally. The CI golden gate only runs test_run_vmaf_runner + checkerboard (integer path), now fixed. Netflix golden assertion values are unchanged (GLOBAL PROJECT RULES #1). Research-0735: docs/research/0735-ci-required-failures-round-3-2026-05-28.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
added a commit
that referenced
this pull request
May 28, 2026
…0735) (#86) Fixes 8 pre-existing required-aggregator failures that blocked every PR post-#60. All classified as workflow config bugs, post-rename path drift, or code bugs from the float_ansnr drop in PR #38. 1. Windows MSVC CUDA + SYCL build: ninja -C libvmaf\build -> core\build (stale ADR-0700 rename leftover in libvmaf-build-matrix.yml) 2. Ubuntu HIP smoke: remove test_float_ansnr_hip_extractor_registered (float_ansnr_hip dropped by PR #38 / ADR-0720; test not updated) 3. Netflix CPU Golden (D24): remove float_ansnr from VmafIntegerFeatureExtractor._generate_result() and its ATOM_FEATURES_TO_VMAFEXEC_KEY_DICT — the CLI exited 255 on the removed extractor before any score was computed; the CI gate tests already expect ansnr to be absent (assertRaises KeyError) 4. CodeQL Python: update codeql-config.yml paths libvmaf/ -> core/; add explicit no-op build step to suppress C++ autobuild 5. Gitleaks: add go.sum, Cargo.lock, gen/go/*.pb.go, h1: regex, and stopwords to .gitleaks.toml allowlist (package-manager hash FPs) 6. Semgrep: add compat/python-vmaf/matlab/ and compat/python-vmaf/resource/ to .semgrepignore (post-ADR-0700 rename; python/vmaf/matlab/ no longer matched the file); verified locally: 0 findings 7. Tiny AI: implement missing dumps_jsonl_row (aiutils.jsonl_utils) and dumps_registry_json + write_registry_json (vmaf_train.registry) which tests imported but were never implemented 8. core/AGENTS.md + docs/state.md: document the ansnr-removal invariant and track T-LEGACY-RUNNER-ANSNR-BROKEN as an open bug Residual: VmafFeatureExtractor (legacy float path) still requests float_ansnr; legacy runner tests fail locally. The CI golden gate only runs test_run_vmaf_runner + checkerboard (integer path), now fixed. Netflix golden assertion values are unchanged (GLOBAL PROJECT RULES #1). Research-0735: docs/research/0735-ci-required-failures-round-3-2026-05-28.md Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
added a commit
that referenced
this pull request
Sep 23, 2026
#1524 left 30 citation sites as plain text on the finding that the cited ADR "was never written under any number". That finding was reached from the two halves of the filename -- a slug naming no ADR, a number naming an unrelated one -- and from a text match against the ADR that carries the number today. Both are too shallow, and 12 of the 30 were wrong. Searching the git history of the CITING commit settles what the filename cannot. ADR-0122 is the sharpest case and it was in this branch's own "never written" list: the citing sentence reads "fork PR #60 CUDA framesync hardening", and `d3b6fad62` is both PR #60 and the commit that created `0122-cuda-gencode-coverage-and-init-hardening.md`. The number was never reallocated. The slug had been minted from a docs/state.md bug-row label ("CUDA framesync segfault on null cubin"), and the ADR itself never uses the word "framesync" -- which is exactly why grepping the target for the slug's words dismissed it. Relinked, each from evidence rather than from either half of the name: * ADR-0122 x3 -> 0122-cuda-gencode-coverage-and-init-hardening.md (0156 x2, 0157). Number right, slug minted from a bug-row label. * ADR-0287 x2 -> 0293-vmaf-tune-saliency-aware.md (0326). The ADR is titled "vmaf-tune saliency-aware ROI tuning"; the citation calls it "saliency-aware encoding". * ADR-0568 -> 0569-sdk-version-bumps-2026-05-18.md (0603). The minted slug was `sdk-audit-2026-05-18` and the ADR's own title carries that date; it names ORT 1.26.0, vvenc and AMF seven times, which is what the citing sentence says it introduced. * ADR-0509 x2 -> 0514-dev-container-full-backend-exposure.md (0541, 0542). It is the only ADR that discusses unsetting VK_ICD_FILENAMES in the entrypoint, with 13 mentions. 0542 now cites 0514 twice, for two different aspects; that is redundant but true, which beats a dangling reference. * ADR-0125 -> 0127-vulkan-compute-backend.md (0216). The citation reads "<X> / ADR-0175 -- Vulkan backend framework"; ADR-0175 opens by naming ADR-0127 as the decision it implements, and ADR-0127 is the sole owner of Research-0004, the digest the sentence says already covers these patterns. * ADR-0125 -> 0125-ms-ssim-decimate-simd.md (0219). Same list shape as ADR-0918's, where the same number is used correctly for the same ADR. Number right, slug fabricated. * ADR-0138 -> 0138-iqa-convolve-avx2-bitexact-double.md (0584). * ADR-0138 -> 0159-psnr-hvs-avx2-bitexact.md (0918), keeping the descriptive label. 0160 is the NEON sibling and the citation does not disambiguate, but that harness is x86 by 4 mentions to 1. Nine citations stay plain text on purpose: their decision exists only in a commit message, a PR title or a docs/state.md row, and there is no ADR to point at -- linking them would invent an authority. ADR-0864 stays plain for a different reason: ADR-0980 explicitly distinguishes it from ADR-0866, so repointing there would erase the distinction the citing ADR is drawing. Found on the way and NOT fixed, because it is prose rather than a link: 0156-cuda-graceful-error-propagation-netflix-1420.md:215 credits the `is_cudastate_empty()` null-guards to ADR-0122 / ADR-0123, but those guards are upstream (b9309779f, 3071d7e) and are in no fork PR.
lusoris
added a commit
that referenced
this pull request
Sep 23, 2026
) The gate shipped in #1522 matched only `adr/NNNN-slug.md`, so the bare `(NNNN-slug.md)` form ADRs use to cite each other was invisible to it: 237 broken sibling links under docs/adr/ while it reported the tree clean. Bare links now count, but only for files under docs/adr/, since docs/research/ names its digests the same way. Repairing them by number would have been worse than leaving them dead. 196 of the 237 carry a slug naming no ADR at all, and for 56 the number had been reallocated by the collision sweeps -- [ADR-0033](0033-hip-applicability.md), cited as the precedent for fork-side GPU ports, would have become a link to codeql-config-moved-to-github. A by-number repair now has to be corroborated by the target own title and abstract, weighing the words that identify a decision over the words a family shares: [ADR-0138 -- PSNR-HVS SIMD bit-exactness] cited 0138-psnr-hvs-simd-bitexact, and 0138-iqa-convolve-avx2-bitexact-double does say "simd" and "bitexact" -- it is a sibling in that family, not the same decision. 181 links repaired mechanically, 56 by hand. Of those, 38 were repaired against evidence and 18 de-linked. The last twelve needed the git history of the citing commit rather than either half of the filename: the citation reading "fork PR #60 CUDA framesync hardening" resolves because d3b6fad is both PR #60 and the commit that created 0122-cuda-gencode-coverage-and-init-hardening.md. The number was right all along; the slug had been minted from a docs/state.md bug-row label, and the ADR never uses the word "framesync", which is why a text-match check dismissed it. Nine citations stay plain text on purpose: their decision exists only in a commit message, a PR title or a state.md row, and linking them would invent an authority that does not exist. Tests go 16 -> 24.
3 of 8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
coresource-dir positional to everymeson setup buildinvocation. Steps that already setworking-directory: corethen looked forcore/core/— which does not exist — causing "Neither source directory 'build' nor build directory 'core' exist." on Netflix CPU Golden Tests (D24) and several other jobs.corepositional from every step that carriesworking-directory: core; steps that run from repo root (noworking-directory) correctly retain it.Steps reverted (13 occurrences across 3 files)
tests-and-quality-gates.yml(10 steps):netflix-golden— Build (CPU, release) [line 71]cross-backend— Build CPU [line 137]vulkan-vif-cross-backend— Build CPU + Vulkan [line 172]vulkan-parity-matrix-gate— Build CPU + Vulkan [line 367]vulkan-vif-arc-nightly— Build CPU + Vulkan [line 440]sanitizer-matrix— Build (sanitizer) [line 516]dnn-onnx— Build libvmaf (dnn enabled) [line 647]mcp-transport— Build libvmaf (full MCP transport matrix) [line 723]coverage-cpu— Build with gcov instrumentation [line 866]coverage-gpu— Build with gcov + CUDA + SYCL + AVX-512 [line 1003]sanitizers.yml(2 steps):11. ASan+UBSan — Build [line 76]
12. TSan — Build [line 130]
security-scans.yml(1 step):13. CodeQL C++ — Build [line 115]
Steps intentionally left with
corepositional (run from repo root)lint-and-format.yml: clang-tidy (build core) + SYCL lint (build-sycl core) + cppcheck (build core)supply-chain.yml: release build (build core)rust-ci.yml: libvmaf install (build-ci core)fuzz.yml+sanitizers.ymlbuild-fuzz: fuzzer configure (build-fuzz core)Test plan
no rebase impact: CI-only workflow YAML, no C/build system changes.
🤖 Generated with Claude Code