ltdrdata / ComfyUI-Manager

ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI. Furthermore, this extension provides a hub feature and convenience functions to access a wide range of information within ComfyUI.
GNU General Public License v3.0
5.95k stars 735 forks source link

Use git submodules for installation/management #928

Open Xyem opened 1 month ago

Xyem commented 1 month ago

For my own ComfyUI installation, I add custom nodes as git submodules, as this allows me to manage custom nodes as part of how I manage ComfyUI (on a personal branch).

Would this installation method be considered for CUI-Manager? I have it installed as it helps with some other things, but would really like to use it for managing custom nodes as well.

ltdrdata commented 1 month ago

Actually, using git submodules is not recommended. At one point, Impact Pack also used a git submodule structure, but I found that git submodules are not supported in several systems depending on the environment. Also, when updating the submodule parts, problems frequently occurred.

I am currently considering how to handle additional installations using submodules or similar methods.

Xyem commented 1 month ago

I'd certainly be interested in hearing about these issues you experienced as I haven't had any (though I am using them to manage an installation, not a codebase).

Perhaps I have overlooked something, but submodules are, to my knowledge, the only way to manage compatible versions between ComfyUI and the custom nodes. If you just check out the latest of either of them, they could be incompatible.

ltdrdata commented 1 month ago

I'd certainly be interested in hearing about these issues you experienced as I haven't had any (though I am using them to manage an installation, not a codebase).

Perhaps I have overlooked something, but submodules are, to my knowledge, the only way to manage compatible versions between ComfyUI and the custom nodes. If you just check out the latest of either of them, they could be incompatible.

On systems with older Git installations, the submodule functionality doesn't work at all. Furthermore, when updating, there were frequent issues where changes that should have been applied to submodules weren't properly implemented.

If I make a mistake, I might need to reorganize the branch history. This often led to divergent branch issues. (This situation prevents me from delivering further updates, causing many problems.)

After encountering these issues several times, I reverted to using independent modules instead.