[PR #2681] [CLOSED] feat(deps): add unified dependency resolver with uv pip compile #2687

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

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/ComfyUI-Manager/pull/2681
Author: @ltdrdata
Created: 3/10/2026
Status: ❌ Closed

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


📝 Commits (1)

  • 11c5f0a feat(deps): add unified dependency resolver with uv pip compile

📊 Changes

18 files changed (+5382 additions, -28 deletions)

View changed files

📝 .gitignore (+3 -1)
📝 cm_cli/__main__.py (+294 -14)
📝 comfyui_manager/common/manager_util.py (+1 -0)
➕ comfyui_manager/common/unified_dep_resolver.py (+704 -0)
📝 comfyui_manager/glob/manager_core.py (+15 -3)
📝 comfyui_manager/prestartup_script.py (+44 -1)
➕ docs/dev/DESIGN-unified-dependency-resolver.md (+812 -0)
➕ docs/dev/PRD-unified-dependency-resolver.md (+363 -0)
➕ docs/dev/TEST-environment-setup.md (+194 -0)
➕ docs/dev/TEST-unified-dep-resolver.md (+788 -0)
📝 docs/en/cm-cli.md (+45 -4)
📝 docs/ko/cm-cli.md (+43 -4)
📝 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/e2e/test_e2e_uv_compile.py (+254 -0)
➕ tests/test_unified_dep_resolver.py (+1376 -0)

📄 Description

Add UnifiedDepResolver that batch-resolves all custom node pack dependencies via uv pip compile, replacing per-node pip installs.

Core features:

  • Collect, sanitize, and compile requirements from all node packs
  • Input validation with regex-based sanitization and blacklist/override support
  • Conflict detection with per-node-pack attribution output
  • CollectedDeps.sources stores (pack_path, pkg_spec) tuples for attribution
  • Startup integration via prestartup_script.py with fallback to legacy path
  • --uv-compile flag on 8 CLI commands: uv-compile, install, reinstall, update, fix, restore-snapshot, restore-dependencies, install-deps

Testing:

  • 148 unit tests (mock-based) covering all resolver logic
  • 12 E2E pytest tests using ltdrdata's dedicated conflict test packs
  • E2E environment setup scripts (setup, start, stop)
  • Supply-chain safety policy: only verified authors' packs in E2E

Documentation:

  • PRD and DESIGN specs for the resolver
  • EN/KO cm-cli user docs updated for all new commands
  • Test documentation and environment setup guide

Bump version to 4.1b3.


🔄 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/2681 **Author:** [@ltdrdata](https://github.com/ltdrdata) **Created:** 3/10/2026 **Status:** ❌ Closed **Base:** `manager-v4` ← **Head:** `feat/unified-dep-resolver-full` --- ### 📝 Commits (1) - [`11c5f0a`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/11c5f0ad9038e94ca47df6b555ee55d4a8989fb2) feat(deps): add unified dependency resolver with uv pip compile ### 📊 Changes **18 files changed** (+5382 additions, -28 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+3 -1) 📝 `cm_cli/__main__.py` (+294 -14) 📝 `comfyui_manager/common/manager_util.py` (+1 -0) ➕ `comfyui_manager/common/unified_dep_resolver.py` (+704 -0) 📝 `comfyui_manager/glob/manager_core.py` (+15 -3) 📝 `comfyui_manager/prestartup_script.py` (+44 -1) ➕ `docs/dev/DESIGN-unified-dependency-resolver.md` (+812 -0) ➕ `docs/dev/PRD-unified-dependency-resolver.md` (+363 -0) ➕ `docs/dev/TEST-environment-setup.md` (+194 -0) ➕ `docs/dev/TEST-unified-dep-resolver.md` (+788 -0) 📝 `docs/en/cm-cli.md` (+45 -4) 📝 `docs/ko/cm-cli.md` (+43 -4) 📝 `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/e2e/test_e2e_uv_compile.py` (+254 -0) ➕ `tests/test_unified_dep_resolver.py` (+1376 -0) </details> ### 📄 Description Add UnifiedDepResolver that batch-resolves all custom node pack dependencies via uv pip compile, replacing per-node pip installs. Core features: - Collect, sanitize, and compile requirements from all node packs - Input validation with regex-based sanitization and blacklist/override support - Conflict detection with per-node-pack attribution output - CollectedDeps.sources stores (pack_path, pkg_spec) tuples for attribution - Startup integration via prestartup_script.py with fallback to legacy path - --uv-compile flag on 8 CLI commands: uv-compile, install, reinstall, update, fix, restore-snapshot, restore-dependencies, install-deps Testing: - 148 unit tests (mock-based) covering all resolver logic - 12 E2E pytest tests using ltdrdata's dedicated conflict test packs - E2E environment setup scripts (setup, start, stop) - Supply-chain safety policy: only verified authors' packs in E2E Documentation: - PRD and DESIGN specs for the resolver - EN/KO cm-cli user docs updated for all new commands - Test documentation and environment setup guide Bump version to 4.1b3. --- <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:48 +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#2687
No description provided.