Git Product home page Git Product logo

Comments (3)

bcipriano avatar bcipriano commented on June 12, 2024

I'll give some initial info on this, but let me know if you need any further assistance or I can clarify anything further.

If you do end up creating a new submission tool, we'd be very interested in merging it into the main OpenCue codebase if you're willing!

There are a couple of approaches you could take here.

1. Use CueSubmit

The existing CueSubmit tool could be adapted with a connector for whatever application you want to use.

One thing to note here is that dependency conflicts are pretty common, especially the Qt/PySide dependency that CueSubmit uses. Often the applications are shipped with built-in dependencies that can't be easily changed, and are often outdated, which CueSubmit isn't compatible with. Given that, there are a couple of sub-approaches here.

1a. Built in directly

Load CueSubmit's dependencies and CueSubmit itself into the application's environment directly.

https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/plugins/maya/CueMayaSubmit.py is an example of this.

This only works if CueSubmit's dependencies are compatible with whatever is built into the application.

1b. Launched via an external process

Launch a version of CueSubmit as an external process in its own environment, passing some info to it via commandline flags to prepopulate whatever you need.

This is essentially a two-step process:

  1. Create a new version of the submission application, e.g. https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/plugins/nuke/CueNukeSubmit.py
  2. Add a control (button, menu item, etc.) to the application which launches the new submission application, e.g. https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/plugins/nuke/CueNukeSubmitLauncher.py

2. Create a new tool

Basically, create a new tool from scratch that integrates into the application in a more native way.

This would require using our pyoutline library to construct a job definition and send it to your Cuebot.

CueSubmit can still be helpful here as an example of how to do that. For example: https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/cuesubmit/Submission.py

See buildLayer on how to use pyoutline to construct a job layer, and submitJob on how to send the job to Cuebot.

from opencue.

michimussato avatar michimussato commented on June 12, 2024

Thanks @bcipriano for the insight. I'm aware of dependency mismatches when working an applications environment. Apologies for not being specific enough... I was just wondering how to add arbitrary tools to the Job Type drop down menu

Screenshot from 2022-10-30 21-28-18

It seems this is all Java and I'm only Python savvy :( Anyhow, once I get the time to dig a bit deeper into the architecture of OpenCue, I might come back here in case I get stuck. Take care!

from opencue.

KernZag avatar KernZag commented on June 12, 2024

We are currently adopting OpenCue in our studio and this is one of the improvements we will soon propose to the project (making sure the code is solid before submitting to review/discussion).
The approach is to be able to declare any job type from the cuesubmit_config.yaml file and populate the UI accordingly.
Having to touch the code to declare a new job type is currently a big bottleneck for adoption.
You have to :

  • declare a new jobType
  • load it in the constants
  • build a widget
  • make a command builder

Whereas modifying the yaml is straightforward and has little to no friction :)
We are currently making it work with :

  • providing command flags
  • providing a custom python script that gets inspected
  • nesting a config file per job type
    More to come real soon.

from opencue.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.