Skip to content

Commit 14c44da

Browse files
authored
Merge branch 'main' into label
2 parents 2be2ba4 + 29d1eda commit 14c44da

File tree

20 files changed

+301
-96
lines changed

20 files changed

+301
-96
lines changed

.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/.nav.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ nav:
33
- Getting Started:
44
- get_started/index.md
55
- Using Deep Learning Containers: get_started/using_dlcs.md
6+
- Release Notifications: get_started/release_notifications.md
67
- Release Notes:
78
- releasenotes/index.md
89
- Base: releasenotes/base/index.md

docs/DEVELOPMENT.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,14 @@ eop: "2035-10-15" # End of Patch date
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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Receive Notifications on New Updates
2+
3+
You can receive notifications whenever a new {{ dlc_short }} is released. Notifications are published with
4+
[Amazon Simple Notification Service ({{ sns }})](https://docs.aws.amazon.com/sns/latest/dg/welcome.html){:target="_blank"} using the following topic.
5+
6+
```
7+
arn:aws:sns:us-west-2:767397762724:dlc-updates
8+
```
9+
10+
Messages are posted here when a new {{ dlc_short }} is published. The version, metadata, and regional image URIs of the container will be included in
11+
the message.
12+
13+
These messages can be received using several different methods. We recommend the following method.
14+
15+
## Subscribe to the SNS Topic
16+
17+
1. Open the [{{ sns }} console](https://console.aws.amazon.com/sns/home){:target="_blank"}.
18+
19+
2. In the navigation bar, change the {{ aws }} Region to **US West (Oregon)**, if necessary. You must select the region where the {{ sns }}
20+
notification that you are subscribing to was created.
21+
22+
3. In the navigation pane, choose **Subscriptions**, **Create subscription**.
23+
24+
4. For the **Create subscription** dialog box, do the following:
25+
26+
1. For **Topic ARN**, copy and paste the following Amazon Resource Name (ARN): `arn:aws:sns:us-west-2:767397762724:dlc-updates`
27+
28+
2. For **Protocol**, choose one from **[Amazon Simple Queue Service ({{ sqs }}), {{ lambda }}, Email, Email-JSON]**
29+
30+
3. For **Endpoint**, enter the email address or **Amazon Resource Name (ARN)** of the resource that you will use to receive the notifications.
31+
32+
4. Choose **Create subscription**.
33+
34+
5. You receive a confirmation email with the subject line *{{ aws }} Notification - Subscription Confirmation*. Open the email and choose **Confirm
35+
subscription** to complete your subscription.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
framework: Base
2+
version: "13.0.2"
3+
accelerator: gpu
4+
python: py313
5+
cuda: cu130
6+
os: ubuntu22.04
7+
platform: ec2
8+
ga: "2026-02-09"
9+
eop: "2027-02-09"
10+
public_registry: true
11+
12+
tags:
13+
- "13.0.2-gpu-py313-cu130-ubuntu22.04-ec2"
14+
- "13.0.2-gpu-py313-ubuntu22.04-ec2"
15+
- "13.0-gpu-py313-cu130-ubuntu22.04-ec2"
16+
- "13.0-gpu-py313-ubuntu22.04-ec2"
17+
18+
announcements:
19+
- "Introduced Base containers with CUDA 13.0.2 for EC2, ECS, EKS"
20+
- "Added Python 3.13 support"
21+
22+
packages:
23+
python: "3.13.11"
24+
cuda: "13.0.2"
25+
cudnn: "9.15.1.9"
26+
nccl: "2.28.9-1"
27+
efa: "1.47.0"

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:

0 commit comments

Comments
 (0)