Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
Merge branch 'develop' into feature/OP-3420_Trigger-callback-on-workf…
Browse files Browse the repository at this point in the history
…ile-open
  • Loading branch information
iLLiCiTiT committed Jun 20, 2022
2 parents 8b1576a + 96d1ca7 commit 48f966a
Show file tree
Hide file tree
Showing 31 changed files with 394 additions and 312 deletions.
70 changes: 40 additions & 30 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,42 @@
# Changelog

## [3.11.0-nightly.3](https://github.com/pypeclub/OpenPype/tree/HEAD)
## [3.11.1](https://github.com/pypeclub/OpenPype/tree/3.11.1) (2022-06-20)

[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.10.0...HEAD)
[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.11.0...3.11.1)

**🆕 New features**

- Flame: custom export temp folder [\#3346](https://github.com/pypeclub/OpenPype/pull/3346)
- Nuke: removing third-party plugins [\#3344](https://github.com/pypeclub/OpenPype/pull/3344)

**🚀 Enhancements**

- Pyblish Pype: Hiding/Close issues [\#3367](https://github.com/pypeclub/OpenPype/pull/3367)
- Ftrack: Removed requirement of pypeclub role from default settings [\#3354](https://github.com/pypeclub/OpenPype/pull/3354)
- Kitsu: Prevent crash on missing frames information [\#3352](https://github.com/pypeclub/OpenPype/pull/3352)
- Ftrack: Open browser from tray [\#3320](https://github.com/pypeclub/OpenPype/pull/3320)
- Enhancement: More control over thumbnail processing. [\#3259](https://github.com/pypeclub/OpenPype/pull/3259)

**🐛 Bug fixes**

- Nuke: bake streams with slate on farm [\#3368](https://github.com/pypeclub/OpenPype/pull/3368)
- Harmony: audio validator has wrong logic [\#3364](https://github.com/pypeclub/OpenPype/pull/3364)
- Nuke: Fix missing variable in extract thumbnail [\#3363](https://github.com/pypeclub/OpenPype/pull/3363)
- Nuke: Fix precollect writes [\#3361](https://github.com/pypeclub/OpenPype/pull/3361)
- AE- fix validate\_scene\_settings and renderLocal [\#3358](https://github.com/pypeclub/OpenPype/pull/3358)
- deadline: fixing misidentification of revieables [\#3356](https://github.com/pypeclub/OpenPype/pull/3356)
- General: Create only one thumbnail per instance [\#3351](https://github.com/pypeclub/OpenPype/pull/3351)
- General: Fix last version function [\#3345](https://github.com/pypeclub/OpenPype/pull/3345)
- Deadline: added OPENPYPE\_MONGO to filter [\#3336](https://github.com/pypeclub/OpenPype/pull/3336)
- Nuke: fixing farm publishing if review is disabled [\#3306](https://github.com/pypeclub/OpenPype/pull/3306)

**🔀 Refactored code**

- Webpublisher: Use client query functions [\#3333](https://github.com/pypeclub/OpenPype/pull/3333)

## [3.11.0](https://github.com/pypeclub/OpenPype/tree/3.11.0) (2022-06-17)

[Full Changelog](https://github.com/pypeclub/OpenPype/compare/CI/3.11.0-nightly.4...3.11.0)

### 📖 Documentation

Expand All @@ -22,11 +56,8 @@
- General: Updated windows oiio tool [\#3268](https://github.com/pypeclub/OpenPype/pull/3268)
- Unreal: add support for skeletalMesh and staticMesh to loaders [\#3267](https://github.com/pypeclub/OpenPype/pull/3267)
- Maya: reference loaders could store placeholder in referenced url [\#3264](https://github.com/pypeclub/OpenPype/pull/3264)
- Maya: FBX camera export [\#3253](https://github.com/pypeclub/OpenPype/pull/3253)
- TVPaint: Init file for TVPaint worker also handle guideline images [\#3250](https://github.com/pypeclub/OpenPype/pull/3250)
- Nuke: Change default icon path in settings [\#3247](https://github.com/pypeclub/OpenPype/pull/3247)
- Maya: publishing of animation and pointcache on a farm [\#3225](https://github.com/pypeclub/OpenPype/pull/3225)
- Maya: Look assigner UI improvements [\#3208](https://github.com/pypeclub/OpenPype/pull/3208)

**🐛 Bug fixes**

Expand All @@ -43,13 +74,12 @@
- Webpublisher: return only active projects in ProjectsEndpoint [\#3281](https://github.com/pypeclub/OpenPype/pull/3281)
- Hiero: add support for task tags 3.10.x [\#3279](https://github.com/pypeclub/OpenPype/pull/3279)
- General: Fix Oiio tool path resolving [\#3278](https://github.com/pypeclub/OpenPype/pull/3278)
- Maya: Fix udim support for e.g. uppercase \<UDIM\> tag [\#3266](https://github.com/pypeclub/OpenPype/pull/3266)
- Nuke: bake reformat was failing on string type [\#3261](https://github.com/pypeclub/OpenPype/pull/3261)
- Maya: hotfix Pxr multitexture in looks [\#3260](https://github.com/pypeclub/OpenPype/pull/3260)
- Unreal: Fix Camera Loading if Layout is missing [\#3255](https://github.com/pypeclub/OpenPype/pull/3255)
- Unreal: Fixed Animation loading in UE5 [\#3240](https://github.com/pypeclub/OpenPype/pull/3240)
- Unreal: Fixed Render creation in UE5 [\#3239](https://github.com/pypeclub/OpenPype/pull/3239)
- Unreal: Fixed Camera loading in UE5 [\#3238](https://github.com/pypeclub/OpenPype/pull/3238)
- TVPaint: Look for more groups than 12 [\#3228](https://github.com/pypeclub/OpenPype/pull/3228)
- Flame: debugging [\#3224](https://github.com/pypeclub/OpenPype/pull/3224)

**🔀 Refactored code**

Expand All @@ -60,54 +90,34 @@

- Maya: add pointcache family to gpu cache loader [\#3318](https://github.com/pypeclub/OpenPype/pull/3318)
- Maya look: skip empty file attributes [\#3274](https://github.com/pypeclub/OpenPype/pull/3274)
- Harmony: message length in 21.1 [\#3258](https://github.com/pypeclub/OpenPype/pull/3258)
- Harmony: 21.1 fix [\#3248](https://github.com/pypeclub/OpenPype/pull/3248)

## [3.10.0](https://github.com/pypeclub/OpenPype/tree/3.10.0) (2022-05-26)

[Full Changelog](https://github.com/pypeclub/OpenPype/compare/CI/3.10.0-nightly.6...3.10.0)

**🚀 Enhancements**

- TVPaint: Init file for TVPaint worker also handle guideline images [\#3251](https://github.com/pypeclub/OpenPype/pull/3251)
- Maya: FBX camera export [\#3253](https://github.com/pypeclub/OpenPype/pull/3253)
- General: updating common vendor `scriptmenu` to 1.5.2 [\#3246](https://github.com/pypeclub/OpenPype/pull/3246)
- Project Manager: Allow to paste Tasks into multiple assets at the same time [\#3226](https://github.com/pypeclub/OpenPype/pull/3226)
- Project manager: Sped up project load [\#3216](https://github.com/pypeclub/OpenPype/pull/3216)

**🐛 Bug fixes**

- Maya: Fix udim support for e.g. uppercase \<UDIM\> tag [\#3266](https://github.com/pypeclub/OpenPype/pull/3266)
- Unreal: Fix Camera Loading if Layout is missing [\#3255](https://github.com/pypeclub/OpenPype/pull/3255)
- nuke: use framerange issue [\#3254](https://github.com/pypeclub/OpenPype/pull/3254)
- Ftrack: Chunk sizes for queries has minimal condition [\#3244](https://github.com/pypeclub/OpenPype/pull/3244)
- Maya: renderman displays needs to be filtered [\#3242](https://github.com/pypeclub/OpenPype/pull/3242)
- Ftrack: Validate that the user exists on ftrack [\#3237](https://github.com/pypeclub/OpenPype/pull/3237)
- Maya: Fix support for multiple resolutions [\#3236](https://github.com/pypeclub/OpenPype/pull/3236)
- Hiero: debugging frame range and other 3.10 [\#3222](https://github.com/pypeclub/OpenPype/pull/3222)
- Project Manager: Fix persistent editors on project change [\#3218](https://github.com/pypeclub/OpenPype/pull/3218)
- Deadline: instance data overwrite fix [\#3214](https://github.com/pypeclub/OpenPype/pull/3214)
- Ftrack: Push hierarchical attributes action works [\#3210](https://github.com/pypeclub/OpenPype/pull/3210)
- Standalone Publisher: Always create new representation for thumbnail [\#3203](https://github.com/pypeclub/OpenPype/pull/3203)
- Photoshop: skip collector when automatic testing [\#3202](https://github.com/pypeclub/OpenPype/pull/3202)

**Merged pull requests:**

- Harmony: message length in 21.1 [\#3257](https://github.com/pypeclub/OpenPype/pull/3257)
- Harmony: 21.1 fix [\#3249](https://github.com/pypeclub/OpenPype/pull/3249)
- Maya: added jpg to filter for Image Plane Loader [\#3223](https://github.com/pypeclub/OpenPype/pull/3223)

## [3.9.8](https://github.com/pypeclub/OpenPype/tree/3.9.8) (2022-05-19)

[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.9.7...3.9.8)

**🚀 Enhancements**

- nuke: generate publishing nodes inside render group node [\#3206](https://github.com/pypeclub/OpenPype/pull/3206)
- Loader UI: Speed issues of loader with sync server [\#3200](https://github.com/pypeclub/OpenPype/pull/3200)

**🐛 Bug fixes**

- Standalone Publisher: Always create new representation for thumbnail [\#3204](https://github.com/pypeclub/OpenPype/pull/3204)

## [3.9.7](https://github.com/pypeclub/OpenPype/tree/3.9.7) (2022-05-11)

[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.9.6...3.9.7)
Expand Down
2 changes: 0 additions & 2 deletions openpype/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@

from .plugin import (
Extractor,
Integrator,

ValidatePipelineOrder,
ValidateContentsOrder,
Expand Down Expand Up @@ -87,7 +86,6 @@

# plugin classes
"Extractor",
"Integrator",
# ordering
"ValidatePipelineOrder",
"ValidateContentsOrder",
Expand Down
6 changes: 3 additions & 3 deletions openpype/hosts/aftereffects/plugins/publish/collect_render.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class AERenderInstance(RenderInstance):
projectEntity = attr.ib(default=None)
stagingDir = attr.ib(default=None)
app_version = attr.ib(default=None)
publish_attributes = attr.ib(default=None)
publish_attributes = attr.ib(default={})
file_name = attr.ib(default=None)


Expand Down Expand Up @@ -90,7 +90,7 @@ def get_instances(self, context):

subset_name = inst.data["subset"]
instance = AERenderInstance(
family=family,
family="render",
families=inst.data.get("families", []),
version=version,
time="",
Expand All @@ -116,7 +116,7 @@ def get_instances(self, context):
toBeRenderedOn='deadline',
fps=fps,
app_version=app_version,
publish_attributes=inst.data.get("publish_attributes"),
publish_attributes=inst.data.get("publish_attributes", {}),
file_name=render_q.file_name
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class ValidateSceneSettings(OptionalPyblishPluginMixin,

order = pyblish.api.ValidatorOrder
label = "Validate Scene Settings"
families = ["render.farm", "render"]
families = ["render.farm", "render.local", "render"]
hosts = ["aftereffects"]
optional = True

Expand Down
2 changes: 1 addition & 1 deletion openpype/hosts/harmony/plugins/publish/validate_audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,6 @@ def process(self, instance):
formatting_data = {
"audio_url": audio_path
}
if os.path.isfile(audio_path):
if not os.path.isfile(audio_path):
raise PublishXmlValidationError(self, msg,
formatting_data=formatting_data)
2 changes: 2 additions & 0 deletions openpype/hosts/houdini/api/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ def get_output_parameter(node):
elif node_type == "arnold":
if node.evalParm("ar_ass_export_enable"):
return node.parm("ar_ass_file")
elif node_type == "Redshift_Proxy_Output":
return node.parm("RS_archive_file")

raise TypeError("Node type '%s' not supported" % node_type)

Expand Down
48 changes: 48 additions & 0 deletions openpype/hosts/houdini/plugins/create/create_redshift_proxy.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from openpype.hosts.houdini.api import plugin


class CreateRedshiftProxy(plugin.Creator):
"""Redshift Proxy"""

label = "Redshift Proxy"
family = "redshiftproxy"
icon = "magic"

def __init__(self, *args, **kwargs):
super(CreateRedshiftProxy, self).__init__(*args, **kwargs)

# Remove the active, we are checking the bypass flag of the nodes
self.data.pop("active", None)

# Redshift provides a `Redshift_Proxy_Output` node type which shows
# a limited set of parameters by default and is set to extract a
# Redshift Proxy. However when "imprinting" extra parameters needed
# for OpenPype it starts showing all its parameters again. It's unclear
# why this happens.
# TODO: Somehow enforce so that it only shows the original limited
# attributes of the Redshift_Proxy_Output node type
self.data.update({"node_type": "Redshift_Proxy_Output"})

def _process(self, instance):
"""Creator main entry point.
Args:
instance (hou.Node): Created Houdini instance.
"""
parms = {
"RS_archive_file": '$HIP/pyblish/`chs("subset")`.$F4.rs',
}

if self.nodes:
node = self.nodes[0]
path = node.path()
parms["RS_archive_sopPath"] = path

instance.setParms(parms)

# Lock some Avalon attributes
to_lock = ["family", "id"]
for name in to_lock:
parm = instance.parm(name)
parm.lock(True)
2 changes: 1 addition & 1 deletion openpype/hosts/houdini/plugins/publish/collect_frames.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class CollectFrames(pyblish.api.InstancePlugin):

order = pyblish.api.CollectorOrder
label = "Collect Frames"
families = ["vdbcache", "imagesequence", "ass"]
families = ["vdbcache", "imagesequence", "ass", "redshiftproxy"]

def process(self, instance):

Expand Down
3 changes: 3 additions & 0 deletions openpype/hosts/houdini/plugins/publish/collect_output_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class CollectOutputSOPPath(pyblish.api.InstancePlugin):
"imagesequence",
"usd",
"usdrender",
"redshiftproxy"
]

hosts = ["houdini"]
Expand Down Expand Up @@ -54,6 +55,8 @@ def process(self, instance):
else:
out_node = node.parm("loppath").evalAsNode()

elif node_type == "Redshift_Proxy_Output":
out_node = node.parm("RS_archive_sopPath").evalAsNode()
else:
raise ValueError(
"ROP node type '%s' is" " not supported." % node_type
Expand Down
48 changes: 48 additions & 0 deletions openpype/hosts/houdini/plugins/publish/extract_redshift_proxy.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import os

import pyblish.api
import openpype.api
from openpype.hosts.houdini.api.lib import render_rop


class ExtractRedshiftProxy(openpype.api.Extractor):

order = pyblish.api.ExtractorOrder + 0.1
label = "Extract Redshift Proxy"
families = ["redshiftproxy"]
hosts = ["houdini"]

def process(self, instance):

ropnode = instance[0]

# Get the filename from the filename parameter
# `.evalParm(parameter)` will make sure all tokens are resolved
output = ropnode.evalParm("RS_archive_file")
staging_dir = os.path.normpath(os.path.dirname(output))
instance.data["stagingDir"] = staging_dir
file_name = os.path.basename(output)

self.log.info("Writing Redshift Proxy '%s' to '%s'" % (file_name,
staging_dir))

render_rop(ropnode)

output = instance.data["frames"]

if "representations" not in instance.data:
instance.data["representations"] = []

representation = {
"name": "rs",
"ext": "rs",
"files": output,
"stagingDir": staging_dir,
}

# A single frame may also be rendered without start/end frame.
if "frameStart" in instance.data and "frameEnd" in instance.data:
representation["frameStart"] = instance.data["frameStart"]
representation["frameEnd"] = instance.data["frameEnd"]

instance.data["representations"].append(representation)
7 changes: 4 additions & 3 deletions openpype/hosts/maya/plugins/publish/collect_instances.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,19 @@ def get_all_children(nodes):
dag = sel.getDagPath(0)

iterator.reset(dag)
next(iterator) # ignore self
# ignore self
iterator.next() # noqa: B305
while not iterator.isDone():

path = iterator.fullPathName()

if path in traversed:
iterator.prune()
next(iterator)
iterator.next() # noqa: B305
continue

traversed.add(path)
next(iterator)
iterator.next() # noqa: B305

return list(traversed)

Expand Down
Loading

0 comments on commit 48f966a

Please sign in to comment.