AcademySoftwareFoundation / OpenCue

A render management system you can deploy for visual effects and animation productions.
https://www.opencue.io
Apache License 2.0
832 stars 202 forks source link

Changes to requirements.txt and define dependencies #1441

Open lithorus opened 3 months ago

lithorus commented 3 months ago

I would suggest that we re-structure the requirements structure and also create clear guidelines for dependencies.

Requirements.txt

We could create the following requirements.txt files :

requirements.txt (used by outline and opencue) requirements_rqd (used by rqd in addition to the opencue module) requirements_gui.txt (used by cuegui and cuesubmit) requirements_docs.txt (used by docs in addition to all of the above) requirements_pylint.txt (used by the testing pipeline in addition to all of the above)

Dependencies

The following dependency graph could be introduced.

graph TD;
  opencue[opencue outline]-->rqd;
  opencue-->cueadmin;
  opencue-->cuegui;
  opencue-->docs;
  cuegui[cuegui cuesubmit]-->docs;
  cueadmin-->docs;
  rqd-->docs;

The idea is that dependencies are only in 1 direction and to also minimize the dependencies for outline and opencue which usually are used within the DCC's and might not align with VFX platform specs.

Testing

Due to the lesser dependencies, it should also be faster to do testing in smaller scopes.

opencue, outline, rqd could be tested in pure python environments (using the python:xx docker containers) from version 3.7 and up in (ignoring the VFX platform specs) in addition to the usual "full set" tests.

Additional context One of the benefits is that hopefully it should be easier to release packages of outline, rqd and rqd to pypi.org. Another benefit of this is that it will be easier to centralize some of the functionalities (eg. move the protobuf files) into the opencue module.