[PR #2589] [MERGED] feat(deps): add unified dependency resolver using uv pip compile #2620

Closed
opened 2026-10-28 21:11:14 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/ComfyUI-Manager/pull/2589
Author: @ltdrdata
Created: 2/6/2026
Status: ✅ Merged
Merged: 3/6/2026
Merged by: @ltdrdata

Base: manager-v4 ← Head: feat/unified-dep-resolver


📝 Commits (8)

  • e60a66b feat(deps): add unified dependency resolver using uv pip compile
  • bd38ff2 fix(deps): reset use_unified_resolver flag on startup fallback
  • df072a1 test(deps): add manual test cases for unified dependency resolver
  • da7e6f4 fix(deps): prevent read_config() from overriding resolver fallback state
  • 3d9c9ca fix(deps): support multiple index URLs per line and optimize downgrade check
  • ca86985 test(deps): add E2E scripts and update test documentation
  • b11aee7 fix(deps): harden input sanitization, expand test coverage, bump version
  • a44c52f feat(cli): add uv-compile command and --uv-compile flag for batch dependency resolution

📊 Changes

15 files changed (+4667 additions, -8 deletions)

View changed files

📝 .gitignore (+3 -1)
📝 cm_cli/__main__.py (+104 -2)
📝 comfyui_manager/common/manager_util.py (+1 -0)
➕ comfyui_manager/common/unified_dep_resolver.py (+703 -0)
📝 comfyui_manager/glob/manager_core.py (+15 -3)
📝 comfyui_manager/prestartup_script.py (+44 -1)
➕ docs/dev/DESIGN-unified-dependency-resolver.md (+777 -0)
➕ docs/dev/PRD-unified-dependency-resolver.md (+357 -0)
➕ docs/dev/TEST-environment-setup.md (+194 -0)
➕ docs/dev/TEST-unified-dep-resolver.md (+788 -0)
📝 pyproject.toml (+1 -1)
➕ tests/e2e/scripts/setup_e2e_env.sh (+241 -0)
➕ tests/e2e/scripts/start_comfyui.sh (+129 -0)
➕ tests/e2e/scripts/stop_comfyui.sh (+75 -0)
➕ tests/test_unified_dep_resolver.py (+1235 -0)

📄 Description

  • Add UnifiedDepResolver module with 7 FRs: collect, compile, install pipeline
  • Integrate startup batch resolution in prestartup_script.py (module scope)
  • Skip per-node pip install in execute_install_script() when unified mode active
  • Add use_unified_resolver config flag following use_uv pattern
  • Input sanitization: reject -r, -e, --find-links, @ file://, path separators
  • Handle --index-url/--extra-index-url separation with credential redaction
  • Fallback to per-node pip on resolver failure or uv unavailability
  • Add 98 unit tests across 20 test classes
  • Add PRD and Design docs with cm_global integration marked as DEFERRED

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/ComfyUI-Manager/pull/2589 **Author:** [@ltdrdata](https://github.com/ltdrdata) **Created:** 2/6/2026 **Status:** ✅ Merged **Merged:** 3/6/2026 **Merged by:** [@ltdrdata](https://github.com/ltdrdata) **Base:** `manager-v4` ← **Head:** `feat/unified-dep-resolver` --- ### 📝 Commits (8) - [`e60a66b`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/e60a66b1e6be5ff1f3abfc2f6297dfb6dc7676a4) feat(deps): add unified dependency resolver using uv pip compile - [`bd38ff2`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/bd38ff25a1a892136d6672e826c9aaa34713183d) fix(deps): reset use_unified_resolver flag on startup fallback - [`df072a1`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/df072a101fe3eddd1963befb8327abc36937db54) test(deps): add manual test cases for unified dependency resolver - [`da7e6f4`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/da7e6f4454f155ad9990086a92b9c84a1491320c) fix(deps): prevent read_config() from overriding resolver fallback state - [`3d9c9ca`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/3d9c9ca8decffab93fef8ee96f70b62c634184de) fix(deps): support multiple index URLs per line and optimize downgrade check - [`ca86985`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/ca8698533da19572fc7029b31814f4d63dab9273) test(deps): add E2E scripts and update test documentation - [`b11aee7`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/b11aee7c1e5fcc6ec5b4afee4e1f818494086e34) fix(deps): harden input sanitization, expand test coverage, bump version - [`a44c52f`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/a44c52f5beb88f4a1572c01cbef8eacf3ea8b455) feat(cli): add uv-compile command and --uv-compile flag for batch dependency resolution ### 📊 Changes **15 files changed** (+4667 additions, -8 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+3 -1) 📝 `cm_cli/__main__.py` (+104 -2) 📝 `comfyui_manager/common/manager_util.py` (+1 -0) ➕ `comfyui_manager/common/unified_dep_resolver.py` (+703 -0) 📝 `comfyui_manager/glob/manager_core.py` (+15 -3) 📝 `comfyui_manager/prestartup_script.py` (+44 -1) ➕ `docs/dev/DESIGN-unified-dependency-resolver.md` (+777 -0) ➕ `docs/dev/PRD-unified-dependency-resolver.md` (+357 -0) ➕ `docs/dev/TEST-environment-setup.md` (+194 -0) ➕ `docs/dev/TEST-unified-dep-resolver.md` (+788 -0) 📝 `pyproject.toml` (+1 -1) ➕ `tests/e2e/scripts/setup_e2e_env.sh` (+241 -0) ➕ `tests/e2e/scripts/start_comfyui.sh` (+129 -0) ➕ `tests/e2e/scripts/stop_comfyui.sh` (+75 -0) ➕ `tests/test_unified_dep_resolver.py` (+1235 -0) </details> ### 📄 Description - Add UnifiedDepResolver module with 7 FRs: collect, compile, install pipeline - Integrate startup batch resolution in prestartup_script.py (module scope) - Skip per-node pip install in execute_install_script() when unified mode active - Add `use_unified_resolver` config flag following `use_uv` pattern - Input sanitization: reject -r, -e, --find-links, @ file://, path separators - Handle --index-url/--extra-index-url separation with credential redaction - Fallback to per-node pip on resolver failure or uv unavailability - Add 98 unit tests across 20 test classes - Add PRD and Design docs with cm_global integration marked as DEFERRED --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-28 21:11:14 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/ComfyUI-Manager#2620
No description provided.