Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f427a8b
feat: Add automated dependency version tracking and extraction
Oct 10, 2025
7ea0b89
Add SPDX copyright header to extraction script
Oct 10, 2025
62b6e1f
Fix pre-commit issues: import order and EOF
Oct 10, 2025
b283998
Remove unintended files and update .gitignore
Oct 10, 2025
692b308
Fix pre-commit issues: executable permission and unused variables
Oct 10, 2025
318f45c
Fix remaining unused variables: service and critical_reason
Oct 10, 2025
51af209
Make baseline dependency count dynamic based on previous extraction
Oct 10, 2025
749d8e2
Add removed dependencies tracking and PR reporting
dagil-nvidia Oct 10, 2025
cc3c88f
Fix YAML syntax error in nightly workflow
dagil-nvidia Oct 10, 2025
d520194
Fix all pre-commit issues: YAML syntax and formatting
dagil-nvidia Oct 10, 2025
9ac63de
Fix shell script extraction to skip runtime-determined versions
dagil-nvidia Oct 10, 2025
c0722d0
feat: Enhance dependency extraction to capture pip installs and binar…
dagil-nvidia Oct 13, 2025
3b0e8ab
fix: Remove trailing whitespace from extraction script
dagil-nvidia Oct 13, 2025
bd37921
fix: address CodeRabbit and reviewer feedback
dagil-nvidia Oct 14, 2025
e4619f1
Address nv-tusharma's review comments
dagil-nvidia Oct 17, 2025
f5a8770
feat(deps): add version discrepancy detection and composite action
dagil-nvidia Oct 20, 2025
3b5a644
fix: apply black and ruff formatting fixes
dagil-nvidia Oct 20, 2025
5ff3749
fix(deps): improve discrepancy detection accuracy
dagil-nvidia Oct 20, 2025
f547bae
fix(deps): skip sub-dependency ARGs, normalize pinning, and document …
dagil-nvidia Oct 20, 2025
a1860f0
fix: apply isort and black formatting
dagil-nvidia Oct 20, 2025
3972458
feat(deps): add automated failure monitoring for dependency extractio…
dagil-nvidia Oct 20, 2025
a86a3f5
fix: address pre-commit trailing whitespace issues
dagil-nvidia Oct 21, 2025
e91ff3e
refactor(deps): address nv-anants review feedback
dagil-nvidia Oct 21, 2025
acc4450
docs(deps): add comprehensive documentation for dependency extraction
dagil-nvidia Oct 21, 2025
b98d2cf
chore: trigger DCO re-check
dagil-nvidia Oct 21, 2025
f041e40
refactor(deps): modularize dependency extraction system
dagil-nvidia Oct 22, 2025
32456dc
feat(deps): add extractor architecture and unit tests
dagil-nvidia Oct 22, 2025
512c347
Merge branch 'main' into feature/dependency-extraction-DYN-1235
dagil-nvidia Oct 22, 2025
c163fa4
fix: apply pre-commit formatting fixes and update test markers
dagil-nvidia Oct 22, 2025
d20b575
feat(deps): add dynamic FRAMEWORK_VERSIONS.md generator
dagil-nvidia Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Address nv-tusharma's review comments
- Clarify that critical dependencies are explicitly maintained in config
- Add framework versions (TensorRT-LLM, vLLM, SGLang) to critical list
- Add comment explaining latest.csv workflow to avoid confusion
- Document that optional dependencies are already extracted from pyproject.toml

Addresses review feedback from PR #3547

Signed-off-by: Dan Gil <[email protected]>
  • Loading branch information
dagil-nvidia committed Oct 21, 2025
commit e4619f1fa4cf9e493400f4aab66b9024f4f11bb4
5 changes: 4 additions & 1 deletion .github/reports/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,12 @@ Critical dependencies are flagged in the CSV to highlight components that requir
- Production stability
- Compliance requirements

The list of critical dependencies is maintained in `../workflows/extract_dependency_versions_config.yaml` under the `critical_dependencies` section. Examples include:
The list of critical dependencies is **explicitly maintained** in `../workflows/extract_dependency_versions_config.yaml` under the `critical_dependencies` section. Only dependencies listed in this configuration file are marked as critical. Examples include:
- CUDA (compute platform)
- PyTorch (ML framework)
- TensorRT-LLM (inference framework)
- vLLM (inference framework)
- SGLang (inference framework)
- Python (runtime)
- Kubernetes (orchestration)
- NATS (message broker)
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/extract_dependency_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -1031,6 +1031,10 @@ def extract_pyproject_toml(self, pyproject_path: Path, component: str) -> None:
in_dependencies = True
continue
elif stripped.startswith("[project.optional-dependencies]"):
# Extract optional dependencies (e.g., trtllm, vllm, sglang)
# These are component-specific dependency groups in pyproject.toml
# Future enhancement: Consider using pyproject.toml as the single
# source of truth for all dependencies instead of multiple files
in_optional = True
continue
elif stripped.startswith("[") and in_dependencies:
Expand Down Expand Up @@ -2031,6 +2035,11 @@ def main():
latest_csv = args.latest_csv
if latest_csv is None:
# Look for dependency_versions_latest.csv in .github/reports/
# Note: The nightly workflow always overwrites this same file in the repo.
# There's no version conflict because:
# 1. This file is committed to the repo (one canonical "latest" version)
# 2. Timestamped artifacts are uploaded separately with unique names
# 3. Each run reads the committed latest.csv, generates new data, then overwrites it
reports_dir = repo_root / ".github/reports"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There could be a version conflict here, if I already have a file named dependency_versions_latest.csv and I add another csv with the same name, which seems to be the case here: https://github.com/ai-dynamo/dynamo/pull/3547/files#:~:text=%2D%20name%3A%20Upload%20artifacts
, then I'll need to ensure I pick up by timestamp instead of the latest tag.

latest_candidate = reports_dir / "dependency_versions_latest.csv"
if latest_candidate.exists():
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/extract_dependency_versions_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,18 @@ critical_dependencies:
reason: "TensorRT-LLM base container"
- name: "CUDA-dl-base"
reason: "vLLM/SGLang base container"
- name: "TensorRT-LLM"
reason: "NVIDIA TensorRT-LLM inference framework"
- name: "tensorrt-llm"
reason: "TensorRT-LLM Python package"
- name: "vLLM"
reason: "vLLM inference framework"
- name: "vllm"
reason: "vLLM Python package"
- name: "SGLang"
reason: "SGLang inference framework"
- name: "sglang"
reason: "SGLang Python package"

# Network & Communication (ARG names are formatted: NIXL_REF -> Nixl Ref)
- name: "Nixl"
Expand Down