Skip to content

fix(cuda)!: remove committed conflict marker in integer_vif_cuda.c (P0 hotfix) - #108

Merged
lusoris merged 1 commit into
masterfrom
fix/cuda-vif-conflict-marker-hotfix-20260529
May 29, 2026
Merged

lusoris merged 1 commit into
masterfrom
fix/cuda-vif-conflict-marker-hotfix-20260529

Conversation

@lusoris

@lusoris lusoris commented May 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • P0 hotfix: conflict markers introduced by commit 0c494cca05 ("docs: post-merge-train sweep") were committed into core/src/feature/cuda/integer_vif_cuda.c at line 336, breaking every CUDA build on master since that commit.
  • Retains the HEAD side: ADR-0743 __launch_bounds__ comment (per PR docs(research): PR #91 576p NO_BOUNDS dispatch A/B validation (Research-0755) #103 investigation).
  • 3-line deletion; zero other changes.

Reproducer / smoke-test

# Before fix — compile error:
cc -fsyntax-only core/src/feature/cuda/integer_vif_cuda.c  # parse error near <<<<<<< token

# After fix — clean:
cd core/build-cuda && cc -Isrc/liblibvmaf_feature.a.p -Isrc -I../src -Iinclude -I../include \
  -I../src/feature -I../src/feature/common -I../src/cuda -std=c11 -fPIC -fsyntax-only \
  ../src/feature/cuda/integer_vif_cuda.c
# → zero errors (pre-existing -Wunused-parameter warning on unrelated line only)

Deliverables checklist

  • research digest: no digest needed: trivial conflict-marker removal
  • decision matrix: no alternatives: only-one-way fix (take HEAD side per ADR-0743)
  • AGENTS.md invariant note: no rebase-sensitive invariants
  • reproducer / smoke-test: above
  • changelog.d fragment: no changelog needed: pure hotfix, no user-visible delta
  • docs/rebase-notes.md: no rebase impact: hotfix reverts a bad commit artifact
  • docs/state.md: no bug-tracking update needed: build regression, not a logic bug

🤖 Generated with Claude Code

…0 hotfix, master CUDA broken since 0c494cc)

Conflict markers from commit 0c494cc ("docs: post-merge-train sweep")
were left in filter1d_8() at line 336. Retains HEAD side: ADR-0743
__launch_bounds__ comment per PR #103 investigation. Verified clean
compile against build-cuda include paths (zero errors).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lusoris
lusoris enabled auto-merge (squash) May 29, 2026 09:43
@lusoris
lusoris merged commit 37a638b into master May 29, 2026
21 of 37 checks passed
@lusoris
lusoris deleted the fix/cuda-vif-conflict-marker-hotfix-20260529 branch May 29, 2026 09:43
lusoris added a commit that referenced this pull request May 29, 2026
…174)

Committed conflict markers from commit 0c494cc (post-merge-train
sweep, #50) were present in two CI workflow files, causing check-yaml
pre-commit hook failures. These markers snuck through because the sweep
commit bypassed CI checks.

Fixes:
- libvmaf-build-matrix.yml: CUDA and SYCL Windows build steps — retain
  HEAD (core\build) over incoming (libvmaf\build, stale pre-ADR-0700).
- security-scans.yml: CodeQL Python no-op build step — retain HEAD
  (explicit no-op suppressing autobuild.sh) over incoming (deletion).

Companion to PR #108 which fixed the same sweep's conflict markers in
integer_vif_cuda.c. Pre-commit check-yaml now passes on both files.

no user-discoverable surface change — CI infra fix
no digest needed: trivial conflict-marker removal
no alternatives: keep HEAD, which is the ADR-0700-correct state
no rebase-sensitive invariants

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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
…I gate

Sweep all files for committed conflict markers introduced by sweep commit
24bb5da — 123 conflict blocks across 78 text files resolved by keeping
HEAD in every case. HEAD holds the ADR-0700-correct core/ path refs,
float_ansnr removal (PR #38 / ADR-0720), _sanitize_nonfinite additions,
and C++23 safety invariants in core/AGENTS.md. The incoming side of each
conflict was a pure doc-path sweep duplicating old libvmaf/ references
already superseded by HEAD.

Files affected:
- CI / tooling: .semgrepignore, codeql-config.yml,
  libvmaf-build-matrix.yml, security-scans.yml (4 files)
- C code: core/test/test_hip_smoke.c (float_ansnr_hip test removal)
- Python: ai/src/aiutils/jsonl_utils.py, ai/src/vmaf_train/registry.py
- Docs / ADR fragments: 71 files under docs/

Adds check-conflict-markers CI job to lint-and-format.yml: a standalone
git grep gate that runs on every push and PR, blocking merges that contain
committed conflict markers. Pre-commit check-merge-conflict hook already
guards local commits; this job closes the gap for direct pushes and
GitHub UI merges that bypass the local hook. Companion to PR #108 and
PR #164 which fixed the first two instances of this pattern.

no ADR needed: trivial bug fix + defense-in-depth CI gate
no digest needed: trivial
no alternatives: keep HEAD — ADR-0700-correct state
no rebase-sensitive invariants
no state.md change: no bug opened or closed
no ffmpeg-patches change: no public C API touched

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>
@lusoris lusoris added this to the 1.0.0 — First release milestone Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant