masqu3rad3 / tik_manager4

Tik Manager is a Python-based Pipeline and Project Management platform designed for VFX and Animation Projects.
GNU General Public License v3.0
80 stars 4 forks source link

Make the Blender add-on more compatible with the Blender ecosystem. #85

Open kursad-k opened 3 months ago

kursad-k commented 3 months ago

The current Tik Manager's Blender add-on is installed via the startup folder which is something the Blender add-ons generally should refrain from. It is better to let Blender maintain the add-on's sandbox and compatibility. This is similar to the issue of using global variables in Blender add-ons. The add-on developers can use globals in the add-ons, but Blender has mechanisms to handle various scopes for such variables that Blender handles internally. Such practice improves the stability and the internal management of the variables throughout the application.

Turning it into a regular add-on also will make it compatible with the upcoming https://extensions.blender.org

Questions to understand the current use case. I am not familiar with the tool yet, so these questions will help us with repacking it partially.

Thanks

masqu3rad3 commented 3 months ago

Thank you for bringing this up.

I will try to answer some of the questions as much as I can. Can we install the dependencies on the fly? Currently there is no automated mechanism for dependency installation. However CLI in the repository does that, so it can be easily implemented. Having that said, the release packages contains all necessary packages. In theory no dependency installation required. The only exceptions are the standalone version for Linux which requires Python 3.6+ and one of the PyQt5, PyQt6, PySide2 or PySide6 and Linux version of Blender -which requires additional integration of PySide2. (This is explained in the documentation/installation section) The idea is to make and keep it extremely simple to install and start using especially for non-technical users.

Can we decouple the add-on from the rest of the package in a way that makes it independent. We can still add settings/paths in the preferences for defining where Tik Manager lives. This is something the user can do via the add-on preferences. As long as we can do the installation without requiring launch of the DCCs I don't see any problem decoupling it. Currently almost all DCC integrations (with a few minor exceptions) are just adding the python path to the DCCs python interpreter and run the command. The rule of thumb is to be able to do the installation programmatically with an installer. Currently there is an extremely simple installer for Windows that can install the manager and make the integration to all DCCs in less than 30 seconds. The aim should be a similar approach for all OSs.

Which libraries does the add-on need in the add-on's own folder? I don't think there isn't any. If I understood the question correctly.

Which libraries/modules does it need to access externally? For Blender, it requires to access to the tik_manager installation folder and PySide2 (or 6). For Windows, there is a pre-compiled pyside2 library included into the package. Currently, path to this folder additionally added to startup script (either manually or automatically with the exe installer) For Linux, PySide needs to be integrated to Blender manually.