-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[plugin] Draft: Develop Blender plugin #1309
Draft
n-jay
wants to merge
151
commits into
AcademySoftwareFoundation:master
Choose a base branch
from
n-jay:blender-addon-dev
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 35 commits
Commits
Show all changes
151 commits
Select commit
Hold shift + click to select a range
0628f08
Add initial code
n-jay ef55258
Add preliminary version of dependency installer
n-jay cec3089
Add addon init file
n-jay 2eb2927
Rename addon init file
n-jay 77f9717
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 444bbc8
Add test job data
n-jay 8fa46dd
Add dependencies list
n-jay 134c3ce
Add initial job submission file
n-jay b4a21ab
Add dependency install check
n-jay 2656031
Install external dependencies from text file
n-jay 6d12198
Add cp module as dependency
n-jay a58b3d8
Implement OpenCue dependency install
n-jay 9c3c0d0
Reorganize imports
n-jay 4162226
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay a46f2bf
Add function to remove OpenCue dependencies when unregistering
n-jay be6c6e5
Remove external cp dependency
n-jay f9b1ea7
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 96c45b0
Resolve AttributeError
n-jay 9f4a668
Add new external dependencies
n-jay f06019c
Add opencue dependency import
n-jay 734c677
Set install directory for external python dependencies
n-jay c1b7ea1
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 9b69961
Add opencue module deletion
n-jay 2bdd58b
Add text field for OpenCue home path
n-jay 7cbb52e
Remove text field for OpenCue home path
n-jay 370ff6c
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay fe2e08a
Remove unused imports and commented lines
n-jay 96608df
Add render engine option to command
n-jay 16e6c79
Cleanup code
n-jay 949cb2a
Add Blender API to retrieve file path
n-jay 4f9f17a
Add new fields to AddonPreferences
n-jay 27991c1
Enable hardware rendering option in render command
n-jay e102e7d
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 8e3e12d
Add missing FileSequence install code
n-jay fff01a8
Update command for enabling Nvidia CUDA rendering
n-jay 1a63e39
Amend render command format
n-jay 8ae92ab
Merge branch 'blender-addon-dev' of https://github.com/n-jay/OpenCue …
n-jay d84505f
Move addon code into blender subdirectory
n-jay 43f125b
Add readme file with blender addon subdirectory details
n-jay 65726ef
Set global variables
n-jay b90a212
Implement file operations via shutil module
n-jay 2485e66
Fix addon registration bug
n-jay a99108a
Print terminal outputs in new lines
n-jay e7bf1c2
Update text field descriptions
n-jay a1e922d
Hide visibility of toggle in GUI
n-jay 7b0f6df
Fix incorrect path
n-jay 018e604
Read output path string
n-jay 1e4cd63
Add python doc comments
n-jay e384e3b
Add missing license headers
n-jay 5a7c837
Reformat code
n-jay 13c2959
Rename addon
n-jay 258235e
Move output path field
n-jay aeee004
Pin addon to output properties tab
n-jay f7e6bfa
Enable animation rendering
n-jay ae7faa7
Add success return for job submission button
n-jay d1dd023
Add continuous delivery for Blender addon
n-jay 7d47230
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay fb0a902
Parameterize rqd service image in docker compose
n-jay e0d34cc
Run rqd blender image in integration script
n-jay 3e95db6
Add Blender job to integration test script
n-jay a7b61fb
Add sample blender file
n-jay 3b515c6
Temp: Add CI build
n-jay b657ea8
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 895b066
Add frame-spec parameter format check
n-jay e4a176c
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 8dcdc31
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay e01daeb
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 44950d2
Add Blender addon build script
n-jay 7fa8a25
Add Blender addon build to CI workflow
n-jay f809128
Add CI environment check
n-jay b01400a
Remove Dockerfile
n-jay b05f70a
Fix blender addon build shell script
n-jay 8c13425
Support dependencies contained within addon
n-jay 0fde3e7
Enhance Qt compatibility and fix QtGui.QPalette bug in cuegui (#1376)
lithorus f87d65b
Bump tj-actions/changed-files from 35 to 41 in /.github/workflows (#1…
dependabot[bot] 66cad82
Bump grpcio from 1.47.0 to 1.53.2 (#1403)
dependabot[bot] 4cea175
[rqd] Fix non ASCII chars (#1335)
ramonfigueiredo 7d8518c
Fix CI/CD checks that uses old docker images (#1405)
lithorus 5c7870a
Redesign free temp dir monitoring feature (#1394)
DiegoTavares 3cae77a
New email template (#1382)
DiegoTavares dd66ec9
Add framespec parameter format check (#1389)
n-jay 4cc8bf5
Add FileSequence (#1396)
lithorus 5c36ced
Order layer outputs in the order they were added (#1399)
lithorus fb3f6cb
Fix nullpointer condition on healthcheck (#1412)
DiegoTavares bb099f8
Add prometheus metrics collecting (#1408)
DiegoTavares e3f4aca
Run dispatch queries with preparedStatements (#1410)
DiegoTavares f545809
Remove ThreadPoolTaskExecutorWrapper (#1413)
DiegoTavares 007e66e
Use opencue.properties for smtp host (#1414)
DiegoTavares 1e5d8d3
Add support for Sentry to log (#1411)
DiegoTavares e7bf2c6
Apply same node fix as for testing-pipeline (#1415)
lithorus 128eeac
Implement feature to override frame state display text/color in UI (#…
RosaBehrensCamp 1248c5a
Fix file logging to handle non-ASCII characters without timestamp (#1…
ramonfigueiredo 723f03a
[pycue] Minor API improvements (#1418)
DiegoTavares da7104f
[pycue] Add interactive functions to reboot hosts using the api (#1419)
DiegoTavares 35f0410
Avoid creating the cuebot connection twice (#1420)
DiegoTavares d3a4d3f
Fix reading CUEGUI window states in config file (#1421)
lithorus 2dcfd92
[pycue] Fix typeError on criterion search (#1422)
DiegoTavares 2830d51
Add links to the Opencue meeting notes (#1424)
ramonfigueiredo 18ae9df
Cy2024 (#1416)
lithorus f0a14fa
Cuesubmit jobs from config file with dynamic widgets (#1425)
lithorus ba4fa97
Fix "Monitor Cue" with incorrect column indexing (#1431)
ramonfigueiredo 8582eba
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay bf982bf
Test addon build in packaging-pipeline
n-jay 4268906
Temp: Remove addon build in packaging-pipeline
n-jay f8b4c9d
Fix addon build in packaging pipeline
n-jay 3207241
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay cf29086
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 06cf224
Update rqd dockerfile
n-jay 267d70e
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 2bf06f2
Remove deprecated setuptool commands
n-jay 4b45c2d
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 9db01e8
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 3a8fe6a
Merge branch 'dockerfile-updates' into blender-addon-dev
n-jay d5263a7
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay d109eea
Remove deprecated dependencies
n-jay d9d915a
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 7fa2269
Add xz tool installation
n-jay bc34849
Merge branch 'blender-docker-update' into blender-addon-dev
n-jay 021f527
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 6733231
Fix docker compose command
n-jay 9316aa7
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 54d2245
Temp: Remove RQD shutdown process
n-jay 7529e81
Add force recreate flag to Blender RQD container
n-jay d496c3e
Fix docker compose command format
n-jay cbd97b8
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay f07cd4b
Remove docker compose Blender deployment
n-jay 794909c
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay becf3be
Remove output location parameter from Blender test command
n-jay 43075cb
Update docker run command
n-jay 59a18e4
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 0e1bf72
Add missing shebang line
n-jay ae9b94b
Add missing permission to sample Blender job
n-jay 6ed032c
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 4446292
Fix Blender job name error
n-jay 469af67
Edit Blender RQD container config file
n-jay c779c60
Add tag to Blender RQD container
n-jay d08e1dc
Update variable in add tag function
n-jay 604a44b
Fix loop to check RQD Blender container connecting in Cuebot
n-jay 89e7963
Fix array iteration to check if RQD Blender container connecting to C…
n-jay 4161535
Add RQD tag addition to integration test
n-jay 9ad0725
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 17a6d18
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay 3d31512
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay f9187f9
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay dc9d99b
Fix filepath
n-jay 31c2f97
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay d74905c
Amend Blender render command
n-jay 1f8d35c
Remove .blend file input in integration tests
n-jay fb62c9e
Merge branch 'master' of https://github.com/AcademySoftwareFoundation…
n-jay e81ed48
Merge branch 'fix-integration-test-script' into blender-addon-dev
n-jay 23a5114
Merge branch 'master' into blender-addon-dev
DiegoTavares File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# Copyright Contributors to the OpenCue Project | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
import sys | ||
import subprocess | ||
import os | ||
import platform | ||
import bpy | ||
|
||
|
||
def isWindows(): | ||
return os.name == 'nt' | ||
|
||
|
||
def isMacOS(): | ||
return os.name == 'posix' and platform.system() == "Darwin" | ||
|
||
|
||
def isLinux(): | ||
return os.name == 'posix' and platform.system() == "Linux" | ||
|
||
|
||
def python_exec(): | ||
if isWindows(): | ||
return os.path.join(sys.prefix, 'bin', 'python.exe') | ||
elif isMacOS(): | ||
try: | ||
# 2.92 and older | ||
path = bpy.app.binary_path_python | ||
except AttributeError: | ||
# 2.93 and later | ||
path = sys.executable | ||
return os.path.abspath(path) | ||
elif isLinux(): | ||
return os.path.join(sys.prefix, 'bin', 'python3.10') # Works on Blender 3.3.1 LTS | ||
else: | ||
print("sorry, still not implemented for ", os.name, " - ", platform.system) | ||
return os.path.join(sys.prefix, 'sys.prefix/bin', 'python') | ||
|
||
|
||
def installModule(): | ||
# Get path of requirements file | ||
script_file = os.path.realpath(__file__) | ||
directory = os.path.dirname(script_file) | ||
file_name = "requirements.txt" | ||
requirements = os.path.join(directory, file_name) | ||
|
||
# identify for platform | ||
python_exe = python_exec() | ||
|
||
blender_dependencies_directory = "lib/python3.10/site-packages" | ||
blender_dependencies_path = os.path.join(sys.prefix, blender_dependencies_directory) | ||
|
||
# upgrade pip | ||
subprocess.call([python_exe, "-m", "ensurepip"]) | ||
subprocess.call([python_exe, "-m", "pip", "install", "--upgrade", "pip"]) | ||
# install required external packages | ||
subprocess.call([python_exe, "-m", "pip", "install", "-r", requirements, "-t", blender_dependencies_path]) | ||
|
||
# install OpenCue dependencies | ||
opencue_home = os.environ['OPENCUE_HOME'] | ||
pyoutline_directory = "pyoutline/outline" | ||
filesequence_directory = "pycue/FileSequence" | ||
opencue_directory = "pycue/opencue" | ||
|
||
pyoutline_path = os.path.join(opencue_home, pyoutline_directory) | ||
filesequence_path = os.path.join(opencue_home, filesequence_directory) | ||
opencue_path = os.path.join(opencue_home, opencue_directory) | ||
|
||
subprocess.call(["cp", "-r", pyoutline_path, blender_dependencies_path]) | ||
n-jay marked this conversation as resolved.
Show resolved
Hide resolved
|
||
subprocess.call(["cp", "-r", filesequence_path, blender_dependencies_path]) | ||
subprocess.call(["cp", "-r", opencue_path, blender_dependencies_path]) | ||
|
||
def removeModule(): | ||
# remove installed opencue dependencies | ||
blender_dependencies_directory = "lib/python3.10/site-packages" | ||
pyoutline_directory = "outline" | ||
opencue_imported_directory = "opencue" | ||
pyoutline_directory_path = os.path.join(sys.prefix, blender_dependencies_directory, pyoutline_directory) | ||
opencue_directory_path = os.path.join(sys.prefix, blender_dependencies_directory, opencue_imported_directory) | ||
|
||
subprocess.call(["rm", "-rf", pyoutline_directory_path]) | ||
subprocess.call(["rm", "-rf", opencue_directory_path]) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
|
||
import outline | ||
import outline.cuerun | ||
import outline.modules.shell | ||
|
||
import bpy | ||
|
||
def buildBlenderCmd(layerData): | ||
blenderFile = layerData.get('cmd').get('blenderFile') | ||
outputPath = layerData.get('cmd').get('outputPath') | ||
outputFormat = layerData.get('cmd').get('outputFormat') | ||
|
||
# Hardware use for rendering | ||
addon_prefs = bpy.context.preferences.addons['OpenCue'].preferences | ||
use_gpu = addon_prefs.use_gpu | ||
if use_gpu: | ||
renderHW = "CUDA" | ||
else: | ||
renderHW = "CPU" | ||
|
||
if not blenderFile: | ||
raise ValueError('No Blender file provided. Cannot submit job.') | ||
|
||
renderCommand = '{renderCmd} -b -noaudio {blenderFile} -E CYCLES'.format( | ||
renderCmd="blender", blenderFile=blenderFile) | ||
if outputPath: | ||
renderCommand += ' -o {}'.format(outputPath) | ||
if outputFormat: | ||
renderCommand += ' -F {}'.format(outputFormat) | ||
# The render frame must come after the scene and output | ||
# renderCommand += ' -f {frameToken}'.format(frameToken="#IFRAME#") | ||
renderCommand += ' -f 1 -- --cycles-device {renderHW}'.format(renderHW=renderHW) | ||
return renderCommand | ||
|
||
def buildLayer(layerData, command, lastLayer=None): | ||
"""Creates a PyOutline Layer for the given layerData. | ||
|
||
@type layerData: ui.Layer.LayerData | ||
@param layerData: layer data from the ui | ||
@type command: str | ||
@param command: command to run | ||
@type lastLayer: outline.layer.Layer | ||
@param lastLayer: layer that this new layer should be dependent on if dependType is set. | ||
""" | ||
threadable = float(layerData.get('cores')) >= 2 | ||
layer = outline.modules.shell.Shell( | ||
layerData.get('name'), command=command.split(), chunk=layerData.get('chunk'), | ||
threads=float(layerData.get('cores')), range=str(layerData.get('layerRange')), threadable=threadable) | ||
if layerData.get('services'): | ||
layer.set_service(layerData.services[0]) | ||
if layerData.get('limits'): | ||
layer.set_limits(layerData.limits) | ||
if layerData.get('dependType') and lastLayer: | ||
if layerData.dependType == 'Layer': | ||
layer.depend_all(lastLayer) | ||
else: | ||
layer.depend_on(lastLayer) | ||
return layer | ||
|
||
def buildBlenderLayer(layerData, lastLayer): | ||
"""Builds a PyOutline layer running a Blender command.""" | ||
blenderCmd = buildBlenderCmd(layerData) | ||
return buildLayer(layerData, blenderCmd, lastLayer) | ||
|
||
def submit(jobData): | ||
"""Submits the job using the PyOutline API.""" | ||
ol = outline.Outline( | ||
jobData['name'], shot=jobData['shot'], show=jobData['show'], user=jobData['username']) | ||
lastLayer = None | ||
layerData = jobData['layers'] | ||
layer = buildBlenderLayer(layerData, lastLayer) | ||
ol.add_layer(layer) | ||
lastLayer = layer | ||
|
||
return outline.cuerun.launch(ol, use_pycuerun=False) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
from __future__ import print_function | ||
from __future__ import division | ||
from __future__ import absolute_import | ||
|
||
bl_info = { | ||
"name": "OpenCue", | ||
"author": "Nuwan Jayawardene", | ||
"version": (0, 0, 0, 1), | ||
"blender": (3, 3, 1), | ||
"description": "OpenCue client for Blender.", | ||
"location": "Output Properties > OpenCue", | ||
"category": "System", | ||
} | ||
|
||
import bpy | ||
|
||
from . import Setup | ||
|
||
class SubmitJob(bpy.types.Operator): | ||
bl_idname = "object.submit_job" | ||
bl_label = "My Operator" | ||
|
||
def execute(self, context): | ||
layerData = { | ||
'name': context.scene.layer_name, | ||
'layerType': 'Blender', | ||
'cmd': { | ||
'blenderFile': bpy.data.filepath, | ||
'outputPath': '', | ||
'outputFormat': 'PNG' | ||
}, | ||
'layerRange': '1', | ||
'chunk': '1', | ||
'cores': '0', | ||
'env': {}, | ||
'services': [], | ||
'limits': [], | ||
'dependType': '', | ||
'dependsOne': None | ||
} | ||
|
||
jobData = { | ||
'name': context.scene.job_name, | ||
'username': context.scene.usr_name, | ||
'show': "testing", | ||
'shot': context.scene.shot_name, | ||
'layers': layerData | ||
} | ||
|
||
from . import Submission | ||
Submission.submit(jobData) | ||
|
||
|
||
class OpenCuePanel(bpy.types.Panel): | ||
"""A custom panel in the 3D View Properties region""" | ||
bl_label = "OpenCue" | ||
bl_idname = "SCENE_PT_layout" # VIEW_3D_opencue_panel | ||
bl_space_type = 'PROPERTIES' # VIEW_3D | ||
bl_region_type = 'WINDOW' # UI | ||
bl_category = "render" # Properties | ||
|
||
def draw(self, context): | ||
layout = self.layout | ||
|
||
col = layout.column() | ||
col.prop(context.scene, "job_name") | ||
|
||
col = layout.column() | ||
col.prop(context.scene, "usr_name") | ||
|
||
col = layout.column() | ||
col.prop(context.scene, "layer_name") | ||
|
||
col = layout.column() | ||
col.prop(context.scene, "shot_name") | ||
|
||
col = layout.column() | ||
col.operator("object.submit_job", text="Submit") | ||
|
||
|
||
class OpenCueAddonPreferences(bpy.types.AddonPreferences): | ||
bl_idname = __name__ | ||
|
||
is_dependency_install: bpy.props.BoolProperty( | ||
name="Dependency Install", | ||
default=False, | ||
description="Flag to indicate if dependencies have been installed during first install", | ||
) | ||
|
||
use_gpu: bpy.props.BoolProperty( | ||
name="Use GPU for rendering", | ||
default=False, | ||
description="Enable to utilize GPU rendering for jobs", | ||
) | ||
|
||
output_path: bpy.props.StringProperty( | ||
name="OpenCue output path", | ||
default="", | ||
) | ||
def draw(self, context): | ||
layout = self.layout | ||
layout.prop(self, "is_dependency_install") | ||
layout.prop(self, "use_gpu") | ||
layout.prop(self, "output_path") | ||
|
||
def register(): | ||
bpy.utils.register_class(OpenCueAddonPreferences) | ||
|
||
bpy.types.Scene.job_name = bpy.props.StringProperty( | ||
name="Job name", | ||
description="Enter some text", | ||
default="" | ||
) | ||
|
||
bpy.types.Scene.usr_name = bpy.props.StringProperty( | ||
name="User name", | ||
description="Enter some text", | ||
default="" | ||
) | ||
|
||
bpy.types.Scene.layer_name = bpy.props.StringProperty( | ||
name="Layer name", | ||
description="Enter some text", | ||
default="" | ||
) | ||
|
||
bpy.types.Scene.shot_name = bpy.props.StringProperty( | ||
name="Shot name", | ||
description="Enter some text", | ||
default="" | ||
) | ||
|
||
bpy.utils.register_class(OpenCuePanel) | ||
|
||
addon_pref = bpy.context.preferences.addons[__name__].preferences | ||
if not addon_pref.is_dependency_install: | ||
Setup.installModule() | ||
bpy.context.preferences.addons[__name__].preferences.is_dependency_install = True | ||
|
||
bpy.utils.register_class(SubmitJob) | ||
|
||
|
||
def unregister(): | ||
bpy.utils.unregister_class(OpenCuePanel) | ||
bpy.utils.unregister_class(SubmitJob) | ||
bpy.utils.unregister_class(OpenCueAddonPreferences) | ||
del bpy.types.Scene.job_name | ||
del bpy.types.Scene.usr_name | ||
del bpy.types.Scene.layer_name | ||
|
||
Setup.removeModule() | ||
|
||
|
||
if __name__ == "__main__": | ||
register() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
future==0.18.3 | ||
PyYAML==5.1 | ||
packaging==20.9 | ||
grpcio==1.47.0 | ||
grpcio-tools==1.47.0 | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the parent directory should be
cuesubmit/plugins/blender/
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've set the addon name as OpenCue and is detected as such in Blender upon installation, hence the subdirectory name. But I do understand the confusion so moved all the contents inside the subdirectory named blender in d84505f.
Added a README in 43f125b in the subdirectory as well so it gives some context to the naming.
Was wondering if we could set up the CI/CD pipeline so that it automatically builds the installable OpenCue.zip file so it sits alongside the addon source code.