Skip to content

packaging: add ROCm ASAN wheel production - #7312

Draft
sa-faizal wants to merge 1 commit into
ROCm:mainfrom
sa-faizal:draft/asan-wheels-phase1-rocm
Draft

packaging: add ROCm ASAN wheel production#7312
sa-faizal wants to merge 1 commit into
ROCm:mainfrom
sa-faizal:draft/asan-wheels-phase1-rocm

Conversation

@sa-faizal

@sa-faizal sa-faizal commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Stack: 1 of 2. Phase 2 is stacked on this commit in #7313.

Summary

Add the integrated Phase 1 path for producing a coherent local ROCm ASAN Python package set from TheRock's structured artifacts:

  • add an explicit wheel-only ASAN version mode and derive the build identity from artifact metadata;
  • discover and package one shared Clang ASAN runtime in rocm-sdk-core;
  • inject origin-relative cross-wheel runtime paths and validate the merged installation layout before building wheels;
  • reject release-labelled, mismatched, incomplete, or unresolved ASAN package sets;
  • stage a local-only flat/PEP 503 index with SHA-256 fragments and a verified manifest; and
  • document the structured-artifact, runtime, versioning, and local-index contracts.

The build path has no upload or publication action.

Why this is a draft

This preserves the complete validated prototype for review, but several policy and hardening decisions should be resolved before merge:

  • choose the final version policy (10.1.0+asan.<id>, prerelease-preserving spelling, or an explicit workflow-supplied version);
  • split/generalize the ASAN-specific local-index implementation into reusable manifest and PEP 503 layers;
  • separate the generic cross-wheel ELF resolver from the ASAN policy; and
  • add the remaining malformed-archive, multiple-runtime, prerelease-manifest, and legacy non-kpack cases described in the execution review.

Real-input evidence

The prototype was exercised from TheRock 6b6cd74cf7825b2ed3d4795f8fee801e3150d248 with the linux-release-asan preset, a pinned manylinux image, and gfx942:xnack+ artifacts.

  • produced selector, profiler, core, libraries, device, and devel packages at 10.1.0+asan.20260807;
  • inspected 175 ELF candidates and found 82 ASAN-linked ELFs, including HIP and HSA, with zero unresolved shared-runtime dependencies;
  • static wheel/package validation passed, including ZIP/CRC, exact pins, kpack content, and shared-runtime resolution;
  • clean offline installation, rocm-sdk init, SDK-root lookup, and 26 of 27 SDK tests passed;
  • the remaining GPU initialization test reproduced the documented pre-fix null-PC compiler-rt failure, so the runtime result is evidence rather than a production acceptance pass.

No generated wheels, indexes, hashes, reports, build trees, or machine-local orchestration files are included.

Tests

76 focused tests passed:
- compute_rocm_package_version_test
- asan_python_packaging_test
- stage_local_asan_index_test
- generate_local_index_test

python -m py_compile: pass
git diff --check: pass

Follow-up acceptance

@therock-pr-bot

therock-pr-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
📝 PR Description ❌ Fail Error: PR description must reference a JIRA ID, ISSUE ID, or a GitHub closing keyword.
Expected: include a JIRA ID / ISSUE ID line (separator : or -, or omitted; value may be a JIRA key, a number with/without #, or a link), OR a closing keyword + issue reference. Accepted examples:
JIRA ID : TESTAUTO-6039
JIRA ID - #330
JIRA ID #330
JIRA ID (on separate line)
ROCM-25757
ISSUE ID : TESTUTO-3334
ISSUE ID #3334
ISSUE ID - TESTAUTO-3433
ISSUE ID (on separate line)
AIRUNTIME-2352
ISSUE ID : https://github.com/<org_name>/<repo_name>/issues/1234
Closes #10
Fixes octo-org/octo-repo#100
Resolves: #123
#123
https://github.com/<org_name>/<repo_name>/issues/123
Current: no valid JIRA/ISSUE/closing-keyword reference found
Forbidden Files ✅ Pass
🧪 Unit Test ✅ Pass
🔎 pre-commit ❌ Fail Error: Check concluded with failure.
🚫 Draft PR 🔜 To Be Enabled
🚩 Feature Flag 🔜 To Be Enabled
📊 Code Coverage 🔜 To Be Enabled

⚠️ 2 policy check(s) failed. Please address the issues above before this PR can be Reviewed.

🚫 Please fix the failed policies

  • ❌ PR Description
  • ❌ pre-commit

The Not ready to Review label was added to this PR. Once all policies pass, the label is removed automatically.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot therock-pr-bot Bot added the Not ready to Review PR has unresolved policy failures — reviews blocked label Aug 12, 2026
@therock-pr-bot

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Not ready to Review PR has unresolved policy failures — reviews blocked

Projects

Status: TODO

Development

Successfully merging this pull request may close these issues.

1 participant