Skip to content

Commit 9f9dcb3

Browse files
authored
Merge branch 'main' into base-cu1302-docs-update
2 parents d9a488a + ebe6f44 commit 9f9dcb3

File tree

19 files changed

+245
-106
lines changed

19 files changed

+245
-106
lines changed

.github/workflows/pr-sglang.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ env:
1919
SGLANG_VERSION: "0.5.8"
2020
PYTHON_VERSION: "py312"
2121
CUDA_VERSION: "cu129"
22-
OS_VERSION: "ubuntu22.04"
22+
OS_VERSION: "ubuntu24.04"
2323

2424
# SGLang EC2
2525
PROD_EC2_IMAGE: sglang:0.5-gpu-py312-ec2

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ __pycache__
55
.venv
66
.ruff_cache
77
.pytest_cache
8+
.vscode
89

910
# Generated docs
1011
docs/index.md

.kiro/steering/docs.md

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ docs/src/
7676

7777
- `constants.py` - Path constants, global variables, `GLOBAL_CONFIG`, `SITE_URL`, `README_PATH`, and `RELEASE_NOTES_REQUIRED_FIELDS`
7878
- `sorter.py` - Sorting tiebreaker functions: `platform_sorter`, `accelerator_sorter`, `repository_sorter`
79-
- `utils.py` - Utility functions: `load_yaml()`, `load_table_config()`, `load_jinja2()`, `render_table()`, `write_output()`, `parse_version()`, `clone_git_repository()`, `build_ecr_uri()`, `build_public_ecr_uri()`, `get_framework_order()`
79+
- `utils.py` - Utility functions: `load_yaml()`, `load_table_config()`, `load_jinja2()`, `render_table()`, `write_output()`, `parse_version()`, `clone_git_repository()`, `build_ecr_uri()`, `build_public_ecr_uri()`, `get_framework_order()`, `flatten_group_repos()`
8080
- `image_config.py` - `ImageConfig` class, image loaders (`load_repository_images`, `load_legacy_images`, `load_images_by_framework_group`), `sort_by_version`, `get_latest_image_uri`, `build_image_row`, `check_public_registry`
81-
- `generate.py` - `generate_index()`, `generate_support_policy()`, `generate_available_images()`, `generate_release_notes()`, `generate_all()`
81+
- `generate.py` - `generate_index()`, `generate_support_policy()`, `generate_available_images()`, `generate_release_notes()`, `generate_all()`, helpers: `_consolidate_framework_version()`, `_collapse_minor_versions()`
8282
- `macros.py` - MkDocs macros plugin integration
8383
- `hooks.py` - MkDocs hooks entry point
8484

@@ -356,16 +356,19 @@ display_names:
356356
known_issues: "Known Issues"
357357

358358
# 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
359361
framework_groups:
360362
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
369372

370373
# Table order (controls order in available_images.md and support_policy.md)
371374
table_order:
@@ -376,20 +379,25 @@ table_order:
376379

377380
### Support Policy Consolidation
378381

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:
380383

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).
382385

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).
385387

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:**
387397

388-
- All repositories in a group that have a given full version (X.Y.Z) must have identical GA/EOP dates
389398
- 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
391399

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.
393401

394402
### Reordering Tables and Columns
395403

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ ______________________________________________________________________
1919
- **[2025/11/17]** Released first [SGLang DLCs](https://gallery.ecr.aws/deep-learning-containers/sglang)
2020
- SageMaker: `public.ecr.aws/deep-learning-containers/sglang:0.5.5-gpu-py312`
2121

22+
### 📢 Support Updates
23+
24+
- **[2026/02/10]** Extended support for PyTorch 2.6 Inference containers until June 30, 2026
25+
- PyTorch 2.6 Inference images will continue to receive security patches and updates through end of June 2026
26+
- For complete framework support timelines, see our [Support Policy](https://aws.github.io/deep-learning-containers/reference/support_policy/)
27+
2228
### 🎉 Hot Off the Press
2329

2430
- 🌐

docs/DEVELOPMENT.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ See `docs/src/data/template/image-template.yml` for all available fields.
6565
### Step 2: Regenerate
6666

6767
```bash
68-
cd docs/src && python main.py --verbose
68+
python docs/src/main.py --verbose
6969
```
7070

7171
---
@@ -76,15 +76,19 @@ Add `ga` and `eop` fields to image configs for repositories that appear in suppo
7676

7777
```yaml
7878
ga: "2025-10-15" # General Availability date
79-
eop: "2026-10-15" # End of Patch date
79+
eop: "2035-10-15" # End of Patch date
8080
```
8181

8282
**Version Consolidation:**
8383

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
8688

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.
8892

8993
---
9094

@@ -229,4 +233,4 @@ For any changes required to the tutorial pages, create a new PR in
229233
| "Display name not found" | Add repository to `display_names` in `global.yml` |
230234
| "Inconsistent dates" | Ensure all images in same framework group/version have identical GA/EOP |
231235
| Images not appearing | Check repository is in `table_order` |
232-
| Release notes not generating | Ensure `announcements` and `packages` fields are present |
236+
| Release notes not generating | Ensure `announcements` and `packages` fields are present |

docs/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@ uv pip install -r docs/requirements.txt
1818

1919
Run the generation system without serving:
2020
```bash
21-
cd docs/src && python main.py --verbose
21+
python docs/src/main.py --verbose
2222
```
2323
This clones the `tutorials/` repository and generates markdown files in `reference/` and `releasenotes/` directories.
2424

2525
Generation flags:
2626
```bash
27-
python main.py --available-images-only
28-
python main.py --support-policy-only
29-
python main.py --release-notes-only
30-
python main.py --index-only
27+
python docs/src/main.py --available-images-only
28+
python docs/src/main.py --support-policy-only
29+
python docs/src/main.py --release-notes-only
30+
python docs/src/main.py --index-only
3131
```
3232

3333
### Serving
3434

3535
Use `mkdocs serve` to generate documentation and serve the website:
3636
```bash
37-
cd docs && mkdocs serve
37+
mkdocs serve
3838
```
3939
The site is typically available at `http://127.0.0.1:8000/deep-learning-containers/` - check the command output for the actual URL.
4040

docs/src/data/pytorch-inference-arm64/2.6-cpu-ec2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ python: py312
55
os: ubuntu22.04
66
platform: ec2
77
ga: "2025-01-29"
8-
eop: "2026-01-29"
8+
eop: "2026-06-30"
99
public_registry: true
1010

1111
tags:

docs/src/data/pytorch-inference-arm64/2.6-cpu-sagemaker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ python: py312
55
os: ubuntu22.04
66
platform: sagemaker
77
ga: "2025-01-29"
8-
eop: "2026-01-29"
8+
eop: "2026-06-30"
99
public_registry: true
1010

1111
tags:

docs/src/data/pytorch-inference-arm64/2.6-gpu-ec2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cuda: cu124
66
os: ubuntu22.04
77
platform: ec2
88
ga: "2025-01-29"
9-
eop: "2026-01-29"
9+
eop: "2026-06-30"
1010
public_registry: true
1111

1212
tags:

docs/src/data/pytorch-inference/2.6-cpu-ec2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ python: py312
55
os: ubuntu22.04
66
platform: ec2
77
ga: "2025-01-29"
8-
eop: "2026-01-29"
8+
eop: "2026-06-30"
99
public_registry: true
1010

1111
tags:

0 commit comments

Comments
 (0)