Repository navigation
Add optional enhanced metadata fields to test categories - #4109
Merged
tony-davis merged 2 commits intoFeb 20, 2026
Merged
tony-davis merged 2 commits into
tony-davis merged 2 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends the shared CTest YAML schema documentation with optional metadata fields to support richer test categorization and future AI-assisted test selection without changing existing parsing behavior.
Changes:
- Document an “enhanced” YAML structure for
test_categories.yaml, introducing optional fields such asnotes,source_coverage,api_coverage,feature_tags,dependencies, and a top-levelllm_context. - Add a summary table and key points clarifying that these enhancement fields are optional, informational, and backward compatible with the existing parser and CTest integration.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tony-davis
commented
Jan 27, 2026
tony-davis
left a comment
Contributor
Author
There was a problem hiding this comment.
Fixed - clarified that optional fields are for documentation/downstream tooling only, not enforced by the parser. Thanks for catching this!
dileepr1
force-pushed
the
users/dravindr/ctest_miopen
branch
from
February 18, 2026 19:49
2fdbbca to
471c08f
Compare
dileepr1
force-pushed
the
users/dravindr/ctest_miopen
branch
from
February 20, 2026 21:44
cef22d4 to
0970331
Compare
- Add documentation for optional fields (notes, source_coverage, api_coverage, feature_tags, dependencies) - Add clarifying comment to parser (no logic changes - YAML naturally ignores unknown fields) - Enhance level1 category as example, keep level2-level6 minimal to show backward compatibility All fields are optional and backward compatible. Teams can adopt incrementally. Enables richer test documentation and future AI-assisted test selection.
…enforced by parser
tony-davis
force-pushed
the
users/todavis/optional-metadata-miopen
branch
from
February 20, 2026 22:17
e57dca0 to
dabf769
Compare
dileepr1
pushed a commit
that referenced
this pull request
Feb 23, 2026
## Add Optional Enhanced Metadata Fields to Test Categories
This PR adds optional fields to the `test_categories.yaml` schema to
enable richer test documentation and future AI-assisted test selection.
### Key Points ✅
- **All new fields are optional** - Zero burden on teams that don't want
them
- **100% backward compatible** - Existing YAML files work unchanged
- **Minimal code changes** - Parser naturally ignores unknown fields (no
code changes needed!)
- **Incremental adoption** - Teams add fields only when they see value
- **Clear documentation** - Enhanced README with examples and use cases
### Changes
1. **README.md**: Document optional enhancement fields with examples and
use cases
### Examples
**Minimal usage (works exactly as base PR):**
```yaml
test_categories:
smoke:
description: "Quick sanity tests"
test_patterns: ["*smoke*"]
labels: ["smoke"]
```
**Enhanced usage (when team wants better documentation):**
```yaml
test_categories:
smoke:
description: "Quick sanity tests"
notes: "Run for any API changes. Critical path tests."
source_coverage: ["library/src/api.cpp"]
api_coverage: ["initialize", "cleanup"]
feature_tags: ["fast", "critical-path"]
test_patterns: ["*smoke*"]
labels: ["smoke"]
```
### Why Include Optional Fields in the Standard?
1. **Consistency** - Teams wanting richer metadata have a standardized
structure
2. **Flexibility** - No mandatory adoption, teams use what they need
3. **Prevents divergence** - Projects like hipBLASlt that need extra
metadata can adopt the standard as-is rather than creating
project-specific extensions
4. **Future-proof** - Enables innovation (AI-assisted test selection,
better documentation) without breaking changes
### Testing
- ✅ Parser gracefully ignores optional fields (no code changes needed)
- ✅ CTest execution behavior unchanged
- ✅ Backward compatible with existing deployments
### Context
This enables projects like hipBLASlt (with ~200+ test configurations) to
adopt the standardized approach with rich test metadata, rather than
implementing project-specific extensions that would defeat the
standardization effort.
This PR is a rebase of #3897 to target the new MIOpen branch
(`users/dravindr/ctest_miopen` from PR #3513) instead of the abandoned
PR #2411.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Optional Enhanced Metadata Fields to Test Categories
This PR adds optional fields to the
test_categories.yamlschema to enable richer test documentation and future AI-assisted test selection.Key Points ✅
Changes
Examples
Minimal usage (works exactly as base PR):
Enhanced usage (when team wants better documentation):
Why Include Optional Fields in the Standard?
Testing
Context
This enables projects like hipBLASlt (with ~200+ test configurations) to adopt the standardized approach with rich test metadata, rather than implementing project-specific extensions that would defeat the standardization effort.
This PR is a rebase of #3897 to target the new MIOpen branch (
users/dravindr/ctest_miopenfrom PR #3513) instead of the abandoned PR #2411.