Skip to content

CI: reduce false ABI check failures, add reviewer override - #545

Open
rwmcguir wants to merge 1 commit into
oneapi-src:masterfrom
rwmcguir:russ_abi_check_port
Open

rwmcguir wants to merge 1 commit into
oneapi-src:masterfrom
rwmcguir:russ_abi_check_port

Conversation

@rwmcguir

@rwmcguir rwmcguir commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

check-abi.yml fails on normal changes. For example, #516 failed and was merged anyway. This PR removes the false failures, keeps real breaks failing, and makes failures possible to resolve.

  • False register/offset findings: the Parameter_Changed_Register / Parameter_Changed_Offset rules are now Low. abi-dumper reads the last DWARF location entry, so -Og builds report false moves. Real breaks are still caught by the type, added and removed rules.
  • ZE_API_VERSION_CURRENT bump: this bump is no longer reported. scripts/update_ze_api_version.py copies the base value into the head dump.
  • Pinned tools: abi-compliance-checker 2.3 and abi-dumper 1.4. Before, they came from master on every run.
  • Reviewer override: an approval review with abi-failure-approved accepts a failure and re-runs the check. It counts only if the reviewer has write access and approved the PR head commit.
  • PR comment: one comment per PR shows both results. check-abi-comment.yml posts it through workflow_run, so it also works for fork PRs. It starts after merge.
  • Base dump cache: keyed by base commit, runner image and abi-dumper version. A push to master seeds the cache.

The two jobs are now one matrix job. The job and artifact names are unchanged.

Testing

Local run, v1.33.1 → v1.34.0 (the #516 case):

Setup Binary compat Problems Exit
Before 94.9% 2 1
This PR 100% 0 0
Reverse (APIs removed) 98.1% 21 1

actionlint passes.

Bring the loader's check-abi.yml in line with the spec repo's
loader-integration ABI check, so routine changes stop failing it.

- Downgrade Parameter_Changed_Register / Parameter_Changed_Offset to Low.
  abi-dumper reads the last DWARF location entry, so -Og builds report
  false register/offset moves. Real breaks still fail via the type,
  added and removed rules.
- Ignore the ZE_API_VERSION_CURRENT bump (scripts/update_ze_api_version.py,
  copied from the spec repo).
- Pin abi-compliance-checker to 2.3 and abi-dumper to 1.4.
- Let a reviewer accept a failure with an approval review containing
  abi-failure-approved. Only approvals from users with write access on
  the checked head commit count; the review re-runs the check.
- Post one PR comment with both results, from a workflow_run companion
  (check-abi-comment.yml) so it works for fork PRs.
- Cache base.dump by base commit, runner image and abi-dumper version.
  A push to master seeds the cache so new PRs skip the base build.

The two jobs are now one matrix job; job names are unchanged.

Tested locally with v1.33.1 -> v1.34.0, the case that failed oneapi-src#516:
stock 94.9% (2 problems, exit 1); with this change 100% (0 problems,
exit 0). Reverse compare (v1.34.0 -> v1.33.1) still fails: 21 problems.

Signed-off-by: Russell McGuire <russell.w.mcguire@intel.com>
@rwmcguir rwmcguir changed the title CI: port ABI check improvements from the spec repo CI: reduce false ABI check failures, add reviewer override Oct 22, 2026
@rwmcguir
rwmcguir requested a review from nrspruit October 22, 2026 22:30

This branch has not been deployed

No deployments
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