Repository navigation
fix(rocke): scope installed compiler test policy - #14868
Conversation
⏳ Waiting on Required Checks⏳ Required checks have not all concluded yet. This bot run is exiting without failing so those checks can report independently.
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
⏳ Waiting for required checks to start or finish:
|
|
Automated develop-health notice (rocKE merge monitor) Hi @shumway, this PR looks like the fix for #14875 ([rocke] test_engine_linkage.py::test_installed_pytest_gets_distinct_artifact_environment_variables fails on develop since #14626 (ROCKE_REQUIRE_COMPILER_TOOLS set for rocke_pytest)). Please add "Fixes #14875" to the description, so the issue closes when this PR merges. The rocKE merge monitor has moved this PR to the top of its review and merge queues. |
|
Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max PR #14868 — scope installed compiler test policy (shumway, AICK-2910) — 🟠 First-round: contract test not in CI
Utility: 🟢 Positive — scopes the strict flag to its only consumer; pins both layouts. Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted First-round review: first pass by a local qwen3.6 model, verified by the orchestrator (Claude Opus 5.5). Checks: merge with develop, build + ctest, differential goldens, changed tests at head and on develop, generated CTest manifests (both layouts, three host cases), CI at head, code quality. Flags whether a closer look is needed; not an approval or rejection. |
|
approving to stop the bleed, proceed with caution |
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues block the separation of compiler-tool discovery from MLA-specific test enforcement.
No open issues 🎉
What changed in this PR
Separates compiler-tool discovery from test enforcement in rocKE’s installed CTest configuration, removing MLA-specific enforcement from platform pytest while preserving it for MLA checks.
Changes:
- Split discovery and enforcement environments and scope each to its consumers.
- Expand exact, duplicate-free environment checks across standalone and provider layouts, with and without
ROCM_PATH. - Document native-host contracts, caller overrides, and focused validation.
| File | Description |
|---|---|
| dnn-providers/hip-kernel-provider/rocke/TESTING.md | Documents installed environment contracts and validation. |
| dnn-providers/hip-kernel-provider/rocke/platform/tests/test_engine_linkage.py | Expands manifest assertions for both layouts and pytest entries. |
| dnn-providers/hip-kernel-provider/rocke/platform/CMakeLists.txt | Separates compiler paths from MLA-only enforcement. |
| dnn-providers/hip-kernel-provider/rocke/platform/AGENTS.md | Adds environment-policy guidance and links to the contract documentation. |
Review effort: Max
|
Automated merge-queue status (rocKE merge monitor) Hi @shumway, I turned auto-merge off on this PR for now. Before a rocKE PR lands, the rocKE merge monitor checks it on top of today's develop branch, and this version would not land cleanly:
The open items from our review, each with its fix:
What to do: address the open items in our latest review (#14868 (comment)). After that, turn auto-merge back on; the monitor re-checks every push. Nothing else changed: the monitor does not approve, reject or merge PRs. It only turned auto-merge off to keep develop green. This comment is updated in place. |
Nonblocking suggestion: enroll the contract test in host CI
The expanded contract test provides meaningful regression coverage, but remains excluded from installed pytest by Consider registering this focused source-only test with build-tree CTest, or invoking it in an existing host CI step. This is a follow-up coverage improvement, not a blocker: the PR documents its manual execution, and I verified that both layout cases pass at the current head and fail against unpatched code for the leaked strict flag. Review: pi / gpt-6.1 sol / high — reviewed head |
TheRock Submodule Bump ActivityNewest first
|
Summary
A strict installed-CTest environment test exposed that compiler-tool discovery and test enforcement policy were bundled together.
ROCKE_REQUIRE_COMPILER_TOOLS=1, which is consumed by the MLA resource guards, was also being propagated to the unrelated platform pytest entry.This PR separates those concepts, scopes enforcement to its consumer, strengthens the generated-manifest contracts for standalone and provider layouts, and documents the design for future developer and agent changes.
Risk Assessment
Risk level 3. This changes installed CTest environment generation used by provider CI, but it does not change kernel generation, dispatch, runtime behavior, or public APIs. The behavior is covered by exact generated-manifest tests for standalone and provider layouts, with and without
ROCM_PATH.Related
ISSUE ID : AICK-2910
Fixes #14875
Device / Architecture Coverage
This is architecture-independent host-side CMake and test wiring. No GPU or architecture-specific validation is required.
The generated policy currently injects compiler paths and enables mandatory MLA compiler checks on Linux when
ROCM_PATHis available. Windows keeps its native contract and does not receive Unix-derived paths or an inferred requirement. Native Linux and Windows PR CI should validate their respective host behavior.Testing Summary
origin/develop: the installed platform pytest environment unexpectedly containedROCKE_REQUIRE_COMPILER_TOOLS=1.Testing Checklist
python -m pytest platform/tests/test_engine_linkage.py::test_installed_pytest_gets_distinct_artifact_environment_variables -qatorigin/develop— Status: Failed as expected,1 failed, due to the unexpected requirement variablepython -m pytest platform/tests/test_engine_linkage.py::test_installed_ctest_entries_get_scoped_environment_contracts -q— Status: Passed,2 passedpre-commit run --from-ref develop --to-ref HEAD— Status: PassedFlags / Guardrails
No product feature flag is needed. The enforcement variable remains conditional on the installed compiler-tool environment and is now attached only to the CTest entry whose tests consume it.
An explicitly inherited
ROCKE_REQUIRE_COMPILER_TOOLS=1remains a supported caller override.Adjacent Tests Considered
The complete
platform/tests/test_engine_linkage.pyfile was attempted in isolation. Its changed environment-contract cases passed, while two unrelated pre-existing differential-runner cases failed becausepython_batch_workerwas not importable in that isolated invocation. The focused regression test does not depend on that import path.No byte-identity, golden, or GPU numeric lanes are required because emitted IR and kernel behavior are unchanged.
Technical Changes
rocke_pytestcompiler discovery paths without MLA-specific enforcement policy.rocke_library_mla_pytestboth discovery paths andROCKE_REQUIRE_COMPILER_TOOLS=1when the compiler environment is active.