You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Framework groups for support policy consolidation (lowercase keys)
359
+
# Flat list: repos split directly to per-repo rows on mismatch
360
+
# Nested dict: repos consolidate by sub-group first on mismatch
359
361
framework_groups:
360
362
pytorch:
361
-
- pytorch-training
362
-
- pytorch-inference
363
-
- pytorch-training-arm64
364
-
- pytorch-inference-arm64
365
-
tensorflow:
366
-
- tensorflow-training
367
-
- tensorflow-inference
368
-
- tensorflow-inference-arm64
363
+
pytorch-training:
364
+
- pytorch-training
365
+
- pytorch-training-arm64
366
+
pytorch-inference:
367
+
- pytorch-inference
368
+
- pytorch-inference-arm64
369
+
vllm:
370
+
- vllm
371
+
- vllm-arm64
369
372
370
373
# Table order (controls order in available_images.md and support_policy.md)
371
374
table_order:
@@ -376,20 +379,25 @@ table_order:
376
379
377
380
### Support Policy Consolidation
378
381
379
-
The `framework_groups` configuration consolidates support policy rows by framework. Repositories in the same group are combined into a single row using the framework name (e.g., "PyTorch").
382
+
The `framework_groups` configuration consolidates support policy rows by framework. The generation follows a 3-step flow:
380
383
381
-
**Version Display:**
384
+
**Validation (at load time):**`load_repository_images` validates that images sharing the same full version within a single repository have identical GA/EOP dates. Raises `ValueError` if not (this is a data bug).
382
385
383
-
- Images with the same major.minor version (e.g., `2.6.0` and `2.6.1`) are consolidated into a single row displayed as `2.6` if they have identical GA/EOP dates
384
-
- If patch versions have different GA/EOP dates, each is displayed separately with full version (e.g., `2.6.0`, `2.6.1`) and a warning is logged
386
+
**Step 1 — Group by full version:** All images in a framework group are grouped by full version (e.g., `2.6.0`), deduplicated per repository (one representative image per repo since intra-repo consistency is guaranteed).
385
387
386
-
**Requirements:**
388
+
**Step 2 — Hierarchical consolidation** via `_consolidate_framework_version()`: For each full version, tries three levels of date agreement, stopping at the first that succeeds:
389
+
390
+
1. Framework group — all repos agree → single row (e.g., "PyTorch")
391
+
1. Sub-group — repos within a sub-group agree → one row per sub-group (e.g., "PyTorch Inference"). Only applies to nested dict groups in `framework_groups`.
392
+
1. Per-repo — no agreement → one row per repository using its individual display name
393
+
394
+
**Step 3 — Major.minor collapse:** Non-split entries are grouped by major.minor. If all full versions within a major.minor share the same dates, they collapse into a single row displayed as the major.minor (e.g., `2.6`). Collapse is skipped for any major.minor that has split (per-repo) rows.
395
+
396
+
**Behavior:**
387
397
388
-
- All repositories in a group that have a given full version (X.Y.Z) must have identical GA/EOP dates
389
398
- Missing versions in some repositories are allowed (only present repos are consolidated)
390
-
- A `ValueError` is raised if dates differ within a group for the same full version
391
399
392
-
To add a new framework group, add an entry to `framework_groups` with the framework name as key and list of repositories as value.
400
+
To add a new framework group, add an entry to `framework_groups` with the framework name as key and list of repositories as value. Use nested dict format if you need intermediate sub-group consolidation when dates differ.
Copy file name to clipboardExpand all lines: docs/DEVELOPMENT.md
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,10 +81,14 @@ eop: "2035-10-15" # End of Patch date
81
81
82
82
**Version Consolidation:**
83
83
84
-
- Images with the same major.minor version (e.g., `2.6.0` and `2.6.1`) are consolidated into a single row displayed as `2.6` if they have identical GA/EOP dates
85
-
- If patch versions have different GA/EOP dates, each is displayed separately with full version (e.g., `2.6.0`, `2.6.1`) and a warning is logged
84
+
- Images with the same major.minor version and identical GA/EOP dates are consolidated into a single row displayed as `2.6` with the framework group name (e.g., "PyTorch")
85
+
- If the same version has different GA/EOP dates across repository types (e.g., training vs inference), separate rows are created showing the specific repository type: "PyTorch Training"and "PyTorch Inference"
86
+
- ARM64 variants are automatically consolidated with their base repository
87
+
- If patch versions within the same repository have different GA/EOP dates, each is displayed separately with full version (e.g., `2.6.0`, `2.6.1`) and a warning is logged
86
88
87
-
**Validation:** All images in the same framework group with the same full version (X.Y.Z) must have identical GA/EOP dates.
89
+
**Flexibility:** Repositories in the same framework group (e.g., pytorch-training and pytorch-inference) can have different GA/EOP dates for the same version. The system will automatically create separate rows showing the specific repository type when dates differ.
90
+
91
+
**Example:** If PyTorch 2.6 Training has EOP 2025-10-15 but PyTorch 2.6 Inference has EOP 2026-10-15, the support policy table will show two separate rows with "PyTorch Training" and "PyTorch Inference" in the Framework column.
0 commit comments