From e946dd529a3bb0c3778729956e0fd2d324de0119 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 24 May 2024 14:11:25 +0200 Subject: [PATCH 01/39] Fix run deadline collectors on preprender Prerender instances (in Nuke) would be skipped and submit to DL would fail --- .../plugins/publish/collect_deadline_server_from_instance.py | 1 + .../ayon_core/modules/deadline/plugins/publish/collect_pools.py | 1 + .../modules/deadline/plugins/publish/collect_user_credentials.py | 1 + 3 files changed, 3 insertions(+) diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py b/client/ayon_core/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py index 22022831a0..7fe3ceab9d 100644 --- a/client/ayon_core/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py +++ b/client/ayon_core/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py @@ -17,6 +17,7 @@ class CollectDeadlineServerFromInstance(pyblish.api.InstancePlugin): label = "Deadline Webservice from the Instance" targets = ["local"] families = ["render", + "prerender", "rendering", "render.farm", "renderFarm", diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_pools.py b/client/ayon_core/modules/deadline/plugins/publish/collect_pools.py index 6923c2b16b..fe5c8be49c 100644 --- a/client/ayon_core/modules/deadline/plugins/publish/collect_pools.py +++ b/client/ayon_core/modules/deadline/plugins/publish/collect_pools.py @@ -35,6 +35,7 @@ class CollectDeadlinePools(pyblish.api.InstancePlugin, "houdini"] families = ["render", + "prerender", "rendering", "render.farm", "renderFarm", diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_user_credentials.py b/client/ayon_core/modules/deadline/plugins/publish/collect_user_credentials.py index 99d75ecb9e..da5d00f24c 100644 --- a/client/ayon_core/modules/deadline/plugins/publish/collect_user_credentials.py +++ b/client/ayon_core/modules/deadline/plugins/publish/collect_user_credentials.py @@ -34,6 +34,7 @@ class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): "houdini"] families = ["render", + "prerender", "rendering", "render.farm", "renderFarm", From d737a162cc495c58d7021937cb212c6cdc986d23 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 31 May 2024 20:22:36 +0800 Subject: [PATCH 02/39] application settings for motion builder --- server_addon/applications/package.py | 2 +- .../applications/server/applications.json | 22 +++++++++++++++++++ server_addon/applications/server/settings.py | 2 ++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/server_addon/applications/package.py b/server_addon/applications/package.py index 983749355e..a95acad345 100644 --- a/server_addon/applications/package.py +++ b/server_addon/applications/package.py @@ -1,6 +1,6 @@ name = "applications" title = "Applications" -version = "0.2.2" +version = "0.2.3" ayon_server_version = ">=1.0.7" ayon_launcher_version = ">=1.0.2" diff --git a/server_addon/applications/server/applications.json b/server_addon/applications/server/applications.json index 84b7fa33cf..5944f482f3 100644 --- a/server_addon/applications/server/applications.json +++ b/server_addon/applications/server/applications.json @@ -1293,6 +1293,28 @@ } ] }, + "motionbuilder": { + "enabled": true, + "label": "Motion Builder", + "icon": "{}/app_icons/motionbuilder.png", + "host_name": "motionbuilder", + "environment": "{}", + "variants": [ + { + "name": "2025", + "label": "2025", + "use_python_2": false, + "executables": { + "windows": [ + "C:\\Program Files\\Autodesk\\MotionBuilder 2025\\bin\\x64\\motionbuilder.exe" + ], + "darwin": [], + "linux": [] + }, + "environment": "{}" + } + ] + }, "additional_apps": [] } } diff --git a/server_addon/applications/server/settings.py b/server_addon/applications/server/settings.py index 3f9d90ef5b..23f37828a6 100644 --- a/server_addon/applications/server/settings.py +++ b/server_addon/applications/server/settings.py @@ -192,6 +192,8 @@ class ApplicationsSettings(BaseSettingsModel): default_factory=AppGroupWithPython, title="Zbrush") equalizer: AppGroup = SettingsField( default_factory=AppGroupWithPython, title="3DEqualizer") + motionbuilder: AppGroup = SettingsField( + default_factory=AppGroupWithPython, title="Motion Builder") additional_apps: list[AdditionalAppGroup] = SettingsField( default_factory=list, title="Additional Applications") From 6251063e71e5825798af307d1a6ba3e531417cd8 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 31 May 2024 21:24:07 +0800 Subject: [PATCH 03/39] add motionbuilder image --- .../resources/app_icons/motionbuilder.png | Bin 0 -> 35807 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 client/ayon_core/resources/app_icons/motionbuilder.png diff --git a/client/ayon_core/resources/app_icons/motionbuilder.png b/client/ayon_core/resources/app_icons/motionbuilder.png new file mode 100644 index 0000000000000000000000000000000000000000..68a17f7afbbbe6816b8891d8443c9819c8de6835 GIT binary patch literal 35807 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 z z;LL}VsA!q&?(Qu7_IEA++O?bpzYR76>&D?mij>!Oc2PCn(0KcQF-3gl6`KR6;Kj`I zL&88B5(bTFebT>SMCGBV$%X_=FBpA|7*LsGa!T*Y0hz)&D0?va=4ynsmkvjOj9kVHwo7{Avx8upOKk$KW!)sQd!P0oFVB^YK+jF~ug; zoxy{zv)x)5wBXN`@Ds2%7a6rXIAQE@u2i@Z5?kYA3*Pspt&ZxTer&QJ-*fMn6OvU~qBVHnK+-$mABi617$C z3wU`T>E4pX5*6DYOi=B7^{7JL(k`6yc6!aA9&ebW+o2zE_ai^z9QKJm-FYoBQYb6RZciJXeIDwwx;2cg2D` zx+?qLjKqQ(3ytHBmVL91JP=SLy#le2C`>vh~H->^XJwaLDWJ5!mg*Ls+@ zw(L1!x{r0UUi=JQKw5QQT|JZ`h z5s&Wb^KV}_sV1c*{KtZG%?|~BzkB?l&Ps}JyUm-Dp49CPDg)_JCtJMBJ%v`?c4<>uXSt#RBgrI z#K=m!NuIOrto8c5?2tl$e&$K}H=5c#ep4728sh&0PbS+R6&Y3g64=7qeE-+SulY&) z>)C;4Q`mS;Ij_g;_i~C{nb1++z{3|MCVSdlKk%San1SKL_WG~a>we$4$$h`#OY8Fg zC%f0z{5Jkxp8v35L+{>uxlewkJgi;}TxzM_&9QSvgA4cDV^WvgUjMt3W!Ja7&xWJ+ z^ZNbYxMxRypLhG-&i{AjR_E82*~pc5Xs{ZnE&6DE_P*xaON9Y?o6Z%O0LS|Fy)Uo- z6}s{QsKf2?G%So)o1@5f_bO-`%5yzFmpJH2)N zi-p1rKnE;0v9~gO&H(g=-^(8_K?_qg_qLNv|7Tya&!Rh6=J_NBAn8t literal 0 HcmV?d00001 From e63910024d98e08f2ea18ecec473d5da92a5630c Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Mon, 3 Jun 2024 15:52:19 +0800 Subject: [PATCH 04/39] add motionbuilder with collect scene version --- .../plugins/publish/collect_scene_version.py | 3 ++- server_addon/applications/server/applications.json | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/plugins/publish/collect_scene_version.py b/client/ayon_core/plugins/publish/collect_scene_version.py index b04900c74e..8b99e2cd98 100644 --- a/client/ayon_core/plugins/publish/collect_scene_version.py +++ b/client/ayon_core/plugins/publish/collect_scene_version.py @@ -27,7 +27,8 @@ class CollectSceneVersion(pyblish.api.ContextPlugin): "nuke", "photoshop", "resolve", - "tvpaint" + "tvpaint", + "motionbuilder" ] # in some cases of headless publishing (for example webpublisher using PS) diff --git a/server_addon/applications/server/applications.json b/server_addon/applications/server/applications.json index 5944f482f3..1c83997dea 100644 --- a/server_addon/applications/server/applications.json +++ b/server_addon/applications/server/applications.json @@ -1312,6 +1312,19 @@ "linux": [] }, "environment": "{}" + }, + { + "name": "2024", + "label": "2024", + "use_python_2": false, + "executables": { + "windows": [ + "C:\\Program Files\\Autodesk\\MotionBuilder 2024\\bin\\x64\\motionbuilder.exe" + ], + "darwin": [], + "linux": [] + }, + "environment": "{}" } ] }, From 66df4fcf0dabec8b223f3f0305b38e65d9211727 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:42:04 +0800 Subject: [PATCH 05/39] add sync workfile version into substance painter --- .../publish/collect_anatomy_instance_data.py | 5 +++-- server/settings/publish_plugins.py | 1 + .../plugins/create/create_textures.py | 13 +++++++++++++ .../plugins/publish/collect_current_file.py | 10 +++++++--- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index ad5a5d43fc..2113ad1f4d 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -313,8 +313,9 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # Define version version_number = None - if self.follow_workfile_version: - version_number = context.data("version") + if self.follow_workfile_version or instance.data.get( + "follow_workfile_version", self.follow_workfile_version): + version_number = context.data("version") # Even if 'follow_workfile_version' is enabled, it may not be set # because workfile version was not collected to 'context.data' diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index 2640a3db37..6dbc2253e2 100644 --- a/server/settings/publish_plugins.py +++ b/server/settings/publish_plugins.py @@ -890,6 +890,7 @@ DEFAULT_PUBLISH_VALUES = { "maya", "nuke", "photoshop", + "substancepainter" ], "enabled": True, "optional": False, diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 8869cb5eb0..ce37d6e206 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,12 +30,18 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] + follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: self.channel_mapping = settings["CreateTextures"].get( "channel_mapping", []) + core_setting = project_settings["core"]["publish"].get( + "CollectAnatomyInstanceData", []) + if core_setting: + self.follow_workfile_version = core_setting.get( + "follow_workfile_version", False) def create(self, product_name, instance_data, pre_create_data): @@ -57,6 +63,10 @@ class CreateTextures(Creator): if key in pre_create_data: creator_attributes[key] = pre_create_data[key] + if pre_create_data.get("follow_workfile_version"): + instance_data["follow_workfile_version"] = pre_create_data.get( + "follow_workfile_version") + if pre_create_data.get("use_selection"): stack = substance_painter.textureset.get_active_stack() @@ -143,6 +153,9 @@ class CreateTextures(Creator): } return [ + BoolDef("follow_workfile_version", + label="Follow Workfile Version", + default=self.follow_workfile_version), EnumDef("exportChannel", items=export_channel_enum, multiselection=True, diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py index db0edafac0..ce739d66cb 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py @@ -1,13 +1,14 @@ import pyblish.api from ayon_core.pipeline import registered_host +from ayon_core.lib import get_version_from_path -class CollectCurrentFile(pyblish.api.ContextPlugin): - """Inject the current working file into context""" +class CollectContextData(pyblish.api.ContextPlugin): + """Collect current context publish""" order = pyblish.api.CollectorOrder - 0.49 - label = "Current Workfile" + label = "Collect Context Data" hosts = ["substancepainter"] def process(self, context): @@ -15,3 +16,6 @@ class CollectCurrentFile(pyblish.api.ContextPlugin): path = host.get_current_workfile() context.data["currentFile"] = path self.log.debug(f"Current workfile: {path}") + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") From d1951f3b513864972407d3de20cbbbddbfbbaa1d Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:45:09 +0800 Subject: [PATCH 06/39] bump addons version --- package.py | 2 +- server_addon/substancepainter/package.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.py b/package.py index 73f7174b6f..cea2d84484 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.3-dev.1" +version = "0.3.4-dev.1" client_dir = "ayon_core" diff --git a/server_addon/substancepainter/package.py b/server_addon/substancepainter/package.py index 4db5ef634f..8ffad08b27 100644 --- a/server_addon/substancepainter/package.py +++ b/server_addon/substancepainter/package.py @@ -1,6 +1,6 @@ name = "substancepainter" title = "Substance Painter" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_substancepainter" From c97c98420c89164fd2b9c9cd5306645f33ca345f Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:53:37 +0800 Subject: [PATCH 07/39] follow workfile version exists in creator's tab --- .../plugins/create/create_textures.py | 15 +++++++++------ .../publish/collect_workfile_version.py | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index ce37d6e206..59e8b64d30 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -58,7 +58,7 @@ class CreateTextures(Creator): "exportPadding", "exportDilationDistance", "useCustomExportPreset", - "exportChannel" + "exportChannel", ]: if key in pre_create_data: creator_attributes[key] = pre_create_data[key] @@ -153,9 +153,6 @@ class CreateTextures(Creator): } return [ - BoolDef("follow_workfile_version", - label="Follow Workfile Version", - default=self.follow_workfile_version), EnumDef("exportChannel", items=export_channel_enum, multiselection=True, @@ -247,9 +244,15 @@ class CreateTextures(Creator): def get_pre_create_attr_defs(self): # Use same attributes as for instance attributes attr_defs = [] - if substance_painter.application.version_info()[0] >= 10: + if substance_painter.application.version_info()[0] >= 10: attr_defs.append( BoolDef("use_selection", label="Use selection", - tooltip="Select Layer Stack(s) for exporting") + tooltip="Select Layer Stack(s) for exporting"), + ) + + attr_defs.append(BoolDef("follow_workfile_version", + label="Follow Workfile Version", + default=self.follow_workfile_version)) + return attr_defs + self.get_instance_attr_defs() diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py new file mode 100644 index 0000000000..3d6a6e4b44 --- /dev/null +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py @@ -0,0 +1,19 @@ +import pyblish.api + +from ayon_core.pipeline import registered_host +from ayon_core.lib import get_version_from_path + + +class CollectWorkfileVersion(pyblish.api.ContextPlugin): + """Inject the current working file into context""" + + order = pyblish.api.CollectorOrder - 0.5 + label = "Current Workfile Version" + hosts = ["substancepainter"] + + def process(self, context): + host = registered_host() + path = host.get_current_workfile() + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") \ No newline at end of file From 7c254b8b30400cddf202d640cd1b28381d475578 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:55:05 +0800 Subject: [PATCH 08/39] rename collect current file to current_context_data --- .../publish/{collect_current_file.py => collect_context_data.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/{collect_current_file.py => collect_context_data.py} (100%) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py similarity index 100% rename from server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py rename to server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py From 8f7882ae28d6048ae8da102b392a42e2f63714e1 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:21:11 +0200 Subject: [PATCH 09/39] use 'newHierarchyIntegration' instead of 'newAssetPublishing' --- .../publish/collect_anatomy_instance_data.py | 25 +++++++++++++------ .../plugins/publish/validate_asset_docs.py | 6 ++++- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index ad5a5d43fc..3086c04000 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -391,7 +391,11 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): anatomy_data.update(folder_data) return - if instance.data.get("newAssetPublishing"): + if ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ): hierarchy = instance.data["hierarchy"] anatomy_data["hierarchy"] = hierarchy @@ -409,7 +413,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): "path": instance.data["folderPath"], # TODO get folder type from hierarchy # Using 'Shot' is current default behavior of editorial - # (or 'newAssetPublishing') publishing. + # (or 'newHierarchyIntegration') publishing. "type": "Shot", }, }) @@ -432,15 +436,22 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): if task_data: # Fill task data # - if we're in editorial, make sure the task type is filled - if ( - not instance.data.get("newAssetPublishing") - or task_data["type"] - ): + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ) + if not new_hierarchy or task_data["type"]: anatomy_data["task"] = task_data return # New hierarchy is not created, so we can only skip rest of the logic - if not instance.data.get("newAssetPublishing"): + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ) + if not new_hierarchy: return # Try to find task data based on hierarchy context and folder path diff --git a/client/ayon_core/plugins/publish/validate_asset_docs.py b/client/ayon_core/plugins/publish/validate_asset_docs.py index 95fe4252be..361f288545 100644 --- a/client/ayon_core/plugins/publish/validate_asset_docs.py +++ b/client/ayon_core/plugins/publish/validate_asset_docs.py @@ -24,7 +24,11 @@ class ValidateFolderEntities(pyblish.api.InstancePlugin): if instance.data.get("folderEntity"): self.log.debug("Instance has set fodler entity in its data.") - elif instance.data.get("newAssetPublishing"): + elif ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ): # skip if it is editorial self.log.debug("Editorial instance has no need to check...") From cfe6ae1c67db2b22a9c4590926febb0e2497e3b6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:23:14 +0200 Subject: [PATCH 10/39] use 'newHierarchyIntegration' over 'newAssetPublishing' in hosts --- .../plugins/publish/collect_timeline_instances.py | 4 +++- server_addon/flame/client/ayon_flame/version.py | 2 +- server_addon/flame/package.py | 2 +- .../ayon_hiero/plugins/publish/precollect_instances.py | 4 +++- server_addon/hiero/client/ayon_hiero/version.py | 2 +- server_addon/hiero/package.py | 2 +- .../ayon_resolve/plugins/publish/precollect_instances.py | 2 ++ .../ayon_traypublisher/plugins/create/create_editorial.py | 2 ++ .../plugins/publish/collect_sequence_frame_data.py | 8 ++++++-- .../plugins/publish/validate_frame_ranges.py | 8 ++++++-- server_addon/traypublisher/package.py | 2 +- 11 files changed, 27 insertions(+), 11 deletions(-) diff --git a/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py b/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py index 35591f1a0d..f38a0903a0 100644 --- a/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py +++ b/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py @@ -152,7 +152,9 @@ class CollectTimelineInstances(pyblish.api.ContextPlugin): task["name"]: {"type": task["type"]} for task in self.add_tasks}, "representations": [], - "newAssetPublishing": True + "newHierarchyIntegration": True, + # Backwards compatible + "newAssetPublishing": True, }) self.log.debug("__ inst_data: {}".format(pformat(inst_data))) diff --git a/server_addon/flame/client/ayon_flame/version.py b/server_addon/flame/client/ayon_flame/version.py index 0004797e59..68bdb6e6a0 100644 --- a/server_addon/flame/client/ayon_flame/version.py +++ b/server_addon/flame/client/ayon_flame/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'flame' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/flame/package.py b/server_addon/flame/package.py index f228e61f8e..b25a514a9f 100644 --- a/server_addon/flame/package.py +++ b/server_addon/flame/package.py @@ -1,6 +1,6 @@ name = "flame" title = "Flame" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_flame" diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py index fa2c56182e..be5312b325 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py @@ -140,7 +140,9 @@ class PrecollectInstances(pyblish.api.ContextPlugin): # add all additional tags "tags": phiero.get_track_item_tags(track_item), - "newAssetPublishing": True + "newHierarchyIntegration": True, + # Backwards compatible + "newAssetPublishing": True, }) # otio clip data diff --git a/server_addon/hiero/client/ayon_hiero/version.py b/server_addon/hiero/client/ayon_hiero/version.py index 6a2d180afb..fe6d62221c 100644 --- a/server_addon/hiero/client/ayon_hiero/version.py +++ b/server_addon/hiero/client/ayon_hiero/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'hiero' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/hiero/package.py b/server_addon/hiero/package.py index 1948d50e6d..95714d95da 100644 --- a/server_addon/hiero/package.py +++ b/server_addon/hiero/package.py @@ -1,6 +1,6 @@ name = "hiero" title = "Hiero" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_hiero" ayon_required_addons = { diff --git a/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py b/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py index 10e1eba3e3..af9a63d796 100644 --- a/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py +++ b/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py @@ -101,6 +101,8 @@ class PrecollectInstances(pyblish.api.ContextPlugin): "fps": context.data["fps"], "handleStart": handle_start, "handleEnd": handle_end, + "newHierarchyIntegration": True, + # Backwards compatible "newAssetPublishing": True, "families": ["clip"], "productType": product_type, diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py index a2f6f211f5..0e4512d052 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py @@ -676,6 +676,8 @@ or updating already created. Publishing will create OTIO file. "shotName": shot_name, "variant": variant_name, "task": None, + "newHierarchyIntegration": True, + # Backwards compatible "newAssetPublishing": True, "trackStartFrame": track_start_frame, "timelineOffset": timeline_offset, diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py index de18050f41..b76d81e431 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py @@ -28,8 +28,12 @@ class CollectSequenceFrameData( return # editorial would fail since they might not be in database yet - new_folder_publishing = instance.data.get("newAssetPublishing") - if new_folder_publishing: + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ) + if new_hierarchy: self.log.debug("Instance is creating new folders. Skipping.") return diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py index 13f13b05bb..301b306089 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py @@ -33,8 +33,12 @@ class ValidateFrameRange(OptionalPyblishPluginMixin, return # editorial would fail since they might not be in database yet - new_folder_publishing = instance.data.get("newAssetPublishing") - if new_folder_publishing: + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ) + if new_hierarchy: self.log.debug("Instance is creating new folder. Skipping.") return diff --git a/server_addon/traypublisher/package.py b/server_addon/traypublisher/package.py index c9b94c2b72..85611526d0 100644 --- a/server_addon/traypublisher/package.py +++ b/server_addon/traypublisher/package.py @@ -1,6 +1,6 @@ name = "traypublisher" title = "TrayPublisher" -version = "0.2.1" +version = "0.2.2" client_dir = "ayon_traypublisher" From 7fd75122898af2fd1d5b2424b8ffc01389e1f92c Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Tue, 4 Jun 2024 22:26:36 +0800 Subject: [PATCH 11/39] Update package.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.py b/package.py index cea2d84484..73f7174b6f 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.4-dev.1" +version = "0.3.3-dev.1" client_dir = "ayon_core" From 8403e2f218f21df5832c7fec0137a93166fa9775 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 13:18:51 +0800 Subject: [PATCH 12/39] follow workfile version can only be enabled through the ayon project setting --- .../publish/collect_anatomy_instance_data.py | 10 +++++++-- .../plugins/create/create_textures.py | 22 +++---------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index 2113ad1f4d..ce0fc1c16c 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -313,8 +313,14 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # Define version version_number = None - if self.follow_workfile_version or instance.data.get( - "follow_workfile_version", self.follow_workfile_version): + + # Allow an instance to force enable or disable the version + # following of the current context + use_context_version = self.follow_workfile_version + if "followWorkfileVersion" in instance.data: + use_context_version = instance.data["followWorkfileVersion"] + + if use_context_version: version_number = context.data("version") # Even if 'follow_workfile_version' is enabled, it may not be set diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 59e8b64d30..8869cb5eb0 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,18 +30,12 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] - follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: self.channel_mapping = settings["CreateTextures"].get( "channel_mapping", []) - core_setting = project_settings["core"]["publish"].get( - "CollectAnatomyInstanceData", []) - if core_setting: - self.follow_workfile_version = core_setting.get( - "follow_workfile_version", False) def create(self, product_name, instance_data, pre_create_data): @@ -58,15 +52,11 @@ class CreateTextures(Creator): "exportPadding", "exportDilationDistance", "useCustomExportPreset", - "exportChannel", + "exportChannel" ]: if key in pre_create_data: creator_attributes[key] = pre_create_data[key] - if pre_create_data.get("follow_workfile_version"): - instance_data["follow_workfile_version"] = pre_create_data.get( - "follow_workfile_version") - if pre_create_data.get("use_selection"): stack = substance_painter.textureset.get_active_stack() @@ -244,15 +234,9 @@ class CreateTextures(Creator): def get_pre_create_attr_defs(self): # Use same attributes as for instance attributes attr_defs = [] - if substance_painter.application.version_info()[0] >= 10: + if substance_painter.application.version_info()[0] >= 10: attr_defs.append( BoolDef("use_selection", label="Use selection", - tooltip="Select Layer Stack(s) for exporting"), - + tooltip="Select Layer Stack(s) for exporting") ) - - attr_defs.append(BoolDef("follow_workfile_version", - label="Follow Workfile Version", - default=self.follow_workfile_version)) - return attr_defs + self.get_instance_attr_defs() From b55ead017a12840954fd6d04a335b09c6152f022 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 13:27:20 +0800 Subject: [PATCH 13/39] remove the duplicated collect verion --- ...collect_context_data.py => collect_current_file.py} | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) rename server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/{collect_context_data.py => collect_current_file.py} (52%) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py similarity index 52% rename from server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py rename to server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py index ce739d66cb..db0edafac0 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py @@ -1,14 +1,13 @@ import pyblish.api from ayon_core.pipeline import registered_host -from ayon_core.lib import get_version_from_path -class CollectContextData(pyblish.api.ContextPlugin): - """Collect current context publish""" +class CollectCurrentFile(pyblish.api.ContextPlugin): + """Inject the current working file into context""" order = pyblish.api.CollectorOrder - 0.49 - label = "Collect Context Data" + label = "Current Workfile" hosts = ["substancepainter"] def process(self, context): @@ -16,6 +15,3 @@ class CollectContextData(pyblish.api.ContextPlugin): path = host.get_current_workfile() context.data["currentFile"] = path self.log.debug(f"Current workfile: {path}") - version = int(get_version_from_path(path)) - context.data["version"] = version - self.log.debug(f"Current Version: {version}") From dd99516853baadb1d97495449692f7662f79b762 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 13:43:54 +0800 Subject: [PATCH 14/39] move the workfile version collector into general publish plugins --- .../plugins/publish/collect_workfile_version.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename {server_addon/substancepainter/client/ayon_substancepainter => client/ayon_core}/plugins/publish/collect_workfile_version.py (61%) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py b/client/ayon_core/plugins/publish/collect_workfile_version.py similarity index 61% rename from server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py rename to client/ayon_core/plugins/publish/collect_workfile_version.py index 3d6a6e4b44..e54e107e5e 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py +++ b/client/ayon_core/plugins/publish/collect_workfile_version.py @@ -5,15 +5,15 @@ from ayon_core.lib import get_version_from_path class CollectWorkfileVersion(pyblish.api.ContextPlugin): - """Inject the current working file into context""" + """Collect current workfile version as context data""" order = pyblish.api.CollectorOrder - 0.5 label = "Current Workfile Version" - hosts = ["substancepainter"] def process(self, context): host = registered_host() path = host.get_current_workfile() - version = int(get_version_from_path(path)) - context.data["version"] = version - self.log.debug(f"Current Version: {version}") \ No newline at end of file + if path: + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") From 829e41103e11b1c6bcac23641ddf0ead7916340a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 15:54:13 +0800 Subject: [PATCH 15/39] add follow workfile version in substance paitner ayon project setting --- .../plugins/create/create_textures.py | 10 ++++++++-- .../server/settings/creator_plugins.py | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 8869cb5eb0..e8841f4a8b 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,12 +30,15 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] + follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: - self.channel_mapping = settings["CreateTextures"].get( - "channel_mapping", []) + creator_setting = settings["CreateTextures"] + self.channel_mapping = creator_setting.get("channel_mapping", []) + self.follow_workfile_version = creator_setting.get( + "follow_workfile_version", False) def create(self, product_name, instance_data, pre_create_data): @@ -64,6 +67,9 @@ class CreateTextures(Creator): node_number.uid() for node_number in substance_painter.layerstack.get_selected_nodes(stack)] + if self.follow_workfile_version: + instance_data["followWorkfileVersion"] = True + instance = self.create_instance_in_context(product_name, instance_data) set_instance( diff --git a/server_addon/substancepainter/server/settings/creator_plugins.py b/server_addon/substancepainter/server/settings/creator_plugins.py index 9ba7684d30..200618dafe 100644 --- a/server_addon/substancepainter/server/settings/creator_plugins.py +++ b/server_addon/substancepainter/server/settings/creator_plugins.py @@ -8,6 +8,8 @@ class ChannelMappingItemModel(BaseSettingsModel): class CreateTextureModel(BaseSettingsModel): + follow_workfile_version: bool = SettingsField( + False, title="follow_workfile_version") channel_mapping: list[ChannelMappingItemModel] = SettingsField( default_factory=list, title="Channel Mapping") @@ -21,6 +23,7 @@ class CreatorsModel(BaseSettingsModel): DEFAULT_CREATOR_SETTINGS = { "CreateTextures": { + "follow_workfile_version": False, "channel_mapping": [ {"name": "Base Color", "value": "BaseColor"}, {"name": "Metallic", "value": "Metallic"}, From 8f00b72d53bd294e76243a539ef6b861a0a017be Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 16:01:26 +0800 Subject: [PATCH 16/39] The name of the follow workfile version should be follow workfile version --- .../substancepainter/server/settings/creator_plugins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/substancepainter/server/settings/creator_plugins.py b/server_addon/substancepainter/server/settings/creator_plugins.py index 200618dafe..477233c324 100644 --- a/server_addon/substancepainter/server/settings/creator_plugins.py +++ b/server_addon/substancepainter/server/settings/creator_plugins.py @@ -9,7 +9,7 @@ class ChannelMappingItemModel(BaseSettingsModel): class CreateTextureModel(BaseSettingsModel): follow_workfile_version: bool = SettingsField( - False, title="follow_workfile_version") + False, title="Follow Workfile Version") channel_mapping: list[ChannelMappingItemModel] = SettingsField( default_factory=list, title="Channel Mapping") From b789aa7d1babe92ff662d294209ce25bd55a8297 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 17:02:45 +0800 Subject: [PATCH 17/39] restore the creator logic --- .../ayon_substancepainter/plugins/create/create_textures.py | 6 ------ server_addon/substancepainter/package.py | 2 +- .../substancepainter/server/settings/creator_plugins.py | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index e8841f4a8b..d4484bd0ae 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -37,9 +37,6 @@ class CreateTextures(Creator): if settings: creator_setting = settings["CreateTextures"] self.channel_mapping = creator_setting.get("channel_mapping", []) - self.follow_workfile_version = creator_setting.get( - "follow_workfile_version", False) - def create(self, product_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): @@ -67,9 +64,6 @@ class CreateTextures(Creator): node_number.uid() for node_number in substance_painter.layerstack.get_selected_nodes(stack)] - if self.follow_workfile_version: - instance_data["followWorkfileVersion"] = True - instance = self.create_instance_in_context(product_name, instance_data) set_instance( diff --git a/server_addon/substancepainter/package.py b/server_addon/substancepainter/package.py index 8ffad08b27..4db5ef634f 100644 --- a/server_addon/substancepainter/package.py +++ b/server_addon/substancepainter/package.py @@ -1,6 +1,6 @@ name = "substancepainter" title = "Substance Painter" -version = "0.2.1" +version = "0.2.0" client_dir = "ayon_substancepainter" diff --git a/server_addon/substancepainter/server/settings/creator_plugins.py b/server_addon/substancepainter/server/settings/creator_plugins.py index 477233c324..9ba7684d30 100644 --- a/server_addon/substancepainter/server/settings/creator_plugins.py +++ b/server_addon/substancepainter/server/settings/creator_plugins.py @@ -8,8 +8,6 @@ class ChannelMappingItemModel(BaseSettingsModel): class CreateTextureModel(BaseSettingsModel): - follow_workfile_version: bool = SettingsField( - False, title="Follow Workfile Version") channel_mapping: list[ChannelMappingItemModel] = SettingsField( default_factory=list, title="Channel Mapping") @@ -23,7 +21,6 @@ class CreatorsModel(BaseSettingsModel): DEFAULT_CREATOR_SETTINGS = { "CreateTextures": { - "follow_workfile_version": False, "channel_mapping": [ {"name": "Base Color", "value": "BaseColor"}, {"name": "Metallic", "value": "Metallic"}, From 5e9b9746ad87a59e62efe9c83338d49a3d948638 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 17:03:41 +0800 Subject: [PATCH 18/39] restore the creator logic --- .../ayon_substancepainter/plugins/create/create_textures.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index d4484bd0ae..7b195d836b 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -35,8 +35,8 @@ class CreateTextures(Creator): def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: - creator_setting = settings["CreateTextures"] - self.channel_mapping = creator_setting.get("channel_mapping", []) + self.channel_mapping = settings["CreateTextures"].get( + "channel_mapping", []) def create(self, product_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): From d73ed7a655825ab93b180a71c33257bbb483f533 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Thu, 6 Jun 2024 17:19:40 +0800 Subject: [PATCH 19/39] add review attributes to create textures --- .../ayon_substancepainter/plugins/create/create_textures.py | 5 +++++ .../plugins/publish/collect_textureset_images.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 8869cb5eb0..97d34a6557 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -46,6 +46,7 @@ class CreateTextures(Creator): creator_attributes = instance_data.setdefault( "creator_attributes", dict()) for key in [ + "review", "exportPresetUrl", "exportFileFormat", "exportSize", @@ -143,6 +144,10 @@ class CreateTextures(Creator): } return [ + BoolDef("review", + label="Review", + tooltip="Mark as reviewable", + default=True), EnumDef("exportChannel", items=export_channel_enum, multiselection=True, diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_textureset_images.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_textureset_images.py index 6d2336cbc0..5bea3e971f 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_textureset_images.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_textureset_images.py @@ -124,7 +124,6 @@ class CollectTextureSet(pyblish.api.InstancePlugin): staging_dir = os.path.dirname(first_filepath) representation["tags"] = ["review"] representation["stagingDir"] = staging_dir - # Clone the instance product_type = "image" image_instance = context.create_instance(image_product_name) @@ -136,6 +135,9 @@ class CollectTextureSet(pyblish.api.InstancePlugin): image_instance.data["productType"] = product_type image_instance.data["family"] = product_type image_instance.data["families"] = [product_type, "textures"] + if instance.data["creator_attributes"].get("review"): + image_instance.data["families"].append("review") + image_instance.data["representations"] = [representation] # Group the textures together in the loader From 4cbbe322b51530c6c73131ddb7df09013c577ce0 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:34:46 +0200 Subject: [PATCH 20/39] mark 'newAssetPublishing' as deprecated since 24/06/06 --- .../plugins/publish/collect_anatomy_instance_data.py | 6 +++--- client/ayon_core/plugins/publish/validate_asset_docs.py | 2 +- .../plugins/publish/collect_timeline_instances.py | 2 +- .../ayon_hiero/plugins/publish/precollect_instances.py | 2 +- .../ayon_resolve/plugins/publish/precollect_instances.py | 2 +- .../ayon_traypublisher/plugins/create/create_editorial.py | 2 +- .../plugins/publish/collect_sequence_frame_data.py | 2 +- .../plugins/publish/validate_frame_ranges.py | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index 3086c04000..0c15ec0b57 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -393,7 +393,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): if ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ): hierarchy = instance.data["hierarchy"] @@ -438,7 +438,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # - if we're in editorial, make sure the task type is filled new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if not new_hierarchy or task_data["type"]: @@ -448,7 +448,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # New hierarchy is not created, so we can only skip rest of the logic new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if not new_hierarchy: diff --git a/client/ayon_core/plugins/publish/validate_asset_docs.py b/client/ayon_core/plugins/publish/validate_asset_docs.py index 361f288545..b80b81b366 100644 --- a/client/ayon_core/plugins/publish/validate_asset_docs.py +++ b/client/ayon_core/plugins/publish/validate_asset_docs.py @@ -26,7 +26,7 @@ class ValidateFolderEntities(pyblish.api.InstancePlugin): elif ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ): # skip if it is editorial diff --git a/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py b/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py index f38a0903a0..7680483db1 100644 --- a/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py +++ b/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py @@ -153,7 +153,7 @@ class CollectTimelineInstances(pyblish.api.ContextPlugin): for task in self.add_tasks}, "representations": [], "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, }) self.log.debug("__ inst_data: {}".format(pformat(inst_data))) diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py index be5312b325..4bc749d77c 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py @@ -141,7 +141,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin): # add all additional tags "tags": phiero.get_track_item_tags(track_item), "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, }) diff --git a/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py b/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py index af9a63d796..e2b6e7ba37 100644 --- a/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py +++ b/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py @@ -102,7 +102,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin): "handleStart": handle_start, "handleEnd": handle_end, "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, "families": ["clip"], "productType": product_type, diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py index 0e4512d052..b013ed6864 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py @@ -677,7 +677,7 @@ or updating already created. Publishing will create OTIO file. "variant": variant_name, "task": None, "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, "trackStartFrame": track_start_frame, "timelineOffset": timeline_offset, diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py index b76d81e431..c2894e15ad 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py @@ -30,7 +30,7 @@ class CollectSequenceFrameData( # editorial would fail since they might not be in database yet new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if new_hierarchy: diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py index 301b306089..42127f4a5f 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py @@ -35,7 +35,7 @@ class ValidateFrameRange(OptionalPyblishPluginMixin, # editorial would fail since they might not be in database yet new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if new_hierarchy: From 1b84b39ba6c20dd2f865d99494e90232ee1ca031 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 15:45:10 +0800 Subject: [PATCH 21/39] add substance painter host into collect scene version --- client/ayon_core/plugins/publish/collect_scene_version.py | 3 ++- server/settings/publish_plugins.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/plugins/publish/collect_scene_version.py b/client/ayon_core/plugins/publish/collect_scene_version.py index b04900c74e..c9299013ee 100644 --- a/client/ayon_core/plugins/publish/collect_scene_version.py +++ b/client/ayon_core/plugins/publish/collect_scene_version.py @@ -27,7 +27,8 @@ class CollectSceneVersion(pyblish.api.ContextPlugin): "nuke", "photoshop", "resolve", - "tvpaint" + "tvpaint", + "substancepainter" ] # in some cases of headless publishing (for example webpublisher using PS) diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index 6dbc2253e2..3c0f8380c6 100644 --- a/server/settings/publish_plugins.py +++ b/server/settings/publish_plugins.py @@ -863,7 +863,8 @@ DEFAULT_PUBLISH_VALUES = { "nuke", "photoshop", "resolve", - "tvpaint" + "tvpaint", + "substancepainter" ], "skip_hosts_headless_publish": [] }, From 76767247453fd44302aa20e7171e7245c5e64474 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 16:40:05 +0800 Subject: [PATCH 22/39] remove the duplicated version collector --- .../publish/collect_workfile_version.py | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 client/ayon_core/plugins/publish/collect_workfile_version.py diff --git a/client/ayon_core/plugins/publish/collect_workfile_version.py b/client/ayon_core/plugins/publish/collect_workfile_version.py deleted file mode 100644 index e54e107e5e..0000000000 --- a/client/ayon_core/plugins/publish/collect_workfile_version.py +++ /dev/null @@ -1,19 +0,0 @@ -import pyblish.api - -from ayon_core.pipeline import registered_host -from ayon_core.lib import get_version_from_path - - -class CollectWorkfileVersion(pyblish.api.ContextPlugin): - """Collect current workfile version as context data""" - - order = pyblish.api.CollectorOrder - 0.5 - label = "Current Workfile Version" - - def process(self, context): - host = registered_host() - path = host.get_current_workfile() - if path: - version = int(get_version_from_path(path)) - context.data["version"] = version - self.log.debug(f"Current Version: {version}") From 6baecb898599ff9384551210af631d51714e694a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 16:43:53 +0800 Subject: [PATCH 23/39] not adding create texture into the changes --- .../ayon_substancepainter/plugins/create/create_textures.py | 1 + 1 file changed, 1 insertion(+) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 7b195d836b..ab93ded3b3 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -38,6 +38,7 @@ class CreateTextures(Creator): self.channel_mapping = settings["CreateTextures"].get( "channel_mapping", []) + def create(self, product_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): raise CreatorError("Can't create a Texture Set instance without " From 5970a758035587eb06a802d5162bfe91f9074d3b Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 16:44:43 +0800 Subject: [PATCH 24/39] not adding create texture into the changes --- .../ayon_substancepainter/plugins/create/create_textures.py | 1 - 1 file changed, 1 deletion(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index ab93ded3b3..8869cb5eb0 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,7 +30,6 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] - follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa From f3a6d371c68f8f379ff69d1afd951c2f502968fa Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:54:40 +0800 Subject: [PATCH 25/39] Update client/ayon_core/plugins/publish/collect_anatomy_instance_data.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- .../ayon_core/plugins/publish/collect_anatomy_instance_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index ce0fc1c16c..b4d02f2ba5 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -321,7 +321,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): use_context_version = instance.data["followWorkfileVersion"] if use_context_version: - version_number = context.data("version") + version_number = context.data("version") # Even if 'follow_workfile_version' is enabled, it may not be set # because workfile version was not collected to 'context.data' From 2ce77d81ca8fb837d1a260b52cbb9489bb7a13e6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 7 Jun 2024 13:44:17 +0200 Subject: [PATCH 26/39] bump resolve version --- server_addon/resolve/client/ayon_resolve/version.py | 2 +- server_addon/resolve/package.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server_addon/resolve/client/ayon_resolve/version.py b/server_addon/resolve/client/ayon_resolve/version.py index c8f8df554c..53e8882ed7 100644 --- a/server_addon/resolve/client/ayon_resolve/version.py +++ b/server_addon/resolve/client/ayon_resolve/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'resolve' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/resolve/package.py b/server_addon/resolve/package.py index 993f700e40..47b6c9a8b6 100644 --- a/server_addon/resolve/package.py +++ b/server_addon/resolve/package.py @@ -1,6 +1,6 @@ name = "resolve" title = "DaVinci Resolve" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_resolve" From 60c42b4bbbcfe1b8ddf9b1e9bfb7262ef9723b62 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 7 Jun 2024 17:07:42 +0200 Subject: [PATCH 27/39] Standardize families to submit_publish_job --- .../collect_deadline_server_from_instance.py | 23 +++++++------------ .../plugins/publish/collect_pools.py | 21 ++++++----------- .../publish/collect_user_credentials.py | 21 ++++++----------- 3 files changed, 22 insertions(+), 43 deletions(-) diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py index 7fe3ceab9d..90776220d3 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py @@ -16,21 +16,14 @@ class CollectDeadlineServerFromInstance(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.225 label = "Deadline Webservice from the Instance" targets = ["local"] - families = ["render", - "prerender", - "rendering", - "render.farm", - "renderFarm", - "renderlayer", - "maxrender", - "usdrender", - "redshift_rop", - "arnold_rop", - "mantra_rop", - "karma_rop", - "vray_rop", - "publish.hou", - "image"] # for Fusion + + families = ["render", "render.farm", "render.frames_farm", + "prerender", "prerender.farm", "prerender.frames_farm", + "renderlayer", "imagesequence", "image", + "vrayscene", "maxrender", + "arnold_rop", "mantra_rop", + "karma_rop", "vray_rop", "redshift_rop", + "renderFarm", "usrender", "publish.hou"] def process(self, instance): if not instance.data.get("farm"): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py index f2437738ef..b3e0625d3b 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py @@ -36,20 +36,13 @@ class CollectDeadlinePools(pyblish.api.InstancePlugin, "nuke", ] - families = ["render", - "prerender", - "rendering", - "render.farm", - "renderFarm", - "renderlayer", - "maxrender", - "usdrender", - "redshift_rop", - "arnold_rop", - "mantra_rop", - "karma_rop", - "vray_rop", - "publish.hou"] + families = ["render", "render.farm", "render.frames_farm", + "prerender", "prerender.farm", "prerender.frames_farm", + "renderlayer", "imagesequence", "image", + "vrayscene", "maxrender", + "arnold_rop", "mantra_rop", + "karma_rop", "vray_rop", "redshift_rop", + "renderFarm", "usrender", "publish.hou"] primary_pool = None secondary_pool = None diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py index da9a95a98c..9732b79f5a 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py @@ -31,20 +31,13 @@ class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): "max", "houdini"] - families = ["render", - "prerender", - "rendering", - "render.farm", - "renderFarm", - "renderlayer", - "maxrender", - "usdrender", - "redshift_rop", - "arnold_rop", - "mantra_rop", - "karma_rop", - "vray_rop", - "publish.hou"] + families = ["render", "render.farm", "render.frames_farm", + "prerender", "prerender.farm", "prerender.frames_farm", + "renderlayer", "imagesequence", "image", + "vrayscene", "maxrender", + "arnold_rop", "mantra_rop", + "karma_rop", "vray_rop", "redshift_rop", + "renderFarm", "usrender", "publish.hou"] def process(self, instance): if not instance.data.get("farm"): From b6d7bd949a14a2bb83d0644dc84f0ca36de2ccbb Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:06:49 +0200 Subject: [PATCH 28/39] bump versions --- server_addon/hiero/client/ayon_hiero/version.py | 2 +- server_addon/hiero/package.py | 2 +- server_addon/traypublisher/client/ayon_traypublisher/version.py | 2 +- server_addon/traypublisher/package.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server_addon/hiero/client/ayon_hiero/version.py b/server_addon/hiero/client/ayon_hiero/version.py index fe6d62221c..74ebfba8b0 100644 --- a/server_addon/hiero/client/ayon_hiero/version.py +++ b/server_addon/hiero/client/ayon_hiero/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'hiero' version.""" -__version__ = "0.2.1" +__version__ = "0.2.2" diff --git a/server_addon/hiero/package.py b/server_addon/hiero/package.py index 95714d95da..eba3fb12f4 100644 --- a/server_addon/hiero/package.py +++ b/server_addon/hiero/package.py @@ -1,6 +1,6 @@ name = "hiero" title = "Hiero" -version = "0.2.1" +version = "0.2.2" client_dir = "ayon_hiero" ayon_required_addons = { diff --git a/server_addon/traypublisher/client/ayon_traypublisher/version.py b/server_addon/traypublisher/client/ayon_traypublisher/version.py index 01f2ad4f1d..514b5691d3 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/version.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'traypublisher' version.""" -__version__ = "0.2.2" +__version__ = "0.2.3" diff --git a/server_addon/traypublisher/package.py b/server_addon/traypublisher/package.py index 85611526d0..8fc725c6cb 100644 --- a/server_addon/traypublisher/package.py +++ b/server_addon/traypublisher/package.py @@ -1,6 +1,6 @@ name = "traypublisher" title = "TrayPublisher" -version = "0.2.2" +version = "0.2.3" client_dir = "ayon_traypublisher" From f0d12503a7d3dd1f1b9a383187d75e27daa1693b Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:12:38 +0200 Subject: [PATCH 29/39] fix client versions --- server_addon/aftereffects/client/ayon_aftereffects/version.py | 2 +- server_addon/applications/client/ayon_applications/version.py | 3 +++ server_addon/maya/client/ayon_maya/version.py | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/version.py b/server_addon/aftereffects/client/ayon_aftereffects/version.py index 8ab87ea78c..2faa06ba3a 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/version.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'aftereffects' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/applications/client/ayon_applications/version.py b/server_addon/applications/client/ayon_applications/version.py index e69de29bb2..fe2358c4a0 100644 --- a/server_addon/applications/client/ayon_applications/version.py +++ b/server_addon/applications/client/ayon_applications/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'applications' version.""" +__version__ = "0.2.3" diff --git a/server_addon/maya/client/ayon_maya/version.py b/server_addon/maya/client/ayon_maya/version.py index e69de29bb2..1655067287 100644 --- a/server_addon/maya/client/ayon_maya/version.py +++ b/server_addon/maya/client/ayon_maya/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'maya' version.""" +__version__ = "0.2.2" From f9cc394aae92f71083552ddeeffbace760125184 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:20:28 +0200 Subject: [PATCH 30/39] removed ftrack resources --- .../action_icons/ActionAskWhereIRun.svg | 131 ------------------ .../ftrack/action_icons/AssetsRemover.svg | 1 - .../ftrack/action_icons/BatchTasks.svg | 32 ----- .../ftrack/action_icons/ComponentOpen.svg | 31 ----- .../ftrack/action_icons/CreateFolders.svg | 29 ---- .../action_icons/CreateProjectFolders.svg | 29 ---- .../ftrack/action_icons/DeleteAsset.svg | 32 ----- .../ftrack/action_icons/Delivery.svg | 27 ---- .../ftrack/action_icons/MultipleNotes.svg | 29 ---- .../ftrack/action_icons/OpenPypeAdmin.svg | 47 ------- .../ftrack/action_icons/PrepareProject.svg | 29 ---- .../resources/ftrack/action_icons/RV.png | Bin 10126 -> 0 bytes .../ftrack/action_icons/SeedProject.svg | 29 ---- .../ftrack/action_icons/SortReview.svg | 32 ----- .../ftrack/action_icons/TestAction.svg | 28 ---- .../ftrack/action_icons/Thumbnail.svg | 31 ----- .../resources/ftrack/sign_in_message.html | 32 ----- 17 files changed, 569 deletions(-) delete mode 100644 client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/Delivery.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/RV.png delete mode 100644 client/ayon_core/resources/ftrack/action_icons/SeedProject.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/SortReview.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/TestAction.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg delete mode 100644 client/ayon_core/resources/ftrack/sign_in_message.html diff --git a/client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg b/client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg deleted file mode 100644 index c02b8f83d8..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg b/client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg deleted file mode 100644 index e838ee9f28..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg b/client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg deleted file mode 100644 index 5cf5d423dd..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg b/client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg deleted file mode 100644 index f549e6142b..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg b/client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg deleted file mode 100644 index 18efc273aa..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg b/client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg deleted file mode 100644 index 0e5821b0be..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg b/client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg deleted file mode 100644 index 855bdae7c5..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/Delivery.svg b/client/ayon_core/resources/ftrack/action_icons/Delivery.svg deleted file mode 100644 index a6333333ae..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/Delivery.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg b/client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg deleted file mode 100644 index 40113fc709..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg b/client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg deleted file mode 100644 index c2abc6146f..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg b/client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg deleted file mode 100644 index 644d83f84d..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/RV.png b/client/ayon_core/resources/ftrack/action_icons/RV.png deleted file mode 100644 index 741e7a9772bc76815556d92323542be25f069d63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10126 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 diff --git a/client/ayon_core/resources/ftrack/action_icons/SeedProject.svg b/client/ayon_core/resources/ftrack/action_icons/SeedProject.svg deleted file mode 100644 index ff818b5ecb..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/SeedProject.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/SortReview.svg b/client/ayon_core/resources/ftrack/action_icons/SortReview.svg deleted file mode 100644 index 13a7def648..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/SortReview.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/TestAction.svg b/client/ayon_core/resources/ftrack/action_icons/TestAction.svg deleted file mode 100644 index 917ef2d0c7..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/TestAction.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg b/client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg deleted file mode 100644 index 9af330e79a..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/sign_in_message.html b/client/ayon_core/resources/ftrack/sign_in_message.html deleted file mode 100644 index 8ee2828c26..0000000000 --- a/client/ayon_core/resources/ftrack/sign_in_message.html +++ /dev/null @@ -1,32 +0,0 @@ - - - -

Sign in to Ftrack was successful

-

- You signed in with username {}. -

-

- You can close this window now. -

- - From 0a99109d73002d90b3e2d6ed6c78e5e444a02e41 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Mon, 10 Jun 2024 19:52:16 +0800 Subject: [PATCH 31/39] remove unrelated hosts and bump application addon version --- client/ayon_core/hosts/unreal/integration | 1 - server_addon/applications/package.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 160000 client/ayon_core/hosts/unreal/integration diff --git a/client/ayon_core/hosts/unreal/integration b/client/ayon_core/hosts/unreal/integration deleted file mode 160000 index 04b35dbf5f..0000000000 --- a/client/ayon_core/hosts/unreal/integration +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 04b35dbf5fc42d905281fc30d3a22b139c1855e5 diff --git a/server_addon/applications/package.py b/server_addon/applications/package.py index 436c283791..23b1756d99 100644 --- a/server_addon/applications/package.py +++ b/server_addon/applications/package.py @@ -1,6 +1,6 @@ name = "applications" title = "Applications" -version = "0.2.3" +version = "0.2.4" client_dir = "ayon_applications" From 38d2318fb6f2c70c1ef8cae3e80fb158f6cfd29c Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 10 Jun 2024 14:24:10 +0200 Subject: [PATCH 32/39] Report exception info when CLI command failed to be added. --- client/ayon_core/cli_commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/cli_commands.py b/client/ayon_core/cli_commands.py index 0fb18be687..f71588e196 100644 --- a/client/ayon_core/cli_commands.py +++ b/client/ayon_core/cli_commands.py @@ -36,7 +36,7 @@ class Commands: log.warning( "Failed to add cli command for module \"{}\"".format( addon.name - ) + ), exc_info=True ) return click_func From 5d6e5f329b616140f57ff75ff61fd411787fd8fb Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Mon, 10 Jun 2024 20:28:17 +0800 Subject: [PATCH 33/39] bump application version in version.py --- server_addon/applications/client/ayon_applications/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/applications/client/ayon_applications/version.py b/server_addon/applications/client/ayon_applications/version.py index fe2358c4a0..06abc74286 100644 --- a/server_addon/applications/client/ayon_applications/version.py +++ b/server_addon/applications/client/ayon_applications/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'applications' version.""" -__version__ = "0.2.3" +__version__ = "0.2.4" From 30eeb00e2a599c961419442931b6efb825318a0c Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 15:13:58 +0200 Subject: [PATCH 34/39] remove only representations that were processed by the plugin --- client/ayon_core/plugins/publish/extract_color_transcode.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/ayon_core/plugins/publish/extract_color_transcode.py b/client/ayon_core/plugins/publish/extract_color_transcode.py index 1130c575a3..7b74c42ddb 100644 --- a/client/ayon_core/plugins/publish/extract_color_transcode.py +++ b/client/ayon_core/plugins/publish/extract_color_transcode.py @@ -202,10 +202,10 @@ class ExtractOIIOTranscode(publish.Extractor): added_representations = True if added_representations: - self._mark_original_repre_for_deletion(repre, profile, - added_review) + self._mark_original_repre_for_deletion( + repre, profile, added_review + ) - for repre in tuple(instance.data["representations"]): tags = repre.get("tags") or [] if "delete" in tags and "thumbnail" not in tags: instance.data["representations"].remove(repre) From a853d39275fab6b4bf0330a697b96446c2702195 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 10 Jun 2024 17:49:28 +0200 Subject: [PATCH 35/39] Use single list of families All collectors should use same list of families (eg. product types). This list is a bit bigger than list in submit_publish_job which might be by design as some families might be changing during publishing steps. --- server_addon/deadline/client/ayon_deadline/lib.py | 10 ++++++++++ .../publish/collect_deadline_server_from_instance.py | 10 +++------- .../ayon_deadline/plugins/publish/collect_pools.py | 10 +++------- .../plugins/publish/collect_user_credentials.py | 10 +++------- 4 files changed, 19 insertions(+), 21 deletions(-) create mode 100644 server_addon/deadline/client/ayon_deadline/lib.py diff --git a/server_addon/deadline/client/ayon_deadline/lib.py b/server_addon/deadline/client/ayon_deadline/lib.py new file mode 100644 index 0000000000..8822559134 --- /dev/null +++ b/server_addon/deadline/client/ayon_deadline/lib.py @@ -0,0 +1,10 @@ +# describes list of product typed used for plugin filtering for farm publishing +FARM_FAMILIES = [ + "render", "render.farm", "render.frames_farm", + "prerender", "prerender.farm", "prerender.frames_farm", + "renderlayer", "imagesequence", "image", + "vrayscene", "maxrender", + "arnold_rop", "mantra_rop", + "karma_rop", "vray_rop", "redshift_rop", + "renderFarm", "usrender", "publish.hou" +] diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py index 90776220d3..2c8cbd1620 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py @@ -8,6 +8,8 @@ attribute or using default server if that attribute doesn't exists. import pyblish.api from ayon_core.pipeline.publish import KnownPublishError +from ayon_deadline.lib import FARM_FAMILIES + class CollectDeadlineServerFromInstance(pyblish.api.InstancePlugin): """Collect Deadline Webservice URL from instance.""" @@ -17,13 +19,7 @@ class CollectDeadlineServerFromInstance(pyblish.api.InstancePlugin): label = "Deadline Webservice from the Instance" targets = ["local"] - families = ["render", "render.farm", "render.frames_farm", - "prerender", "prerender.farm", "prerender.frames_farm", - "renderlayer", "imagesequence", "image", - "vrayscene", "maxrender", - "arnold_rop", "mantra_rop", - "karma_rop", "vray_rop", "redshift_rop", - "renderFarm", "usrender", "publish.hou"] + families = FARM_FAMILIES def process(self, instance): if not instance.data.get("farm"): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py index b3e0625d3b..b2b6bc60d4 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py @@ -3,6 +3,8 @@ import pyblish.api from ayon_core.lib import TextDef from ayon_core.pipeline.publish import AYONPyblishPluginMixin +from ayon_deadline.lib import FARM_FAMILIES + class CollectDeadlinePools(pyblish.api.InstancePlugin, AYONPyblishPluginMixin): @@ -36,13 +38,7 @@ class CollectDeadlinePools(pyblish.api.InstancePlugin, "nuke", ] - families = ["render", "render.farm", "render.frames_farm", - "prerender", "prerender.farm", "prerender.frames_farm", - "renderlayer", "imagesequence", "image", - "vrayscene", "maxrender", - "arnold_rop", "mantra_rop", - "karma_rop", "vray_rop", "redshift_rop", - "renderFarm", "usrender", "publish.hou"] + families = FARM_FAMILIES primary_pool = None secondary_pool = None diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py index 9732b79f5a..ab96ba5828 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py @@ -14,6 +14,8 @@ import pyblish.api from ayon_api import get_server_api_connection +from ayon_deadline.lib import FARM_FAMILIES + class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): """Collects user name and password for artist if DL requires authentication @@ -31,13 +33,7 @@ class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): "max", "houdini"] - families = ["render", "render.farm", "render.frames_farm", - "prerender", "prerender.farm", "prerender.frames_farm", - "renderlayer", "imagesequence", "image", - "vrayscene", "maxrender", - "arnold_rop", "mantra_rop", - "karma_rop", "vray_rop", "redshift_rop", - "renderFarm", "usrender", "publish.hou"] + families = FARM_FAMILIES def process(self, instance): if not instance.data.get("farm"): From e7b436a4123ac35a90254e4101c5c3316293748a Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 11 Jun 2024 00:53:07 +0200 Subject: [PATCH 36/39] Actually format the representation name into the log message --- client/ayon_core/plugins/publish/extract_color_transcode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/plugins/publish/extract_color_transcode.py b/client/ayon_core/plugins/publish/extract_color_transcode.py index 1130c575a3..07f10cb469 100644 --- a/client/ayon_core/plugins/publish/extract_color_transcode.py +++ b/client/ayon_core/plugins/publish/extract_color_transcode.py @@ -364,7 +364,7 @@ class ExtractOIIOTranscode(publish.Extractor): if not repre.get("colorspaceData"): self.log.debug("Representation '{}' has no colorspace data. " - "Skipped.") + "Skipped.".format(repre["name"])) return False return True From 0d4d13e240b57bf4f1589932b3b8e8f9ff00896c Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 11 Jun 2024 00:55:08 +0200 Subject: [PATCH 37/39] Fix typo `_on_refreh_clicked` -> `_on_refresh_clicked` --- client/ayon_core/tools/launcher/ui/hierarchy_page.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/tools/launcher/ui/hierarchy_page.py b/client/ayon_core/tools/launcher/ui/hierarchy_page.py index 226a57930b..ad48e8ac77 100644 --- a/client/ayon_core/tools/launcher/ui/hierarchy_page.py +++ b/client/ayon_core/tools/launcher/ui/hierarchy_page.py @@ -70,7 +70,7 @@ class HierarchyPage(QtWidgets.QWidget): main_layout.addWidget(content_body, 1) btn_back.clicked.connect(self._on_back_clicked) - refresh_btn.clicked.connect(self._on_refreh_clicked) + refresh_btn.clicked.connect(self._on_refresh_clicked) folders_filter_text.textChanged.connect(self._on_filter_text_changed) self._is_visible = False @@ -99,7 +99,7 @@ class HierarchyPage(QtWidgets.QWidget): def _on_back_clicked(self): self._controller.set_selected_project(None) - def _on_refreh_clicked(self): + def _on_refresh_clicked(self): self._controller.refresh() def _on_filter_text_changed(self, text): From 34a055d92baf2928fa607b1b3065a52aa165e760 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 11 Jun 2024 01:25:15 +0200 Subject: [PATCH 38/39] Fix `super` call --- client/ayon_core/lib/attribute_definitions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/lib/attribute_definitions.py b/client/ayon_core/lib/attribute_definitions.py index 3dd284b8e4..0a9d38ab65 100644 --- a/client/ayon_core/lib/attribute_definitions.py +++ b/client/ayon_core/lib/attribute_definitions.py @@ -281,7 +281,7 @@ class HiddenDef(AbstractAttrDef): def __init__(self, key, default=None, **kwargs): kwargs["default"] = default kwargs["hidden"] = True - super(UnknownDef, self).__init__(key, **kwargs) + super(HiddenDef, self).__init__(key, **kwargs) def convert_value(self, value): return value From d7ea9dd4f822ec93fd7b5e766182d79c44913156 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 11 Jun 2024 01:27:46 +0200 Subject: [PATCH 39/39] Fix duplicated function `_rename_in_representation` Avoids redeclaration --- .../publish/extract_color_transcode.py | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/client/ayon_core/plugins/publish/extract_color_transcode.py b/client/ayon_core/plugins/publish/extract_color_transcode.py index 1130c575a3..830f0de741 100644 --- a/client/ayon_core/plugins/publish/extract_color_transcode.py +++ b/client/ayon_core/plugins/publish/extract_color_transcode.py @@ -212,33 +212,6 @@ class ExtractOIIOTranscode(publish.Extractor): instance.data["representations"].extend(new_representations) - def _rename_in_representation(self, new_repre, files_to_convert, - output_name, output_extension): - """Replace old extension with new one everywhere in representation. - - Args: - new_repre (dict) - files_to_convert (list): of filenames from repre["files"], - standardized to always list - output_name (str): key of output definition from Settings, - if "" token used, keep original repre name - output_extension (str): extension from output definition - """ - if output_name != "passthrough": - new_repre["name"] = output_name - if not output_extension: - return - - new_repre["ext"] = output_extension - - renamed_files = [] - for file_name in files_to_convert: - file_name, _ = os.path.splitext(file_name) - file_name = '{}.{}'.format(file_name, - output_extension) - renamed_files.append(file_name) - new_repre["files"] = renamed_files - def _rename_in_representation(self, new_repre, files_to_convert, output_name, output_extension): """Replace old extension with new one everywhere in representation.