Jump to content

Ftrack and Conda


tokejepsen

Recommended Posts

Hey,

Wanted to share my findings and experiments about using Conda with Ftrack.

You can read about Conda here; http://conda.pydata.org/docs/, but basically its a package manager similar to pip or virtualenv that is independent from Python. This independence means that you can setup a known environment from a single batch or shell script easily.

Here is an example of a batch script that downloads Miniconda, a minimal version of Conda, and sets up an environment with the latest Python 2.7; https://github.com/Bumpybox/bumpybox-core/blob/1c30c78caf4533c6ff45e4a22e5c5818db9b6865/startup.bat. Making a shell script that does the same should be fairly easy and I'll post when I have one.

The entire repository; https://github.com/Bumpybox/bumpybox-core, are my current experiments in having a portable pipeline that is also developer friendly. The idea is to have a single entry point for Windows and OSX/Linux, with a batch and shell script. Conda will be the framework to set up a known environment that includes the various ftrack repositories for ftrack-connect to work.
I've got Maya to fully work, but current struggling with Nuke as I'm getting an error on opening Nuke. Maybe some clever Ftrack developers can point me in the right direction?
I know you guys might be using OSX, so I'll get a shell script asap together.

Eventually I would like to have a repository that could be use by other people, but I haven't figured out a structure for it yet which is why I'm currently using submodules.

Link to comment
Share on other sites

I've now done a couple of takes on using conda with a pipeline, and I think I have the beginning of a structure that can be used by other people.

In the end all pipelines that want to use conda as their package manager, should really be looking at making conda packages, but this is not an easy task and it doesn't work well with remote git repositories.

The aim of the project would be to make conda easily accessible for people to setup a known environment for their pipeline. Thus this project would be used for isolating the environment and resolving dependencies.

The idea is to have a single entry point through batch and shell script, that installs Miniconda and runs any python scripts from a configuration. This seems to be the simplest and most flexible.
Another idea is to be more based in git. Here the configuration would be pointing to a git repsitory (remote or local), which would be pulled/updated and a python script from the repository would be executed. Here the projects responsibilities would to extended to keep git repositories updated, and execute a python script in a known environment.

I'm very open to ideas or pros/cons, as I'm still toying with the main concept.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...