You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!-- NOTE: This file must stay in sync with CLAUDE.md. If you update one, update the other. -->
2
+
1
3
## Project Overview
2
4
3
-
ComfyGit is a monorepo workspace using uv for Python package management. It provides unified environment management for ComfyUI through multiple coordinated packages.
5
+
ComfyGit is a monorepo workspace using uv for Python package management. It provides unified environment management for ComfyUI through multiple coordinated packages. Licensed under GPL-3.0.
**Python commands:** Use `uv run` for running Python scripts and tools (e.g., `uv run docs/comfygit-docs/scripts/generate_cli_reference.py`). Avoid calling `python` directly.
110
+
### Environment Configuration
111
+
```bash
112
+
# PyTorch backend (machine-specific, gitignored)
113
+
cg -e <name> env-config torch-backend show # Show current backend
**IMPORTANT:** Always use `uv run pytest`, never bare `pytest`. The project uses uv for dependency management and pytest is only available through the virtual environment.
144
+
### Manager (comfygit-manager custom node)
145
+
```bash
146
+
cg -e <name> manager status # Show manager version and update availability
147
+
cg -e <name> manager update # Update or migrate comfygit-manager
148
+
```
58
149
150
+
### Other
59
151
```bash
60
-
# From repo root - run all tests
61
-
uv run pytest packages/core/tests/ -v
152
+
cg -e <name> workflow list # List tracked workflows
uv run pytest packages/core/tests/unit/managers/test_pyproject_manager.py -v
163
+
ComfyGit keeps environments portable by separating machine-specific config from the tracked `pyproject.toml`. Two gitignored files handle this:
65
164
66
-
# Run specific test class or function
67
-
uv run pytest packages/core/tests/unit/managers/test_pyproject_manager.py::TestStripLocalPathSources -v
165
+
### `.pytorch-backend`
166
+
Auto-detected per machine. Stores the PyTorch CUDA backend (e.g., `cu128`, `cpu`) and exact wheel versions. On import/create, ComfyGit probes the local GPU and writes this file. During sync, the PyTorch config is temporarily injected into pyproject.toml, resolved by UV, then removed.
68
167
69
-
# Run tests matching a pattern
70
-
uv run pytest packages/core/tests/ -k "injection" -v
168
+
### `.local-uv-config`
169
+
Machine-specific TOML file for overriding package sources, adding custom indexes, or pinning constraint dependencies. Managed via `cg env-config local-sources`. Contents are injected at sync time but never committed.
71
170
72
-
# Quick run (no verbose)
73
-
uv run pytest packages/core/tests/unit/managers/test_local_uv_config_manager.py -q
171
+
```toml
172
+
# Example: Use local editable build of sageattention
Background PyPI check runs on every CLI invocation. If a newer version exists, a one-line notice is printed to stderr. Cached in `~/.config/comfygit/update_state.json` with 24h recheck window. Disable with `COMFYGIT_NO_UPDATE_CHECK=1`.
81
184
82
-
## Validation
185
+
### Environment Name Validation
186
+
Names must be 1-64 chars, alphanumeric + hyphens/underscores, no leading/trailing hyphens. Applied at create and import time.
187
+
188
+
## Version Management
83
189
84
-
Use `/validate` after features or fixes that change observable behavior. The skill covers quick checks against the shared workspace and full validation with disposable workspaces via `dev/scripts/validation-workspace.sh`.
190
+
All packages use **lockstep versioning** - same version number, always.
85
191
86
-
## Important Notes
192
+
```bash
193
+
make show-versions # Check current versions
194
+
make bump-version VERSION=0.4.0 # Bump all packages
195
+
make check-versions # CI validation
196
+
```
87
197
88
-
- Both packages must always have the same version (lockstep)
89
-
- Never manually edit version numbers - use `make bump-version`
90
-
- Code should work across Linux, Windows, and Mac
198
+
Publishing is automated via `.github/workflows/publish.yml` - push version bump to main and the workflow handles PyPI publishing and GitHub releases.
91
199
92
-
## Issue Tracking (Beads)
200
+
## Development Commands
201
+
202
+
```bash
203
+
make install / make dev / make test / make lint
204
+
```
93
205
94
-
This project uses beads (`bd`) for issue tracking with the **`cg-`** prefix.
bd dep add cg-yyy cg-xxx # cg-yyy depends on cg-xxx (xxx blocks yyy)
247
+
**When a commit implements, fixes, or closes a bead, include the bead ID(s) in the commit message.** This creates traceability between git history and issue tracking.
137
248
138
-
# Closing
139
-
bd close cg-xxx # Close single issue
140
-
bd close cg-xxx cg-yyy cg-zzz # Close multiple at once
141
-
bd close cg-xxx --reason="Done in commit abc"# Close with reason
142
-
```
249
+
Format: `<description> [<bead-id>]` or `<description> [<bead-id>, <bead-id>]`
0 commit comments