mirror of
https://github.com/Comfy-Org/ComfyUI-Manager.git
synced 2025-12-16 01:57:04 +08:00
Add comprehensive pip dependency conflict resolution framework as draft implementation. This is self-contained and does not affect existing ComfyUI Manager functionality. Key components: - pip_util.py with PipBatch class for policy-driven package management - Lazy-loaded policy system supporting base + user overrides - Multi-stage policy execution (uninstall → apply_first_match → apply_all_matches → restore) - Conditional policies based on platform, installed packages, and ComfyUI version - Comprehensive test suite covering edge cases, workflows, and platform scenarios - Design and implementation documentation Policy capabilities (draft): - Package replacement (e.g., PIL → Pillow, opencv-python → opencv-contrib-python) - Version pinning to prevent dependency conflicts - Dependency protection during installations - Platform-specific handling (Linux/Windows, GPU detection) - Pre-removal and post-restoration workflows Testing infrastructure: - Pytest-based test suite with isolated environments - Dependency analysis tools for conflict detection - Coverage for policy priority, edge cases, and environment recovery Status: Draft implementation complete, integration with manager workflows pending.
21 lines
1.0 KiB
Plaintext
21 lines
1.0 KiB
Plaintext
# Base packages for pip_util integration tests
|
|
# These packages are installed initially to test various scenarios
|
|
# All versions verified using: pip install --dry-run --ignore-installed
|
|
|
|
# Scenario 1: Dependency Version Protection (requests + urllib3)
|
|
# Purpose: Pin prevents urllib3 1.26.15 → 2.5.0 major upgrade
|
|
urllib3==1.26.15 # OLD stable version (prevent 2.x upgrade)
|
|
certifi==2023.7.22 # OLD version (prevent 2025.x upgrade)
|
|
charset-normalizer==3.2.0 # OLD version (prevent 3.4.x upgrade)
|
|
# Note: idna is NOT pre-installed (will be added by requests)
|
|
|
|
# Scenario 2: Package Deletion and Restore (six)
|
|
# Purpose: Restore policy reinstalls deleted packages
|
|
six==1.16.0 # Will be deleted and restored to 1.16.0
|
|
attrs==23.1.0 # Bystander package
|
|
packaging==23.1 # Bystander package (NOT 23.1.0, not 25.0)
|
|
|
|
# Scenario 3: Version Change and Restore (urllib3)
|
|
# Purpose: Restore policy reverts version changes
|
|
# urllib3==1.26.15 (same as Scenario 1, will be upgraded to 2.5.0 then restored)
|