Contribute to beta tools.¶
Get the code.¶
This guide is for developers who want to contribute to Conductor client packages. conductor-*
Clone the repos you want to work on and checkout the beta branches.
git clone [email protected]:AtomicConductor/conductor-core.git --branch beta
git clone [email protected]:AtomicConductor/conductor-maya.git --branch beta
git clone [email protected]:AtomicConductor/conductor-c4d.git --branch beta
git clone [email protected]:AtomicConductor/conductor-clarisse.git --branch beta
If you want to create a new submitter, we recommend you download and refer to one of the above plugins as a template.
Use the Python Imaging Library (Pillow) to generate icons.
pip install pillow
To ensure the installation flow works, use Pip with the target
option to build the packages from their working directories, and install into the default installation directory.
Maya setup.¶
cd conductor-maya
pip install --upgrade -r requirements.txt --target=$HOME/Conductor
To tell Maya about the plugin, either run the post install script.
python ~/Conductor/ciomaya/post_install.py
OR - append the conductor.mod
location to the MAYA_MODULE_PATH
path.
export MAYA_MODULE_PATH=$HOME/Conductor/ciomaya:$MAYA_MODULE_PATH
You can now run Maya and you'll find the Conductor plugin in the Plugin Manager.
Cinema 4d setup.¶
Cinema 4d setup is similar to Maya.
cd conductor-c4d
pip install --upgrade -r requirements.txt --target=$HOME/Conductor
In Cinema 4d go to Edit->Preferences->Plugins and browse for cioc4d
in the installation directory. By default, this will be:
~/Conductor/cioc4d
Core setup.¶
As mentioned, Conductor Core is installed automatically when you install any of its dependents. If you want to install Core only, the process is similar, but rather than a requirements file, you can use a dot .
to represent the current directory.
cd conductor-core
pip install --upgrade . --target=$HOME/Conductor
Python paths¶
The Python packages ciomaya
, ciocore
, and any dependencies are now installed in ~/Conductor
. However, since the target
option was used, no entries were added to system Python paths. The goal is to set Python paths at the moment they are needed.
Maya¶
When you start Maya, the module file conductor.mod
sets the PYTHONPATH to ~/Conductor
to make the packages available in the Maya session. Example .mod
file:
+ conductor 0.1.27 .
PYTHONPATH+:=../
Shell command¶
To use the conductor shell command, type ~/Conductor/bin/conductor
. The Core python package is added to the modules path dynamically like so:
CIO_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, CIO_DIR)
Python API¶
To use the Python API from a shell or somewhere else, you can set the PYTHONPATH
to ~/Conductor
or install ciocore
without the target option and let pip add it to the system or virtualenv site-packages.
IDE¶
Intellisense¶
In order to allow intelli-sense or autocomplete to work in your IDE, you can set the PYTHONPATH to point to the local repos for the development scope. Example:
PYTHONPATH=/path/to/dev/conductor-core:/path/to/dev/conductor-maya
You shouldn't have these set in the environment where you run the built packages as they may conflict. Either setup separate environments or set the PYTHONPATH as you open the IDE.
Build command¶
I use this:
". ~/.virtualenvs/cmc/bin/activate && \
cd $HOME/dev/conductor/conductor-maya && \
pip install --upgrade -r requirements.txt --target=$HOME/Conductor && python $HOME/Conductor/ciomaya/post_install.py",
It activates the virtualenv for building (where Pillow is installed), then runs pip install from the working directory. To be sure of a clean install, you can add the --force-reinstall
flag. It also runs the post_install
script so that the mod file has the correct version. You'll then need to restart Maya.
VERSION file¶
For simplicity and consistency, packages have a plain text VERSION file at the root of the repo. It contains one line which is the version. The Companion App expects the VERSION file to be available to show the package on the plugins page.
Icons¶
Both the Maya and C4d build phases have a function to generate icons in various sizes depending on their intended use.
For Maya nodes, you can put images of any size in the images/nodeicons folder. You must name them the same as the node name. At build time, it generates two icons, one at 18px square with the prefix out_
for display in the outliner, and one 36px, for display in other panels, such as the node editor.
Fixtures¶
Fixtures are cached versions of data on disk to speed up development. They replace the following endpoints with JSON files.
Endpoint | Filename | |
---|---|---|
Software Packages | /api/v1/ee/packages | software.json |
User Projects | api/v1/projects | projects.json |
Instance Types | api/v1/instance-types | instance_types.json |
To use fixures, set the environment variable CIO_FIXTURES_DIR
to the location of the JSON files. In addition, set the try_cache
keyword to True on calls to ciocore.data.data(). In the Maya and Cinema4d plugins, there's a use_fixtures checkbox to enable this.
To create fixtures, you can either call the endpoints once and paste the JSON, or simply download the ready-made files here.