fix(ci): retain changed GPU families - #1277
Conversation
Preserve directly changed existing families when shared paths broaden impact to all. Add them to the shared smoke selection, and keep release performance policy changes from unnecessarily broadening GPU scope. This ensures mixed diffs validate the model family they actually modify. Signed-off-by: chaofengw <chaofengw@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 SummarySummaryThe classifier preserves directly changed model families when shared changes select all families. The workflow validates and exports direct families through Regression tests cover classification, workflow trust boundaries, family selection, and runner environment propagation. Architecture impact
Review outcomeHUMAN REVIEW REQUIRED: The available evidence does not resolve the material runtime and CI blast-radius questions. WalkthroughThe change preserves directly changed model families through impact classification, GPU family selection, workflow validation, and GPU smoke-test execution. It adds validation and propagates ChangesDirect GPU family tracking
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant ImpactClassifier
participant CommunityCI
participant CommunityGPUCI
participant GPUSmokeTest
ImpactClassifier->>CommunityCI: Publish direct_families
CommunityCI->>CommunityCI: Validate direct family scope
CommunityCI->>CommunityGPUCI: Pass TRTMC_GPU_DIRECT_FAMILIES
CommunityGPUCI->>GPUSmokeTest: Select direct GPU families
Merge Risk: ⚪ Minimal · up to This change only refines which model families the optional, currently disabled GPU smoke-test path reports and executes, and it keeps the family list bounded to the trusted baseline inventory. Accompanying tests cover the new classification, validation, and execution paths, so no merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 8 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (8 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 45.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 20 functions across 5 files. (1 skipped: 1 unsupported.) Comment |
…ared change
No functional change. Touches families/sam3/support.py (a specific
family) and .dockerignore (a shared file) in the same commit, so
tools.test_impact resolves scope: "all" while direct_families still
lists sam3. Verified locally: selected_families('all', ..., ...)
returns ('bert', 'gpt2', 'qwen', 'sam3', 'timm_vit', 'whisper') -
the 5-family smoke set plus sam3 retained, confirming NVIDIA#1277's fix
for the case Chaofeng and Zhenshan discussed (family + shared-dir
change in one PR should not drop the touched family).
Signed-off-by: Zhenshan Xie <zhenshanx@nvidia.com>
Background
PR #1269 changed the Llama family together with
apps/benchmark/performance/release.yaml. The Community GPU impact classifiertreated every
apps/change as shared, promoted the selection toscope=all,and the shared smoke plan then replaced the directly changed Llama family with
its fixed smoke set. As a result, manual GPU smoke could exercise unrelated
families while omitting the family whose implementation changed.
Observed run:
https://github.com/NVIDIA/TensorRT-Model-Connect/actions/runs/34616043218
Exit Criteria
plan in addition to the fixed shared smoke set.
Implementation
apps/benchmark/performance/release.yamlas model-proof neutral, so amixed release-policy and family diff retains family-local scope.
trusted family inventory when shared changes produce
scope=all.isolated runner, which unions direct families with shared smoke and newly
added families.
There are no model/runtime, public API, ABI, bundle-format, dependency, or
checkpoint changes.
Change categories
Validation
Commands and Results
python3 -m pytest -q tools/tests: 488 passed, 10 subtests passed.python3 -m pytest -q tools/tests/test_family_impact.py tools/tests/test_community_gpu_ci.py tools/tests/test_community_ci.py: 86 passed.python3 -m tools.community_ci source-quality --base github/main: passed,including 166 tests.
python3 -m ruff check tools/test_impact.py tools/community_gpu_ci.py tools/tests/test_family_impact.py tools/tests/test_community_gpu_ci.py tools/tests/test_community_ci.py: passed.python3 -m ruff format --check tools/test_impact.py tools/community_gpu_ci.py tools/tests/test_family_impact.py tools/tests/test_community_gpu_ci.py tools/tests/test_community_ci.py: passed.python3 tools/legal_headers.py --check: 4,616 tracked files checked, zerofindings.
actionlint .github/workflows/community-ci.yml: passed.git diff --check: passed.tools.test_impact: producedscope=families,families=["llama"], anddirect_families=["llama"].Hardware, Environment, and Revisions
9c5e144ff7d0d45a9a99f643f795fc61b39233ba.714f1fc0d567213a7b79a488e9dcfdf405279c6a(github/main).changed or exercised.
Not Run / Remaining Gaps
disabled, and
pull_request_targetloads trusted workflow code frommain,so this PR cannot exercise its new workflow wiring before merge.
validation PR and confirm the directly changed family appears alongside the
shared smoke set.
Contributor Self-Review
Notes For Future Readers
tools/test_impact.pyfirst for selection semantics, then the workflowtrust-boundary validation, and finally
tools/community_gpu_ci.pyfor theisolated execution plan.
familiesremains the trusted policy inventory forscope=all;direct_familiesis the smaller set of existing family owners explicitlytouched by the pull request. Newly introduced owners remain separate in
added_families.check.
Risk level
The change affects trusted CI selection and secret-bearing GPU orchestration,
but inputs remain validated, automatic GPU allocation remains disabled, and
the behavior has focused regression coverage.