[PR #2717] [MERGED] fix(git_helper): Windows subprocess crash fix + multiplatform E2E CI #2718

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

📋 Pull Request Information

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

Base: manager-v4 ← Head: fix/git_helper


📝 Commits (4)

  • 5d34e76 fix(git_helper): surface git stderr and use portable exit code
  • 0694444 fix(e2e): cross-platform E2E tests with file-based stdout capture
  • 8f97692 feat(ci): add multiplatform E2E workflow (ubuntu/windows/macos)
  • 76d21d5 bump version to 4.1b7

📊 Changes

6 files changed (+664 additions, -36 deletions)

View changed files

➕ .github/workflows/e2e.yml (+74 -0)
📝 comfyui_manager/common/git_helper.py (+4 -5)
📝 pyproject.toml (+1 -1)
➕ tests/e2e/scripts/setup_e2e_env.py (+211 -0)
➕ tests/e2e/test_e2e_git_clone.py (+273 -0)
📝 tests/e2e/test_e2e_uv_compile.py (+101 -30)

📄 Description

Summary

Fix Windows-only ModuleNotFoundError when installing custom nodes by URL, improve error diagnostics for git clone failures, and add multiplatform E2E CI.

Changes

Bug fixes (git_helper.py)

  • Remove comfyui_manager package import that triggered __init__.py side effects in standalone subprocess on Windows
  • Inline get_backup_branch_name() using only stdlib, preserving collision-detection and UUID-fallback semantics
  • Surface git stderr in exception handler (previously swallowed by GitPython)
  • Use portable exit code 1 instead of -1 (Windows shows -1 as 4294967295)

E2E test infrastructure

  • Cross-platform cm-cli path resolution (Scripts/cm-cli.exe vs bin/cm-cli)
  • Windows-resilient _remove_pack with retry for file lock scenarios
  • Rename standalone command references uv-compile → uv-sync
  • 9 unit tests for get_backup_branch_name (AST import check, subprocess isolation, behavioral equivalence, edge cases)

CI

  • New e2e.yml workflow: ubuntu-latest, windows-latest, macos-latest matrix (Python 3.10)
  • Cross-platform setup_e2e_env.py: ComfyUI clone → venv → Manager install → junction/symlink → config

Test plan

  • 168 unit tests pass (including 9 new git_helper tests)
  • 12/12 E2E tests pass on Linux (local validation)
  • ruff lint clean
  • Windows/macOS E2E validation (requires CI run)
  • Ref: comfy-cli PR #363 (Windows E2E failures)

🔄 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/2717 **Author:** [@ltdrdata](https://github.com/ltdrdata) **Created:** 3/20/2026 **Status:** ✅ Merged **Merged:** 3/21/2026 **Merged by:** [@ltdrdata](https://github.com/ltdrdata) **Base:** `manager-v4` ← **Head:** `fix/git_helper` --- ### 📝 Commits (4) - [`5d34e76`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/5d34e76aa0ffb0d387c87b81dcc1285ac4adb3d8) fix(git_helper): surface git stderr and use portable exit code - [`0694444`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/069444450923dec3c2318d128b7b89452066bcdb) fix(e2e): cross-platform E2E tests with file-based stdout capture - [`8f97692`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/8f976920c0eb1707ca2c8330dc58f849479a99f1) feat(ci): add multiplatform E2E workflow (ubuntu/windows/macos) - [`76d21d5`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/76d21d53cddc76d08999f15a8c91c6eacd018431) bump version to 4.1b7 ### 📊 Changes **6 files changed** (+664 additions, -36 deletions) <details> <summary>View changed files</summary> ➕ `.github/workflows/e2e.yml` (+74 -0) 📝 `comfyui_manager/common/git_helper.py` (+4 -5) 📝 `pyproject.toml` (+1 -1) ➕ `tests/e2e/scripts/setup_e2e_env.py` (+211 -0) ➕ `tests/e2e/test_e2e_git_clone.py` (+273 -0) 📝 `tests/e2e/test_e2e_uv_compile.py` (+101 -30) </details> ### 📄 Description ### Summary Fix Windows-only `ModuleNotFoundError` when installing custom nodes by URL, improve error diagnostics for `git clone` failures, and add multiplatform E2E CI. ### Changes **Bug fixes (git_helper.py)** - Remove `comfyui_manager` package import that triggered `__init__.py` side effects in standalone subprocess on Windows - Inline `get_backup_branch_name()` using only stdlib, preserving collision-detection and UUID-fallback semantics - Surface git stderr in exception handler (previously swallowed by GitPython) - Use portable exit code `1` instead of `-1` (Windows shows `-1` as `4294967295`) **E2E test infrastructure** - Cross-platform `cm-cli` path resolution (`Scripts/cm-cli.exe` vs `bin/cm-cli`) - Windows-resilient `_remove_pack` with retry for file lock scenarios - Rename standalone command references `uv-compile` → `uv-sync` - 9 unit tests for `get_backup_branch_name` (AST import check, subprocess isolation, behavioral equivalence, edge cases) **CI** - New `e2e.yml` workflow: ubuntu-latest, windows-latest, macos-latest matrix (Python 3.10) - Cross-platform `setup_e2e_env.py`: ComfyUI clone → venv → Manager install → junction/symlink → config ### Test plan - [x] 168 unit tests pass (including 9 new git_helper tests) - [x] 12/12 E2E tests pass on Linux (local validation) - [x] ruff lint clean - [ ] Windows/macOS E2E validation (requires CI run) ### Related - Ref: comfy-cli PR #363 (Windows E2E failures) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-28 21:12:02 +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#2718
No description provided.