Repository navigation
feat!: sunset legacy native build modes (BREAKING, ADR-0728) - #52
Merged
Merged
Conversation
lusoris
marked this pull request as ready for review
May 28, 2026 16:27
lusoris
enabled auto-merge (squash)
May 28, 2026 16:27
lusoris
force-pushed
the
feat/native-build-sunset-20260528
branch
2 times, most recently
from
May 28, 2026 19:35
0750fd1 to
6affe2e
Compare
Implements ADR-0691 (drop legacy build paths) and ADR-0710 (CI slim-down v2). Drops the following CI configurations from libvmaf-build-matrix.yml: - Build — Windows MinGW64 (CPU): MSYS2/MinGW-w64 job removed; MinGW64 is not a VMAFX production target; Windows coverage via MSVC in build.yml - Build — Ubuntu i686 gcc (CPU, no-asm): fork is 64-bit only (ADR-0151) - Build — Ubuntu gcc/clang (CPU) + DNN: superseded by Linux full-build in build.yml - Build — macOS clang (CPU) + DNN: superseded by macOS leg in build.yml - Build — Ubuntu Vulkan (T5-1b runtime): folded into Linux full-build - Build — macOS Vulkan via MoltenVK (advisory): too fragile, no required gate - Build — Ubuntu HIP (T7-10b runtime): folded into Linux full-build - Build — macOS Metal (T8-1 scaffold): folded into macOS leg in build.yml - Build — Ubuntu gcc Static (CPU) + Build — Ubuntu CUDA Static: covered by full-build - Build — Ubuntu SYCL / SYCL+CUDA: folded into Linux full-build - Build — Windows MSVC + oneAPI SYCL (build only): SYCL in Linux full-build Updates required-aggregator.yml: removes 10 dropped check names; adds 3 new build.yml names (Linux/macOS/Windows) and the sanitizers.yml ASan+UBSan gate. Removes Cppcheck (clang-tidy superset, per ADR-0710). Also fixes pre-existing broken meson.build reference: test_ansnr_simd.c was deleted in feat/drop-ansnr-20260528 (PR #38) but the meson.build entry was not cleaned up, causing configure failures on fresh worktrees. Six deliverables: (1) no digest needed: executes ADR-0691 + ADR-0710 per handoff direction; (2) decision matrix in ADR-0728; (3) core/AGENTS.md invariant note (narrow build matrix, container-first); (4) reproducer: meson setup core core/build-sunset -Denable_cuda=false -Denable_sycl=false && ninja -C core/build-sunset && meson test -C core/build-sunset --suite=fast — 50/50 pass; (5) changelog.d/removed/native-build-sunset.md; (6) rebase-notes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
force-pushed
the
feat/native-build-sunset-20260528
branch
from
May 28, 2026 22:00
6affe2e to
1fd5c56
Compare
This was referenced May 29, 2026
lusoris
added a commit
that referenced
this pull request
May 29, 2026
The next release-please tag is projected as 4.0.0-lusoris.0 (MAJOR) because five commits carry '!' breaking markers since 3.0.0-lusoris.0. Three of those markers are incorrect: PR #52 feat!: sunset legacy native build modes CI-matrix pruning; no public API, CLI flag, or header removed. '!' unwarranted. PR #80 fix(cuda)!: wrap __global__ kernels in extern "C" Internal CUDA kernel mangling fix (P0 silent-corruption bug). No public API change. '!' unwarranted. PR #108 fix(cuda)!: remove committed conflict marker Three-line literal-marker deletion. Not a breaking change. '!' unwarranted. Two '!' commits ARE correctly marked: PR #47 feat(core)!: drop Vulkan backend Removed libvmaf_vulkan.h (public header), CLI flags --backend vulkan / --vulkan_device / --vulkan-require-fp64, and public enum values. Genuine public API removal. PR #87 feat!: sunset VmafLegacyQualityRunner Removed importable Python class VmafLegacyQualityRunner. Genuine public surface removal. Net assessment: 2/5 breaking markers warrant a MAJOR bump; the other 3 are bug-fix or CI-maintenance commits mislabelled with '!'. The fork tracks Netflix upstream v3.x; jumping to 4.0.0 prematurely would misrepresent the version relative to upstream and surprise downstream users. Safest mitigation without rewriting history: set "draft": true in release-please-config.json so the next release PR opens as DRAFT. The maintainer reviews the proposed version, adjusts if needed, then un-drafts to merge. This adds one manual gate without masking future real majors. The version chosen on review should be 3.1.0-lusoris.0: the two genuine breaking changes (Vulkan + LegacyRunner) are fork-local extensions with no upstream counterpart, and the fork has not bumped its upstream-tracking MAJOR. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
added a commit
that referenced
this pull request
May 29, 2026
Set `"draft": true` in `release-please-config.json` root package so the next release PR opens as a draft, requiring manual review before merge. Prevents an unintended `4.0.0` major bump caused by three incorrectly marked breaking commits (PR #52, #80, #108). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
added a commit
that referenced
this pull request
May 29, 2026
Set `"draft": true` in `release-please-config.json` root package so the next release PR opens as a draft, requiring manual review before merge. Prevents an unintended `4.0.0` major bump caused by three incorrectly marked breaking commits (PR #52, #80, #108). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
added a commit
that referenced
this pull request
Jun 2, 2026
Set `"draft": true` in `release-please-config.json` root package so the next release PR opens as a draft, requiring manual review before merge. Prevents an unintended `4.0.0` major bump caused by three incorrectly marked breaking commits (PR #52, #80, #108). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
added a commit
that referenced
this pull request
Jun 2, 2026
…-24.04 pin + #173 Renovate grouping + #183 release-please draft) (#520) * chore(ci): nightly workflow audit — remove redundant TSan, fix retention + Python ver (ADR-0793) Three targeted fixes surfaced by a periodic nightly-CI audit: 1. Remove the `tsan` job from nightly.yml. sanitizers.yml already fires TSan on every push to master (ADR-0710); the daily cron duplicate burned ~45 runner-minutes/night for zero additional signal. 2. Add explicit `retention-days` to both nightly artifacts: 14 d for the clang-tidy-full-report (diagnostic value expires quickly) and 30 d for nightly-benchmark-results (one month of period-over-period comparisons). Both previously defaulted to GitHub's 90-day retention. 3. Fix `python-version: "3.14.5"` → `"3.12"` in nightly-bisect.yml. Python 3.14 is a pre-release alpha series with no stable release; the step name ("Set up Python 3.12") was correct and the version string was wrong. This would cause the job to fail trying to download a non-existent release. No functional changes to test coverage. All nightly signal is preserved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(ci): pin ubuntu-latest to ubuntu-24.04 across all non-Docker runners (ADR-0802) Replace floating `ubuntu-latest` runner alias with `ubuntu-24.04` across 15 workflow files to prevent silent toolchain drift when GitHub promotes the alias to Ubuntu 26.04 (expected H2 2026). Add ADR-0802 documenting the pin policy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(deps): Renovate — Go/Cargo grouping, off-hours schedule, PR-cap (ADR-0812) - Global schedule: "at any time" → "before 6am on weekdays" (Europe/Vienna); vulnerability alerts retain their existing "at any time" override. - Add gomod packageRule: minor+patch grouped, auto-merged Monday mornings; major individual, manual review. - Add cargo packageRule: same group-and-automerge pattern; major manual. - prConcurrentLimit: 12 → 10 (Go grouping reduces PR count per cycle). - ADR-0812 documents the decision and alternatives. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(release): set release-please draft mode for manual version review Set `"draft": true` in `release-please-config.json` root package so the next release PR opens as a draft, requiring manual review before merge. Prevents an unintended `4.0.0` major bump caused by three incorrectly marked breaking commits (PR #52, #80, #108). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(ci): add bundle CHANGELOG fragment for CI workflow hygiene PRs #141 #165 #173 #183 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Lusoris <lusoris@pm.me>
Closed
16 of 26 tasks
lusoris
added a commit
that referenced
this pull request
Sep 19, 2026
9aa008e (#1564), the commit that removed the i686 lane, implemented ADR-0691. ADR-0728 (bfd4c43, #52) landed after the rename merge had already restored the lane and changed only its own ADR, a changelog fragment and deprecations.md. ADR-1258, its index row, the state row, the changelog fragment and the rebase note now say so, and the preflight page, preflight.sh and the ADM page cite ADR-1258 for the 64-bit-only rule. ADR-0151 is marked superseded by ADR-1258 instead of ADR-0728: ADR-0691's removal was undone the same day, so the lane ADR-0151 added ran until ADR-1258 removed it, and ADR-1258 is the record that is in force.
lusoris
added a commit
that referenced
this pull request
Sep 19, 2026
9aa008e (#1564), the commit that removed the i686 lane, implemented ADR-0691. ADR-0728 (bfd4c43, #52) landed after the rename merge had already restored the lane and changed only its own ADR, a changelog fragment and deprecations.md. ADR-1258, its index row, the state row, the changelog fragment and the rebase note now say so, and the preflight page, preflight.sh and the ADM page cite ADR-1258 for the 64-bit-only rule. ADR-0151 is marked superseded by ADR-1258 instead of ADR-0728: ADR-0691's removal was undone the same day, so the lane ADR-0151 added ran until ADR-1258 removed it, and ADR-1258 is the record that is in force.
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
libvmaf-build-matrix.ymlper ADR-0691 + ADR-0710required-aggregator.yml: drops 10 legacy check names, adds 3 canonicalbuild.ymlnames (Build — Linux (GCC, all backends),Build — macOS (Clang, CPU + Metal),Build — Windows (MSVC + CUDA)) and theSanitizers — ASan + UBSan (PR gate)fromsanitizers.yml; removesCppcheck (Whole Project)(clang-tidy superset)core/test/meson.buildreference to deletedtest_ansnr_simd.c(left behind by PR feat(core): drop legacy ansnr feature (pre-VMAF, never Netflix-adopted) #38)Test plan
meson setup core core/build-sunset -Denable_cuda=false -Denable_sycl=false && ninja -C core/build-sunset— builds cleanmeson test -C core/build-sunset --suite=fast— 50/50 passmatrix.moltenvk/matrix.i686/matrix.dnn/matrix.vulkanstale guards remain in the workflowDeep-dive deliverables (ADR-0108)
## Alternatives consideredcore/AGENTS.md— narrow build matrix, container-first sanity rulemeson setup core core/build-sunset -Denable_cuda=false -Denable_sycl=false && ninja -C core/build-sunset && meson test -C core/build-sunset --suite=fast— 50/50 passchangelog.d/removed/native-build-sunset.md(BREAKING)docs/rebase-notes.mdChecklist
docs/adr/README.mddocs/state.mdupdated — T-NATIVE-BUILD-SUNSET-ADR-0728-2026-05-28 in Recently closeddocs/development/ci.mdupdated —build.ymladded to workflow tabledocs/development/deprecations.mdcreated — deprecation rows for all removed modeslibvmaf-build-matrix.ymlandrequired-aggregator.ymltouched; edits are surgical removals of matrix entries only🤖 Generated with Claude Code