ayon-core/CHANGELOG.md
2023-09-28 09:30:43 +00:00

583 KiB
Raw Blame History

Changelog

3.17.1

Full Changelog

🆕 New features

Unreal: Yeti support #5643

Implemented Yeti support for Unreal.


Houdini: Add Static Mesh product-type (family) #5481

This PR adds support to publish Unreal Static Mesh in Houdini as FBXQuick recap

  • Add UE Static Mesh Creator
  • Dynamic subset name like in Maya
  • Collect Static Mesh Type
  • Update collect output node
  • Validate FBX output node
  • Validate mesh is static
  • Validate Unreal Static Mesh Name
  • Validate Subset Name
  • FBX Extractor
  • FBX Loader
  • Update OP Settings
  • Update AYON Settings

Launcher tool: Refactor launcher tool (for AYON) #5612

Refactored launcher tool to new tool. Separated backend and frontend logic. Refactored logic is AYON-centric and is used only in AYON mode, so it does not affect OpenPype.


🚀 Enhancements

Maya: Use custom staging dir function for Maya renders - OP-5265 #5186

Check for custom staging dir when setting the renders output folder in Maya.


Colorspace: updating file path detection methods #5273

Support for OCIO v2 file rules integrated into the available color management API


Chore: add default isort config #5572

Add default configuration for isort tool


Deadline: set PATH environment in deadline jobs by GlobalJobPreLoad #5622

This PR makes GlobalJobPreLoad to set PATH environment in deadline jobs so that we don't have to use the full executable path for deadline to launch the dcc app. This trick should save us adding logic to pass houdini patch version and modifying Houdini deadline plugin. This trick should work with other DCCs


nuke: extract review data mov read node with expression #5635

Some productions might have set default values for read nodes, those settings are not colliding anymore now.


🐛 Bug fixes

Maya: Support new publisher for colorsets validation. #5630

Fix validate_color_sets for the new publisher.In current develop the repair option does not appear due to wrong error raising.


Houdini: Camera Loader fix mismatch for Maya cameras #5584

This PR adds

  • A workaround to match Maya render mask in Houdini
  • SetCameraResolution inventory action
  • set camera resolution when loading or updating camera

Nuke: fix set colorspace on writes #5634

Colorspace is set correctly to any write node created from publisher.


TVPaint: Fix review family extraction #5637

Extractor marks representation of review instance with review tag.


AYON settings: Extract OIIO transcode settings #5639

Output definitions of Extract OIIO transcode have name to match OpenPype settings, and the settings are converted to dictionary in settings conversion.


AYON: Fix task type short name conversion #5641

Convert AYON task type short name for OpenPype correctly.


colorspace: missing `allowed_exts` fix #5646

Colorspace module is not failing due to missing allowed_exts attribute.


Photoshop: remove trailing underscore in subset name #5647

If {layer} placeholder is at the end of subset name template and not used (for example in auto_image where separating it by layer doesn't make any sense) trailing '_' was kept. This updates cleaning logic and extracts it as it might be similar in regular image instance.


traypublisher: missing `assetEntity` in context data #5648

Issue with missing assetEnity key in context data is not problem anymore.


AYON: Workfiles tool save button works #5653

Fix save as button in workfiles tool.(It is mystery why this stopped to work??)


Max: bug fix delete items from container #5658

Fix the bug shown when clicking "Delete Items from Container" and selecting nothing and press ok.


🔀 Refactored code

Chore: Remove unused functions from Fusion integration #5617

Cleanup unused code from Fusion integration


Merged pull requests

Increase timout for deadline test #5654

DL picks up jobs quite slow, so bump up delay.


3.17.0

Full Changelog

🚀 Enhancements

Chore: Remove schema from OpenPype root #5355

Remove unused schema directory in root of repository which was moved inside openpype/pipeline/schema.


Igniter: Allow custom Qt scale factor rounding policy #5554

Do not force PassThrough rounding policy if different policy is defined via env variable.


🐛 Bug fixes

Chore: Lower urllib3 to support older OpenSSL #5538

Lowered urllib3 to 1.26.16 to support older OpenSSL.


Chore: Do not try to add schema to zip files #5557

Do not add schema folder to zip file. This fixes issue cause by https://github.com/ynput/OpenPype/pull/5355 .


Chore: Lower click dependency version #5629

Lower click version to support older versions of python.


Merged pull requests

Bump certifi from 2023.5.7 to 2023.7.22 #5351

Bumps certifi from 2023.5.7 to 2023.7.22.

Commits

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.

Note

Automatic rebases have been disabled on this pull request as it has been open for over 30 days.


3.16.7

Full Changelog

🆕 New features

Maya: Extract active view as thumbnail when no thumbnail set #5426

This sets the Maya instance's thumbnail to the current active view if no thumbnail was set yet.


Maya: Implement USD publish and load using native `mayaUsdPlugin` #5573

Implement Creator and Loaders for extraction and loading of USD files using Maya's own mayaUsdPlugin.Also adds support to load a usd file into an Arnold Standin (aiStandin) and assigning looks to it.


AYON: Ignore separated modules #5619

Do not load already separated modules from default directory.


🚀 Enhancements

Maya: Reduce amount of code for Collect Looks #5253
  • Refactor get_file_node_files because popping from paths by index should have been done in reversed order anyway. It's now changed to not need popping at all.
  • Removed unused RENDERER_NODE_TYPES and if-branch which collected node_attrs list which was unused + collected members which was also done outside of the if branch and thus generated no extra data.
  • Collected all materials from look set attributes at once instead of multiple queries
  • Collected all file nodes in history from a single query instead of per type
  • Restructured assignment of instance.data["resources"] to be more readable
  • Cached PXR_NODES only ones (Note: plugin load is checked on discovery of the collect look plugin) instead of querying plugin load and its nodes per file node per attribute
  • Removed some debug logs or combined some messages

AYON: Mark deprecated settings in Maya #5627

Added deprecated info to docstrings of maya colormanagement settings.Resolves: https://github.com/ynput/OpenPype/issues/5556


Max: switching versions of maxScene maintain parentage/links with the loaders #5424

When using scene inventory to manage or update the version of the loading objects, the linked modifiers or parentage of the objects would be kept.Meanwhile, loaded objects from all loaders no longer parented to the container with OP Data.


3ds max: small tweaks to obj extractor and model publishing flow #5605

There migh be situation where OBJ Extractor passes without failure, but no obj file is produced. This is adding simple check directly into the extractor to catch it earlier then in the integration phase. Also switched Validate USD Plugin to optional, because it was always run no matter if the Extract USD was enabled or not, hindering testing (and publishing).


TVPaint: Plugin can be reopened #5610

TVPaint plugin can be reopened.


Maya: Remove context prompt #5632

More of a plea than a PR, but could we please remove the context prompt in Maya when switching tasks?


General: Create a desktop icon is checked #5636

In OP Installer Create a desktop icon is checked by default.


🐛 Bug fixes

Maya: Extract look is not AYON compatible - OP-5375 #5341

The textures that would use hardlinking are going through texture processors. Currently all texture processors are hardcoded to copy texture instead of respecting the settings of forcing to copy.The texture processors were last modified 4 months ago, so effectively all clients that are on any pipeline updated in the last 4 months wont be utilizing hardlinking at all, since the hardcoded texture processors will copy texture no matter the OS.This opts for completely disabling the hardlinking feature, while we figure out what to do about it.


Maya: Multiverse USD Override inherit from correct new style creator #5566

Fix Creator for Multiverse USD Override by inheriting from correct new style creator class type


Max: Bug Fix Alembic Loaders with Ornatrix #5434

Bugfix the alembic loader with both ornatrix alembic and max alembic supportsAdd the ornatrix alembic loaders for loading the alembic with Ornatrix-related modifiers.


AYON: Avoid creation of duplicated links #5593

Handle cases when an existing link should be recreated and do not create the same link multitple times during single publishing.


Extract Review: Multilayer specification for ffmpeg #5613

Extract review is specifying layer name when exr is multilayer.


Fussion: added support for Fusion 17 #5614

Fusion 17 still uses Python 3.6 which causes issues with some our delivered libraries. Vendorized necessary set for Python 3.6


Publisher: Fix screenshot widget #5615

Use correct super method name.EDITED:Removed fade animation which is not triggered at some cases, e.g. in Nuke the animation does not start. I do expect that is caused by exec_ on the dialog, which blocks event processing to the animation, even when I've added the window as parent it still didn't trigger registered callback.Modified how the "empty" space is not filled by using paths instead of clear mode on painter. Added render hints to add antialiasing.


Photoshop: auto_images without alpha will not fail #5620

ExtractReview caused issue on auto_image instance without alpha channel, this fixes it.


Fix - _id key used instead of id in get_last_version_by_subset_name #5626

Just 'id' is not returned because value in fields. Caused KeyError.


Bugfix: create symlinks for ssl libs on Centos 7 #5633

Docker build was missing libssl.1.1.so and libcrypto.1.1.so symlinks needed by the executable itself, because Python is now explicitly built with OpenSSL 1.1.1


📃 Documentation

Documentation/local settings #5102

I completed the "Working with local settings" page. I updated the screenshot, wrote an explanation for each empty category, and if available, linked the more detailed pages already existing. I also added the "Environments" category.


3.16.6

Full Changelog

🆕 New features

Workfiles tool: Refactor workfiles tool (for AYON) #5550

Refactored workfiles tool to new tool. Separated backend and frontend logic. Refactored logic is AYON-centric and is used only in AYON mode, so it does not affect OpenPype.


AfterEffects: added validator for missing files in FootageItems #5590

Published composition in AE could contain multiple FootageItems as a layers. If FootageItem contains imported file and it doesn't exist, render triggered by Publish process will silently fail and no output is generated. This could cause failure later in the process with unclear reason. (In ExtractReview).This PR adds validation to protect from this.


🚀 Enhancements

Maya: Yeti Cache Include viewport preview settings from source #5561

When publishing and loading yeti caches persist the display output and preview colors + settings to ensure consistency in the view


Houdini: validate colorspace in review rop #5322

Adding a validator that checks if 'OCIO Colorspace' parameter on review rop was set to a valid value.It is a step towards managing colorspace in review ropvalid values are the ones in the dropdown menuthis validator also provides some helper actions This PR is related to #4836 and #4833


Colorspace: adding abstraction of publishing related functions #5497

The functionality of Colorspace has been abstracted for greater usability.


Nuke: removing redundant workfile colorspace attributes #5580

Nuke root workfile colorspace data type knobs are long time configured automatically via config roles or the default values are also working well. Therefore there is no need for pipeline managed knobs.


Ftrack: Less verbose logs for Ftrack integration in artist facing logs #5596
  • Reduce artist-facing logs for component integration for Ftrack
  • Avoid "Comment is not set" log in artist facing report for Kitsu and Ftrack
  • Remove info log about ffprobe inspecting a file (changed to debug log)
  • interesting to see however that it ffprobes the same jpeg twice - but maybe once for thumbnail?

🐛 Bug fixes

Maya: Fix rig validators for new out_SET and controls_SET names #5595

Fix usage of out_SET and controls_SET since #5310 because they can now be prefixed by the subset name.


TrayPublisher: set default frame values to sequential data #5530

We are inheriting default frame handles and fps data either from project or setting them to 0. This is just for case a production will decide not to injest the sequential representations with asset based metadata.


Publisher: Screenshot opacity value fix #5576

Fix opacity value.


AfterEffects: fix imports of image sequences #5581

#4602 broke imports of image sequences.


AYON: Fix representation context conversion #5591

Do not fix "folder" key in representation context until it is needed.


ayon-nuke: default factory to lists #5594

Default factory were missing in settings schemas for complicated objects like lists and it was causing settings to be failing saving.


Maya: Fix look assigner showing no asset if 'not found' representations are present #5597

Fix Maya Look assigner failing to show any content if it finds an invalid container for which it can't find the asset in the current project. (This can happen when e.g. loading something from a library project).There was logic already to avoid this but there was a bug where it used variable _id which did not exist and likely had to be asset_id.I've fixed that and improved the logged message a bit, e.g.:

// Warning: openpype.hosts.maya.tools.mayalookassigner.commands : Id found on 22 nodes for which no asset is found database, skipping '641d78ec85c3c5b102e836b0'

Example not found representation in Loader:The issue isn't necessarily related to NOT FOUND representations but in essence boils down to finding nodes with asset ids that do not exist in the current project which could very well just be local meshes in your scene.**Note:**I've excluded logging the nodes themselves because that tends to be a very long list of nodes. Only downside to removing that is that it's unclear which nodes are related to that id. If there are any ideas on how to still provide a concise informational message about that that'd be great so I could add it. Things I had considered:

  • Report the containers, issue here is that it's about asset ids on nodes which don't HAVE to be in containers - it could be local geometry
  • Report the namespaces, issue here is that it could be nodes without namespaces (plus potentially not about ALL nodes in a namespace)
  • Report the short names of the nodes; it's shorter and readable but still likely a lot of nodes.@tokejepsen @LiborBatek any other ideas?

Photoshop: fixed blank Flatten image #5600

Flatten image is simplified publishing approach where all visible layers are "flatten" and published together. This image could be used as a reference etc.This is implemented by auto creator which wasn't updated after first publish. This would result in missing newly created layers after auto_image instance was created.


Blender: Remove Hardcoded Subset Name for Reviews #5603

Fixes hardcoded subset name for Reviews in Blender.


TVPaint: Fix tool callbacks #5608

Do not wait for callback to finish.


🔀 Refactored code

Chore: Remove unused variables and cleanup #5588

Removing some unused variables. In some cases the unused variables seemed like they should've been used - maybe? so please double check the code whether it doesn't hint to an already existing bug.Also tweaked some other small bugs in code + tweaked logging levels.


Merged pull requests

Chore: Loader log deprecation warning for 'fname' attribute #5587

Since https://github.com/ynput/OpenPype/pull/4602 the fname attribute on the LoaderPlugin should've been deprecated and set for removal over time. However, no deprecation warning was logged whatsoever and thus one usage appears to have sneaked in (fixed with this PR) and a new one tried to sneak in with a recent PR


3.16.5

Full Changelog

🆕 New features

Attribute Definitions: Multiselection enum def #5547

Added multiselection option to EnumDef.


🚀 Enhancements

Farm: adding target collector #5494

Enhancing farm publishing workflow.


Maya: Optimize validate plug-in path attributes #5522
  • Optimize query (use cmds.ls once)
  • Add Select Invalid action
  • Improve validation report
  • Avoid "Unknown object type" errors

Maya: Remove Validate Instance Attributes plug-in #5525

Remove Validate Instance Attributes plug-in.


Enhancement: Tweak logging for artist facing reports #5537

Tweak the logging of publishing for global, deadline, maya and a fusion plugin to have a cleaner artist-facing report.

  • Fix context being reported correctly from CollectContext
  • Fix ValidateMeshArnoldAttributes: fix when arnold is not loaded, fix applying settings, fix for when ai attributes do not exist

AYON: Update settings #5544

Updated settings in AYON addons and conversion of AYON settings in OpenPype.


Chore: Removed Ass export script #5560

Removed Arnold render script, which was obsolete and unused.


Nuke: Allow for knob values to be validated against multiple values. #5042

Knob values can now be validated against multiple values, so you can allow write nodes to be exr and png, or 16-bit and 32-bit.


Enhancement: Cosmetics for Higher version of publish already exists validation error #5190

Fix double spaces in message.Example output after the PR:


Nuke: publish existing frames on farm #5409

This PR proposes adding a fourth option in Nuke render publish called "Use Existing Frames - Farm". This would be useful when the farm is busy or when the artist lacks enough farm licenses. Additionally, some artists prefer rendering on the farm but still want to check frames before publishing.By adding the "Use Existing Frames - Farm" option, artists will have more flexibility and control over their render publishing process. This enhancement will streamline the workflow and improve efficiency for Nuke users.


Unreal: Create project in temp location and move to final when done #5476

Create Unreal project in local temporary folder and when done, move it to final destination.


TrayPublisher: adding audio product type into default presets #5489

Adding Audio product type into default presets so anybody can publish audio to their shots.


Global: avoiding cleanup of flagged representation #5502

Publishing folder can be flagged as persistent at representation level.


General: missing tag could raise error #5511
  • avoiding potential situation where missing Tag key could raise error

Chore: Queued event system #5514

Implemented event system with more expected behavior of event system. If an event is triggered during other event callback, it is not processed immediately but waits until all callbacks of previous events are done. The event system also allows to not trigger events directly once emit_event is called which gives option to process events in custom loops.


Publisher: Tweak log message to provide plugin name after "Plugin" #5521

Fix logged message for settings automatically applied to plugin attributes


Houdini: Improve VDB Selection #5523

Improves VDB selection if selection is SopNode: return the selected sop nodeif selection is ObjNode: get the output node with the minimum 'outputidx' or the node with display flag


Maya: Refactor/tweak Validate Instance In same Context plug-in #5526
  • Chore/Refactor: Re-use existing select invalid and repair actions
  • Enhancement: provide more elaborate PublishValidationError report
  • Bugfix: fix "optional" support by using OptionalPyblishPluginMixin base class.

Enhancement: Update houdini main menu #5527

This PR adds two updates:

  • dynamic main menu
  • dynamic asset name and task

Houdini: Reset FPS when clicking Set Frame Range #5528

Similar to Maya, Make Set Frame Range resets FPS, issue https://github.com/ynput/OpenPype/issues/5516


Enhancement: Deadline plugins optimize, cleanup and fix optional support for validate deadline pools #5531
  • Fix optional support of validate deadline pools
  • Query deadline webservice only once per URL for verification, and once for available deadline pools instead of for every instance
  • Use deadlineUrl in instance.data when validating pools if it is set.
  • Code cleanup: Re-use existing requests_get implementation

Chore: PowerShell script for docker build #5535

Added PowerShell script to run docker build.


AYON: Deadline expand userpaths in executables list #5540

Expande ~ paths in executables list.


Chore: Use correct git url #5542

Fixed github url in README.md.


Chore: Create plugin does not expect system settings #5553

System settings are not passed to initialization of create plugin initialization (and apply_settings).


Chore: Allow custom Qt scale factor rounding policy #5555

Do not force PassThrough rounding policy if different policy is defined via env variable.


Houdini: Fix outdated containers pop-up on opening last workfile on launch #5567

Fix Houdini not showing outdated containers pop-up on scene open when launching with last workfile argument


Houdini: Improve errors e.g. raise PublishValidationError or cosmetics #5568

Improve errors e.g. raise PublishValidationError or cosmeticsThis also fixes the Increment Current File plug-in since due to an invalid import it was previously broken


Fusion: Code updates #5569

Update fusion code which contains obsolete code. Removed switch_ui.py script from fusion with related script in scripts.


🐛 Bug fixes

Maya: Validate Shape Zero fix repair action + provide informational artist-facing report #5524

Refactor to PublishValidationError to allow the RepairAction to work + provide informational report message


Maya: Fix attribute definitions for `CreateYetiCache` #5574

Fix attribute definitions for CreateYetiCache


Max: Optional Renderable Camera Validator for Render Instance #5286

Optional validation to check on renderable camera being set up correctly for deadline submission.If not being set up correctly, it wont pass the validation and user can perform repair actions.


Max: Adding custom modifiers back to the loaded objects #5378

The custom parameters OpenpypeData doesn't show in the loaded container when it is being loaded through the loader.


Houdini: Use default_variant to Houdini Node TAB Creator #5421

Use the default variant of the creator plugins on the interactive creator from the TAB node search instead of hard-coding it to Main.


Nuke: adding inherited colorspace from instance #5454

Thumbnails are extracted with inherited colorspace collected from rendering write node.


Add kitsu credentials to deadline publish job #5455

This PR hopefully fixes this issue #5440


AYON: Fill entities during editorial #5475

Fill entities and update template data on instances during extract AYON hierarchy.


Ftrack: Fix version 0 when integrating to Ftrack - OP-6595 #5477

Fix publishing version 0 to Ftrack.


OCIO: windows unc path support in Nuke and Hiero #5479

Hiero and Nuke is not supporting windows unc path formatting in OCIO environment variable.


Deadline: Added super call to init #5480

DL 10.3 requires plugin inheriting from DeadlinePlugin to call super's init explicitly.


Nuke: fixing thumbnail and monitor out root attributes #5483

Nuke Root Colorspace settings for Thumbnail and Monitor Out schema was gradually changed between version 12, 13, 14 and we needed to address those changes individually for particular version.


Nuke: fixing missing `instance_id` error #5484

Workfiles with Instances created in old publisher workflow were rising error during converting method since they were missing instance_id key introduced in new publisher workflow.


Nuke: existing frames validator is repairing render target #5486

Nuke is now correctly repairing render target after the existing frames validator finds missing frames and repair action is used.


added UE to extract burnins families #5487

This PR fixes missing burnins in reviewables when rendering from UE.


Harmony: refresh code for current Deadline #5493
  • Added support in Deadline Plug-in for new versions of Harmony, in particular version 21 and 22.
  • Remove review=False flag on render instance
  • Add farm=True flag on render instance
  • Fix is_in_tests function call in Harmony Deadline submission plugin
  • Force HarmonyOpenPype.py Deadline Python plug-in to py3
  • Fix cosmetics/hound in HarmonyOpenPype.py Deadline Python plug-in

Publisher: Fix multiselection value #5505

Selection of multiple instances in Publisher does not cause that all instances change all publish attributes to the same value.


Publisher: Avoid warnings on thumbnails if source image also has alpha channel #5510

Avoids the following warning from ExtractThumbnailFromSource:

// pyblish.ExtractThumbnailFromSource : oiiotool WARNING: -o : Can't save 4 channels to jpeg... saving only R,G,B

Update ayon-python-api #5512

Update ayon python api and related callbacks.


Max: Fixing the bug of falling back to use workfile for Arnold or any renderers except Redshift #5520

Fix the bug of falling back to use workfile for Arnold


General: Fix Validate Publish Dir Validator #5534

Nonsensical "family" key was used instead of real value (as 'render' etc.) which would result in wrong translation of intermediate family names.Updated docstring.


have the addons loading respect a custom AYON_ADDONS_DIR #5539

When using a custom AYON_ADDONS_DIR environment variable that variable is used in the launcher correctly and downloads and extracts addons to there, however when running Ayon does not respect this environment variable


Deadline: files on representation cannot be single item list #5545

Further logic expects that single item files will be only 'string' not 'list' (eg. repre["files"] = "abc.exr" not repre["files"] = ["abc.exr"].This would cause an issue in ExtractReview later.This could happen if DL rendered single frame file with different frame value.


Webpublisher: better encode list values for click #5546

Targets could be a list, original implementation pushed it as a separate items, it must be added as --targets webpulish --targets filepublish.wepublish_routes handles triggering from UI, changes in publish_functions handle triggering from cmd (for tests, api access).


Houdini: Introduce imprint function for correct version in hda loader #5548

Resolve #5478


AYON: Fill entities during editorial (2) #5549

Fix changes made in https://github.com/ynput/OpenPype/pull/5475.


Max: OP Data updates in Loaders #5563

Fix the bug on the loaders not being able to load the objects when iterating key and values with the dict.Max prefers list over the list in dict.


Create Plugins: Better check of overriden '__init__' method #5571

Create plugins do not log warning messages about each create plugin because of wrong __init__ method check.


Merged pull requests

Tests: fix unit tests #5533

Fixed failing tests.Updated Unreal's validator to match removed general one which had a couple of issues fixed.


3.16.4

Full Changelog

🆕 New features

Feature: Download last published workfile specify version #4998

Setting workfile_version key to hook's self.launch_context.data allow you to specify the workfile version you want sync service to download if none is matched locally. This is helpful if the last version hasn't been correctly published/synchronized, and you want to recover the previous one (or some you'd like).Version could be set in two ways:

  • OP's absolute version, matching the version index in DB.
  • Relative version in reverse order from the last one: -2, -3...I don't know where I should write documentation about that.

🚀 Enhancements

Maya: allow not creation of group for Import loaders #5427

This PR enhances previous one. All ReferenceLoaders could not wrap imported products into explicit group.Also Import Loaders have same options. Control for this is separate in Settings, eg. Reference might wrap loaded items in group, Import might not.


3dsMax: Settings for Ayon #5388

Max Addon Setting for Ayon


General: Navigation to Folder from Launcher #5404

Adds an action in launcher to open the directory of the asset.


Chore: Default variant in create plugin #5429

Attribute default_variant on create plugins always returns string and if default variant is not filled other ways how to get one are implemented.


Publisher: Thumbnail widget enhancements #5439

Thumbnails widget in Publisher has new 3 options to choose from: Paste (from clipboard), Take screenshot and Browse. Clear button and new options are not visible by default, user must expand options button to show them.


AYON: Update ayon api to '0.3.5' #5460

Updated ayon-python-api to 0.3.5.


🐛 Bug fixes

AYON: Apply unknown ayon settings first #5435

Settings of custom addons are available in converted settings.


Maya: Fix wrong subset name of render family in deadline #5442

New Publisher is creating different subset names than previously which resulted in duplication of render string in final subset name of render family published on Deadline.This PR solves that, it also fixes issues with legacy instances from old publisher, it matches the subset name as was before.This solves same issue in Max implementation.


Maya: Fix setting of version to workfile instance #5452

If there are multiple instances of renderlayer published, previous logic resulted in unpredictable rewrite of instance family to 'workfile' if Sync render version with workfile was on.


Maya: Context plugin shouldn't be tied to family #5464

Maya Current File collector was tied to workfile unnecessary. It should run even if workile instance is not being published.


Unreal: Fix loading hero version for static and skeletal meshes #5393

Fixed a problem with loading hero versions for static ans skeletal meshes.


TVPaint: Fix 'repeat' behavior #5412

Calculation of frames for repeat behavior is working correctly.


AYON: Thumbnails cache and api prep #5437

Moved thumbnails cache from ayon python api to OpenPype and prepare AYON thumbnail resolver for new api functions. Current implementation should work with old and new ayon-python-api.


Nuke: Name of the Read Node should be updated correctly when switching versions or assets. #5444

Bug fixing of the read node's name not being updated correctly when setting version or switching asset.


Farm publishing: asymmetric handles fixed #5446

Handles are now set correctly on farm published product version if asymmetric were set to shot attributes.


Scene Inventory: Provider icons fix #5450

Fix how provider icons are accessed in scene inventory.


Fix typo on Deadline OP plugin name #5453

Surprised that no one has hit this bug yet... but it seems like there was a typo on the name of the OP Deadline plugin when submitting jobs to it.


AYON: Fix version attributes update #5472

Fixed updates of attribs in AYON mode.


Merged pull requests

Added missing defaults for import_loader #5447
Bug: Local settings don't open on 3.14.7 #5220

Before posting a new ticket, have you looked through the documentation to find an answer?

Yes I have

Not yet

Author of the bug

@FadyFS

Version

3.15.11-nightly.3

What platform you are running OpenPype on?

Linux / Centos

Current Behavior:

the previous behavior (bug) : image

Expected Behavior:

image

What type of bug is it ?

Happened only once in a particular configuration

Which project / workfile / asset / ...

open settings with 3.14.7

Steps To Reproduce:

  1. Run openpype on the 3.15.11-nightly.3 version
  2. Open settings in 3.14.7 version

Relevant log output:

No response

Additional context:

No response


Tests: Add automated targets for tests #5443

Without it plugins with 'automated' targets won't be triggered (eg CloseAE etc.)


3.16.3

Full Changelog

🆕 New features

AYON: 3rd party addon usage #5300

Prepare OpenPype code to be able use ayon-third-party addon which supply ffmpeg and OpenImageIO executables. Because they both can support to define custom arguments (more than one) a new functions were needed to supply.New functions are get_ffmpeg_tool_args and get_oiio_tool_args. They work similar to previous but instead of string are returning list of strings. All places using previous functions get_ffmpeg_tool_path and get_oiio_tool_path are now using new ones. They should be backwards compatible and even with addon if returns single argument.


AYON: Addon settings in OpenPype #5347

Moved settings addons to OpenPype server addon. Modified create package to create zip files for server for each settings addon and for openpype addon.


AYON: Add folder to template data #5417

Added folder to template data, so {folder[name]} can be used in templates.


Option to start versioning from 0 #5262

This PR adds a settings option to start all versioning from 0.This PR will replace #4455.


Ayon: deadline implementation #5321

Quick implementation of deadline in Ayon. New Ayon plugin added for Deadline repository


AYON: Remove AYON launch logic from OpenPype #5348

Removed AYON launch logic from OpenPype. The logic is outdated at this moment and is replaced by ayon-launcher.


🚀 Enhancements

Bug: Error on multiple instance rig with maya #5310

I change endswith method by startswith method because the set are automacaly name out_SET, out_SET1, out_SET2 ...


Applications: Use prelaunch hooks to extract environments #5387

Environment variable preparation is based on prelaunch hooks. This should allow to pass OCIO environment variables to farm jobs.


Applications: Launch hooks cleanup #5395

Use set instead of list for filtering attributes in launch hooks. Celaction hooks dir does not contain __init__.py. Celaction prelaunch hook is reusing CELACTION_ROOT_DIR. Launch hooks are using full import from openpype.lib.applications.


Applications: Environment variables order #5245

Changed order of set environment variables. First are set context environment variables and then project environment overrides. Also asset and task environemnt variables are optional.


Autosave preferences can be read after Nuke opens the script #5295

Looks like I need to open the script in Nuke to be able to correctly load the autosave preferences.This PR reads the Nuke script in context, and offers owerwriting the current script with autosaved one if autosave exists.


Resolve: Update with compatible resolve version and latest docs #5317

Missing information about compatible Resolve version and latest docs from https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/resolve


Chore: Remove deprecated functions #5323

Removed functions/classes that are deprecated and marked to be removed.


Nuke Render and Prerender nodes Process Order - OP-3555 #5332

This PR exposes control over the order of processing of the instances, by sorting the instances created. The sorting happens on the render_order and subset name. If the knob render_order is found on the instance, we'll sort by that first before sorting by subset name.render_order instances are processed before nodes without render_order. This could be extended in the future by querying other knobs but I dont know of a usecase for this.Hardcoded the creator order attribute of the prerender class to be before the render. Could be exposed to the user/studio but dont know of a use case for this.


Unreal: Python Environment Improvements #5344

Automatically set UE_PYTHONPATH as PYTHONPATH when launching Unreal.


Unreal: Custom location for Unreal Ayon Plugin #5346

Added a new environment variable AYON_BUILT_UNREAL_PLUGIN to set an already existing and built Ayon Plugin for Unreal.


Unreal: Better handling of Exceptions in UE Worker threads #5349

Implemented a new UEWorker base class to handle exception during the execution of UE Workers.


Houdini: Add farm toggle on creation menu #5350

Deadline Farm publishing and Rendering for Houdini was possible with this PR #4825 farm publishing is enabled by default some ROP nodes which may surprise new users (like me).I think adding a toggle (on by default) on creation UI is better so that users will be aware that there's a farm option for this publish instance.ROPs Modified :

  • Mantra ROP
  • Karma ROP
  • Arnold ROP
  • Redshift ROP
  • Vray ROP

Ftrack: Sync to avalon settings #5353

Added roles settings for sync to avalon action.


Chore: Schemas inside OpenPype #5354

Moved/copied schemas from repository root inside openpype/pipeline.


AYON: Addons creation enhancements #5356

Enhanced AYON addons creation. Fix issue with Pattern typehint. Zip filenames contain version. OpenPype package is skipping modules that are already separated in AYON. Updated settings of addons.


AYON: Update staging icons #5372

Updated staging icons for staging mode.


Enhancement: Houdini Update pointcache labels #5373

To me it's logical to find pointcaches types listed one after another, but they were named differentlySo, I made this PR to update their labels


nuke: split write node product instance features #5389

Improving Write node product instances by allowing precise activation of specific features.


Max: Use the empty modifiers in container to store AYON Parameter #5396

Instead of adding AYON/OP Parameter along with other attributes inside the container, empty modifiers would be created to store AYON/OP custom attributes


AfterEffects: Removed unused imports #5397

Removed unused import from extract local render plugin file.


Nuke: adding BBox knob type to settings #5405

Nuke knob types in settings having new Box type for reposition nodes like Crop or Reformat.


SyncServer: Existence of module is optional #5413

Existence of SyncServer module is optional and not required. Added sync_server module back to ignored modules when openpype addon is created for AYON. Command syncserver is marked as deprecated and redirected to sync server cli.


Webpublisher: Self contain test publish logic #5414

Moved test logic of publishing to webpublisher. Simplified remote_publish to remove webpublisher specific logic.


Webpublisher: Cleanup targets #5418

Removed remote target from webpublisher and replaced it with 2 targets webpublisher and automated.


nuke: update server addon settings with box #5419

updtaing nuke ayon server settings for Box option in knob types.


🐛 Bug fixes

Maya: fix validate frame range on review attached to other instances #5296

Fixes situation where frame range validator can't be turned off on models if they are attached to reviewable camera in Maya.


Maya: Apply project settings to creators #5303

Project settings were not applied to the creators.


Maya: Validate Model Content #5336

assemblies in cmds.ls does not seem to work;


from maya import cmds


content_instance = ['|group2|pSphere1_GEO', '|group2|pSphere1_GEO|pSphere1_GEOShape', '|group1|pSphere1_GEO', '|group1|pSphere1_GEO|pSphere1_GEOShape']
assemblies = cmds.ls(content_instance, assemblies=True, long=True)
print(assemblies)

Fixing with string splitting instead.


Bugfix: Maya update defaults variable #5368

So, something was forgotten while moving out from LegacyCreator to NewCreator``LegacyCreator used defaults to list suggested subset names which was changed into default_variants in the the NewCreatorand setting defaults to any values has no effect!This update affects:

  • Model
  • Set Dress

Chore: Python 2 support fix #5375

Fix Python 2 support by adding click into python 2 dependencies and removing f-string from maya.


Maya: do not create top level group on reference #5402

This PR allows to not wrapping loaded referenced assets in top level group either explicitly for artist or by configuration in Settings.Artists can control group creation in ReferenceLoader options.Default no group creation could be set by emptying Group Name in project_settings/maya/load/reference_loader


Settings: Houdini & Maya create plugin settings #5436

Fixes related to Maya and Houdini settings. Renamed defaults to default_variants in plugin settings to match attribute name on create plugin in both OpenPype and AYON settings. Fixed Houdini AYON settings where were missing settings for defautlt varaints and fixed Maya AYON settings where default factory had wrong assignment.


Maya: Hide CreateAnimation #5297

When converting animation family or loading a rig family, need to include the animation creator but hide it in creator context.


Nuke Anamorphic slate - Read pixel aspect from input #5304

When asset pixel aspect differs from rendered pixel aspect, Nuke slate pixel aspect is not longer taken from asset, but is readed via ffprobe.


Nuke - Allow ExtractReviewDataMov with no timecode knob #5305

ExtractReviewDataMov allows to specify file type. Trying to write some other extension than mov fails on generate_mov assuming that mov64_write_timecode knob exists.


Nuke: removing settings schema with defaults for OpenPype #5306

continuation of https://github.com/ynput/OpenPype/pull/5275


Bugfix: Dependency without 'inputLinks' not downloaded #5337

Remove condition that avoids downloading dependency without inputLinks.


Bugfix: Houdini Creator use selection even if it was toggled off #5359

When creating many product types (families) one after another without refreshing the creator window manually if you toggled Use selection once, all the later product types will use selection even if it was toggled offHere's Before it will keep use selection even if it was toggled off, unless you refresh window manuallyhttps://github.com/ynput/OpenPype/assets/20871534/8b890122-5b53-4c6b-897d-6a2f3aa3388aHere's After it works as expectedhttps://github.com/ynput/OpenPype/assets/20871534/6b1db990-de1b-428e-8828-04ab59a44e28


Houdini: Correct camera selection for karma renderer when using selected node #5360

When user creates the karma rop with selected camera by use selection, it will give the error message of "no render camera found in selection".This PR is to fix the bug of creating karma rop when using selected camera node in Houdini


AYON: Environment variables and functions #5361

Prepare code for ayon-launcher compatibility. Fix ayon launcher subprocess calls, added more checks for AYON_SERVER_ENABLED, use ayon launcher suitable environment variables in AYON mode and changed outputs of some functions. Replaced usages of OPENPYPE_REPOS_ROOT environment variable with PACKAGE_DIR variable -> correct paths are used.


Nuke: farm rendering of prerender ignore roots in nuke #5366

prerender family was using wrong subset, same as render which should be different.


Bugfix: Houdini update defaults variable #5367

So, something was forgotten while moving out from LegacyCreator to NewCreator``LegacyCreator used defaults to list suggested subset names which was changed into default_variants in the the NewCreatorand setting defaults to any values has no effect!This update affects:

  • Arnold ASS
  • Arnold ROP
  • Karma ROP
  • Mantra ROP
  • Redshift ROP
  • VRay ROP

Publisher: Fix create/publish animation #5369

Use geometry movement instead of changing min/max width.


Unreal: Move unreal splash screen to unreal #5370

Moved splash screen code to unreal integration and removed import from Igniter.


Nuke: returned not cleaning of renders folder on the farm #5374

Previous PR enabled explicit cleanup of renders folder after farm publishing. This is not matching customer's workflows. Customer wants to have access to files in renders folder and potentially redo some frames for long frame sequences.This PR extends logic of marking rendered files for deletion only if instance doesn't have stagingDir_persistent.For backwards compatibility all Nuke instances have stagingDir_persistent set to True, eg. renders folder won't be cleaned after farm publish.


Nuke: loading sequences is working #5376

Loading image sequences was broken after the latest release, version 3.16. However, I am pleased to inform you that it is now functioning as expected.


AYON: Fix settings conversion for ayon addons #5377

AYON addon settings are available in system settings and does not have available the same values in "modules" subkey.


Nuke: OCIO env var workflow #5379

The OCIO environment variable needs to be consistently handled across all platforms. Nuke resolves the custom OCIO config path differently depending on the platform, so we included the ocio config path in the workfile with a partial replacement using an environment variable. Additionally, for Windows sessions, we replaced backward slashes with a TCL expression.


Unreal: Fix Unreal build script #5381

Define 'AYON_UNREAL_ROOT' environment variable in unreal addon.


3dsMax: Use relative path to MAX_HOST_DIR #5382

Use MAX_HOST_DIR to calculate startup script path instead of use relative path to OPENPYPE_ROOT environment variable.


Bugfix: Houdini abc validator error message #5386

When ABC path validator fails, it prints node objects not node paths or namesThis bug happened because of updating get_invalid method to return nodes instead of node pathsBeforeAfter


Nuke: node name influence product (subset) name #5392

Nuke now allows users to duplicate publishing instances, making the workflow easier. By duplicating a node and changing its name, users can set the product (subset) name in the publishing context.Users now have the ability to change the variant name in Publisher, which will automatically rename the associated instance node.


Houdini: delete redundant bgeo sop validator #5394

I found out that this Validate BGEO SOP Path validator is redundant, it catches two cases that are already implemented in "Validate Output Node". "Validate Output Node" works with bgeo as well as abc because "pointcache" is listed in its families


Nuke: workfile is not reopening after change of context #5399

Nuke no longer reopens the latest workfile when the context is changed to a different task using the Workfile tool. The issue also affected the Script Clean (from Nuke File menu) and Close feature, but it has now been fixed.


Bugfix: houdini hard coded project settings #5400

I made this PR to solve the issue with hard-coded settings in houdini


AYON: 3dsMax settings #5401

Keep adsk_3dsmax group in applications settings.


Bugfix: update defaults to default_variants in maya and houdini OP DCC settings #5407

On moving out to new creator in Maya and Houdini updating settings was missed.


Applications: Attributes creation #5408

Applications addon does not cause infinite server restart loop.


Max: fix the bug of handling Object deletion in OP Parameter #5410

If the object is added to the OP parameter and user delete it in the scene thereafter, it will error out the container with OP attributes. This PR resolves the bug.This PR also fixes the bug of not adding the attribute into OP parameter correctly when the user enables "use selections" to link the object into the OP parameter.


Colorspace: including environments from launcher process #5411

Fixed bug in GitHub PR where the OCIO config template was not properly formatting environment variables from System Settings general/environment.


Nuke: workfile template fixes #5428

Some bunch of small bugs needed to be fixed


Houdini, Max: Fix missed function interface change #5430

This PR https://github.com/ynput/OpenPype/pull/5321/files from @kalisp missed updating the add_render_job_env_var in Houdini and Max as they are passing an extra arg:

TypeError: add_render_job_env_var() takes 1 positional argument but 2 were given

Scene Inventory: Fix issue with 'sync_server' #5431

Fix accesss to sync_server attribute in scene inventory.


Unpack project: Fix import issue #5433

Added load_json_file, replace_project_documents and store_project_documents to mongo init.


Chore: Versions post fixes #5441

Fixed issues caused by my fault. Filled right version value to anatomy data.


📃 Testing

Tests: Copy file_handler as it will be removed by purging ayon code #5357

Ayon code will get purged in the future from this repo/addon, therefore all ayon_common will be gone. file_handler gets internalized to tests as it is not used anywhere else.


3.16.2

Full Changelog

🆕 New features

Fusion - Set selected tool to active #5327

When you run the action to select a node, this PR makes the node-flow show the selected node + you'll see the nodes controls in the inspector.


🚀 Enhancements

Maya: All base create plugins #5326

Prepared base classes for each creator type in Maya. Extended MayaCreatorBase to have default implementations of common logic with instances which is used in each type of plugin.


Windows: Support long paths on zip updates. #5265

Support long paths for version extract on Windows.Use case is when having long paths in for example an addon. You can install to the C drive but because the zip files are extracted in the local users folder, it'll add additional sub directories to the paths and quickly get too long paths for Windows to handle the zip updates.


Blender: Added setting to set resolution and start/end frames at startup #5338

This PR adds set_resolution_startupand set_frames_startup settings. They automatically set respectively the resolution and start/end frames and FPS in Blender when opening a file or creating a new one.


Blender: Support for ExtractBurnin #5339

This PR adds support for ExtractBurnin for Blender, when publishing a Review.


Blender: Extract Camera as Alembic #5343

Added support to extract Alembic Cameras in Blender.


🐛 Bug fixes

Maya: Validate Instance In Context #5335

Missing new publisher error so the repair action shows up.


Settings: Fix default settings #5311

Fixed defautl settings for shotgrid. Renamed FarmRootEnumEntity to DynamicEnumEntity and removed doubled ABC metaclass definition (all settings entities have abstract metaclass).


Deadline: missing context argument #5312

Updated function arguments


Qt UI: Multiselection combobox PySide6 compatibility #5314
  • The check states are replaced with the values for PySide6
  • QtCore.Qt.ItemIsUserTristate is used instead of QtCore.Qt.ItemIsTristate to avoid crashes on PySide6

Docker: handle openssl 1.1.1 for centos 7 docker build #5319

Move to python 3.9 has added need to use openssl 1.1.x - but it is not by default available on centos 7 image. This is fixing it.


houdini: fix typo in redshift proxy #5320

I believe there's a typo in create_redshift_proxy.py ( extra ` ) in filename, and I made this PR to suggest a fix


Houdini: fix wrong creator identifier in pointCache workflow #5324

FIxing a bug in publishing alembics, were invalid creator identifier caused missing family association.


Fix colorspace compatibility check #5334

for some reason a user may have PyOpenColorIO installed to his machine, _in my case it came with renderman._it can trick the compatibility check as import PyOpenColorIO won't raise an error however it may be an old version _like my case_Beforecompatibility check was true and It used wrapper directly After Fix It will use wrapper via subprocess instead


Merged pull requests

Remove forgotten dev logging #5315

3.16.1

Full Changelog

🆕 New features

Royal Render: Maya and Nuke support #5191

Basic working implementation of Royal Render support in Maya.It expects New publisher implemented in Maya.


Blender: Blend File Family #4321

Implementation of the Blend File family analogue to the Maya Scene one.

___
Houdini: simple bgeo publishing #4588

Support for simple publishing of bgeo files.

This is adding basic support for bgeo publishing in Houdini. It will allow publishing bgeo in all supported formats (selectable in the creator options). If selected node has output on sop level, it will be used automatically as path in file node.


🚀 Enhancements

General: delivery action add renamed frame number in Loader #5024

Frame Offset options for delivery in Openpype loader


Enhancement/houdini add path action for abc validator #5237

Add a default path attribute Action.it's a helper action more than a repair action, which used to add a default single value.


Nuke: auto apply all settings after template build #5277

Adding auto run of Apply All Settings after template is builder is finishing its process. This will apply Frame-range, Image size, Colorspace found in context of a task shot.


Harmony:Removed loader settings for Harmony #5289

It shouldn't be configurable, it is internal logic. By adding additional extension it wouldn't start to work magically.


🐛 Bug fixes

AYON: Make appdirs case sensitive #5298

Appdirs for AYON are case sensitive for linux and mac so we needed to change them to match ayon launcher. Changed 'ayon' to 'AYON' and 'ynput' to 'Ynput'.


Traypublisher: Fix plugin order #5299

Frame range collector for traypublisher was moved to traypublisher plugins and changed order to make sure assetEntity is filled in instance.data.


Deadline: removing OPENPYPE_VERSION from some host submitters #5302

Removing deprecated method of adding OPENPYPE_VERSION to job environment. It was leftover and other hosts have already been cleared.


AYON: Fix args for workfile conversion util #5308

Workfile update conversion util function have right expected arguments.


🔀 Refactored code

Maya: Refactor imports to `lib.get_reference_node` since the other function… #5258

Refactor imports to lib.get_reference_node since the other function is deprecated.


3.16.0

Full Changelog

🆕 New features

General: Reduce usage of legacy io #4723

Replace usages of legacy_io with getter methods or reuse already available information. Create plugins using CreateContext are using context from CreateContext object. Loaders are usign getter function from context tools. Publish plugin are using information instance.data or context.data. In some cases were pieces of code refactored a little e.g. fps getter in maya.


Documentation: API docs reborn - yet again #4419

Feature

Add functional base for API Documentation using Sphinx and AutoAPI.

After unsuccessful #2512, #834 and #210 this is yet another try. But this time without ambition to solve the whole issue. This is making Shinx script to work and nothing else. Any changes and improvements in API docs should be made in subsequent PRs.

How to use it

You can run:

cd .\docs
make.bat html

or

cd ./docs
make html

This will go over our code and generate .rst files in /docs/source/autoapi and from those it will generate full html documentation in /docs/build/html.

During the build you'll see tons of red errors that are pointing to our issues:

  1. Wrong imports Invalid import are usually wrong relative imports (too deep) or circular imports.

  2. Invalid doc-strings Doc-strings to be processed into documentation needs to follow some syntax - this can be checked by running pydocstyle that is already included with OpenPype

  3. Invalid markdown/rst files md/rst files can be included inside rst files using .. include:: directive. But they have to be properly formatted.

Editing rst templates

Everything starts with /docs/source/index.rst - this file should be properly edited, Right now it just includes readme.rst that in turn include and parse main README.md. This is entrypoint to API documentation. All templates generated by AutoAPI are in /docs/source/autoapi. They should be eventually commited to repository and edited too.

Steps for enhancing API documentation

  1. Run /docs/make.bat html
  2. Read the red errors/warnings - fix it in the code
  3. Run /docs/make.bat html again until there are not red lines
  4. Edit rst files and add some meaningfull content there

Note

This can (should) be merged as is without doc-string fixes in the code or changes in templates. All additional improvements on API documentation should be made in new PRs.

Warning

You need to add new dependencies to use it. Run create_venv.

Connected to #2490


Global: custom location for OP local versions #4673

This provides configurable location to unzip Openpype version zips. By default, it was hardcoded to artist's app data folder, which might be problematic/slow with roaming profiles.Location must be accessible by user running OP Tray with write permissions (so Program Files might be problematic)


AYON: Update settings conversion #4837

Updated conversion script of AYON settings to v3 settings. PR is related to changes in addons repository https://github.com/ynput/ayon-addons/pull/6 . Changed how the conversion happens -> conversion output does not start with openpype defaults but as empty dictionary.


AYON: Implement integrate links publish plugin #4842

Implemented entity links get/create functions. Added new integrator which replaces v3 integrator for links.


General: Version attributes integration #4991

Implemented unified integrate plugin to update version attributes after all integrations for AYON. The goal is to be able update attribute values in a unified way to a version when all addon integrators are done, so e.g. ftrack can add ftrack id to matching version in AYON server etc.The can be stored under "versionAttributes" key.


AYON: Staging versions can be used #4992

Added ability to use staging versions in AYON mode.


AYON: Preparation for products #5038

Prepare ayon settings conversion script for product settings conversion.


Loader: Hide inactive versions in UI #5101

Added support for active argument to hide versions with active set to False in Loader UI when in AYON mode.


General: CLI addon command #5109

Added addon alias for module in OpenPype cli commands.


AYON: OpenPype as server addon #5199

OpenPype repository can be converted to AYON addon for distribution. Addon has defined dependencies that are required to use it and are not in base ayon-launcher (desktop application).


General: Runtime dependencies #5206

Defined runtime dependencies in pyproject toml. Moved python ocio and otio modules there.


AYON: Bundle distribution #5209

Since AYON server 0.3.0 are addon versions defined by bundles which affects how addons, dependency packages and installers are handled. Only source of truth, about any version of anything that should be used, is server bundle.


Feature/blender handle q application #5264

This edit is to change the way the QApplication is run for Blender. It calls in the singleton (QApplication) during the register. This is made so that other Qt applications and addons are able to run on Blender. In its current implementation, if a QApplication is already running, all functionality of OpenPype becomes unavailable.


🚀 Enhancements

General: Connect to AYON server (base) #3924

Initial implementation of being able use AYON server in current OpenPype client. Added ability to connect to AYON server and use base queries.

AYON mode has it's own executable (and start script). To start in AYON mode just replace start.py with ayon_start.py (added tray start script to tools). Added constant AYON_SERVER_ENABLED to openpype/__init__.py to know if ayon mode is enabled. In that case Mongo is not used at all and any attempts will cause crashes.I had to modify ~/openpype/client content to be able do this switch. Mongo implementation was moved to mongo subfolder and use "star imports" in files from where current imports are used. Logic of any tool or query in code was not changed at all. Since functions were based on mongo queries they don't use full potential of AYON server abilities.ATM implementation has login UI, distribution of files from server and replacement of mongo queries. For queries is used ayon_api module. Which is in live development so the versions may change from day to day.


Enhancement kitsu note with exceptions #4537

Adding a setting to choose some exceptions to IntegrateKitsuNote task status changes.


General: Environment variable for default OCIO configs #4670

Define environment variable which lead to root of builtin ocio configs to be able change the root without changing settings. For the path in settings was used "{OPENPYPE_ROOT}/vendor/bin/ocioconfig/OpenColorIOConfig" which disallow to change the root somewhere else. That will be needed in AYON where configs won't be part of desktop application but downloaded from server.


AYON: Editorial hierarchy creation #4699

Implemented extract hierarchy to AYON plugin which created entities in AYON using ayon api.


AYON: Vendorize ayon api #4753

Vendorize ayon api into openpype vendor directory. The reason is that ayon-python-api is in live development and will fix/add features often in next few weeks/months, and because update of dependency requires new release -> new build, we want to avoid the need of doing that as it would affect OpenPype development.


General: Update PySide 6 for MacOs #4764

New version of PySide6 does not have issues with settings UI. It is still breaking UI stylesheets so it is not changed for other plaforms but it is enhancement from previous state.


General: Removed unused cli commands #4902

Removed texturecopy and launch cli commands from cli commands.


AYON: Linux & MacOS launch script #4970

Added shell script to launch tray in AYON mode.


General: Qt scale enhancement #5059

Set 'QT_SCALE_FACTOR_ROUNDING_POLICY' scale factor rounding policy of QApplication to PassThrough so the scaling can be 'float' number and not just 'int' (150% -> 1.5 scale).


CI: WPS linting instead of Hound (rebase) 2 #5115

Because Hound currently used to lint the code on GH ships with really old flake8 support, it fails miserably on any newer Python syntax. This PR is adding WPS linter to GitHub workflows that should step in.


Max: OP parameters only displays what is attached to the container #5229

The OP parameter in 3dsmax only displays what is currently attached to the container while deleting while you can see the items which is not added when you are adding to the container.


Testing: improving logging during testing #5271

Unit testing logging was crashing on more then one nested layers of inherited loggers.


Nuke: removing deprecated settings in baking #5275

Removing deprecated settings for baking with reformat. This option was only for single reformat node and it had been substituted with multiple reposition nodes.


🐛 Bug fixes

AYON: General fixes and updates #4975

Few smaller fixes related to AYON connection. Some of fixes were taken from this PR.


Start script: Change returncode on validate or list versions #4515

Change exit code from 1 to 0 when versions are printed or when version is validated.

Return code 1 is indicating error but there didn't happen any error.


AYON: Change login UI works #4754

Fixed change of login UI. Logic change UI did show up, new login was successful, but after restart was used the previous login. This change fix the issue.


AYON: General issues #4763

Vendorized ayon_api from PR broke OpenPype launch, because ayon_api is not available. Moved ayon_api from ayon specific subforlder to common python vendor in OpenPype, and removed login in ayon start script (which was invalid anyway). Also made fixed compatibility with PySide6 by using qtpy instead of Qt and changing code which is not PySide6 compatible.


AYON: Small fixes #4841

Bugsfixes and enhancements related to AYON logic. Define BUILTIN_OCIO_ROOT environment variable so OCIO configs are working. Use constants from ayon api instead of hardcoding them in codebase. Change process name from "openpype" to "ayon". Don't execute login dialog when application is not yet running but use open method instead. Fixed missing modules settings which were not taken from openpype defaults. Updated ayon api to 0.1.17.


Bugfix - Update gazu to 0.9.3 #4845

This updates Gazu to 0.9.3 to make sure Gazu works with Kitsu and Zou 0.16.x+


Igniter: fix error reports in silent mode #4909

Some errors in silent mode commands in Igniter were suppressed and not visible for example in Deadline log.


General: Remove ayon api from poetry lock #4964

Remove AYON python api from pyproject.toml and poetry.lock again.


Ftrack: Fix AYON settings conversion #4967

Fix conversion of ftrack settings in AYON mode.


AYON: ISO date format conversion issues #4981

Function datetime.fromisoformat was replaced with arrow.get to be used instead.


AYON: Missing files on representations #4989

Fix integration of files into representation in server database.


General: Fix Python 2 vendor for arrow #4993

Moved remaining dependencies for arrow from ftrack to python 2 vendor.


General: Fix new load plugins for next minor relase #5000

Fix access to fname attribute which is not available on load plugin anymore.


General: Fix mongo secure connection #5031

Fix ssl and tls keys checks in mongo uri query string.


AYON: Fix site sync settings #5069

Fixed settings for AYON variant of sync server.


General: Replace deprecated keyword argument in PyMongo #5080

Use argument tlsCAFile instead of ssl_ca_certs to avoid deprecation warnings.


Igniter: QApplication is created #5081

Function _get_qt_app actually creates new QApplication if was not created yet.


General: Lower unidecode version #5090

Use older version of Unidecode module to support Python 2.


General: Lower cryptography to 39.0.0 #5099

Lower cryptography to 39.0.0 to avoid breaking of DCCs like Maya and Nuke.


AYON: Global environments key fix #5118

Seems that when converting ayon settings to OP settings the environments setting is put under the environments key in general however when populating the environment the environment key gets picked up, which does not contain the environment variables from the core/environments setting


Add collector to tray publisher for getting frame range data #5152

Add collector to tray publisher to get frame range data. User can choose to enable this collector if they need this in the publisher.Resolve #5136


Unreal: get current project settings not using unreal project name #5170

There was a bug where Unreal project name was used to query project settings. But Unreal project name can differ from the "real" one because of naming convention rules set by Unreal. This is fixing it by asking for current project settings.


Substance Painter: Fix Collect Texture Set Images unable to copy.deepcopy due to QMenu #5238

Fix copy.deepcopy of instance.data.


Ayon: server returns different key #5251

Package returned from server has filename instead of name.


Substance Painter: Fix default color management settings #5259

The default settings for color management for Substance Painter were invalid, it was set to override the global config by default but specified no valid config paths of its own - and thus errored that the paths were not correct.This sets the defaults correctly to match other hosts.I quickly checked - this seems to be the only host with the wrong default settings


Nuke: fixing container data if windows path in value #5267

Windows path in container data are reformatted. Previously it was reported that Nuke was rising utf8 0xc0 error if backward slashes were in data values.


Houdini: fix typo error in collect arnold rop #5281

Fixing a typo error in collect_arnold_rop.pyReference: #5280


Slack - enhanced logging and protection against failure #5287

Covered issues found in production on customer site. SlackAPI exception doesn't need to have 'error', covered uncaught exception.


Maya: Removed unnecessary import of pyblish.cli #5292

This import resulted in adding additional logging handler which lead to duplication of logs in hosts with plugins containing is_in_tests method. Import is unnecessary for testing functionality.


🔀 Refactored code

Loader: Remove `context` argument from Loader.__init__() #4602

Remove the previously required context argument.


Global: Remove legacy integrator #4786

Remove the legacy integrator.


📃 Documentation

Next Minor Release #5291

Merged pull requests

Maya: Refactor to new publisher #4388

Refactor Maya to use the new publisher with new creators.

- [x] Legacy instance can be converted in UI using `SubsetConvertorPlugin` - [x] Fix support for old style "render" and "vrayscene" instance to the new per layer format. - [x] Context data is stored with scene - [x] Workfile instance converted to AutoCreator - [x] Converted Creator classes - [x] Create animation - [x] Create ass - [x] Create assembly - [x] Create camera - [x] Create layout - [x] Create look - [x] Create mayascene - [x] Create model - [x] Create multiverse look - [x] Create multiverse usd - [x] Create multiverse usd comp - [x] Create multiverse usd over - [x] Create pointcache - [x] Create proxy abc - [x] Create redshift proxy - [x] Create render - [x] Create rendersetup - [x] Create review - [x] Create rig - [x] Create setdress - [x] Create unreal skeletalmesh - [x] Create unreal staticmesh - [x] Create vrayproxy - [x] Create vrayscene - [x] Create xgen - [x] Create yeti cache - [x] Create yeti rig - [ ] Tested new Creator publishes - [x] Publish animation - [x] Publish ass - [x] Publish assembly - [x] Publish camera - [x] Publish layout - [x] Publish look - [x] Publish mayascene - [x] Publish model - [ ] Publish multiverse look - [ ] Publish multiverse usd - [ ] Publish multiverse usd comp - [ ] Publish multiverse usd over - [x] Publish pointcache - [x] Publish proxy abc - [x] Publish redshift proxy - [x] Publish render - [x] Publish rendersetup - [x] Publish review - [x] Publish rig - [x] Publish setdress - [x] Publish unreal skeletalmesh - [x] Publish unreal staticmesh - [x] Publish vrayproxy - [x] Publish vrayscene - [x] Publish xgen - [x] Publish yeti cache - [x] Publish yeti rig - [x] Publish workfile - [x] Rig loader correctly generates a new style animation creator instance - [ ] Validations / Error messages for common validation failures look nice and usable as a report. - [ ] Make Create Animation hidden to the user (should not create manually?) - [x] Correctly detect difference between **'creator_attributes'** and **'instance_data'** since both are "flattened" to the top node.
Start script: Fix possible issues with destination drive path #4478

Drive paths for windows are fixing possibly missing slash at the end of destination path.

Windows subst command require to have destination path with slash if it's a drive (it should be G:\ not G:).


Global: Move PyOpenColorIO to vendor/python #4946

So that DCCs don't conflict with their own.

See https://github.com/ynput/OpenPype/pull/4267#issuecomment-1537153263 for the issue with Gaffer.

I'm not sure if this is the correct approach, but I assume PySide/Shiboken is under vendor/python for this reason as well...


RuntimeError with Click on deadline publish #5065

I changed Click to version 8.0 instead of 7.1.2 to solve this error:

2023-05-30 16:16:51:  0: STDOUT: Traceback (most recent call last):
2023-05-30 16:16:51:  0: STDOUT:   File "start.py", line 1126, in boot
2023-05-30 16:16:51:  0: STDOUT:   File "/prod/softprod/apps/openpype/LINUX/3.15/dependencies/click/core.py", line 829, in __call__
2023-05-30 16:16:51:  0: STDOUT:     return self.main(*args, **kwargs)
2023-05-30 16:16:51:  0: STDOUT:   File "/prod/softprod/apps/openpype/LINUX/3.15/dependencies/click/core.py", line 760, in main
2023-05-30 16:16:51:  0: STDOUT:     _verify_python3_env()
2023-05-30 16:16:51:  0: STDOUT:   File "/prod/softprod/apps/openpype/LINUX/3.15/dependencies/click/_unicodefun.py", line 126, in _verify_python3_env
2023-05-30 16:16:51:  0: STDOUT:     raise RuntimeError(
2023-05-30 16:16:51:  0: STDOUT: RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Consult https://click.palletsprojects.com/python3/ for mitigation steps.

3.15.12

Full Changelog

🆕 New features

Tray Publisher: User can set colorspace per instance explicitly #4901

With this feature a user can set/override the colorspace for the representations of an instance explicitly instead of relying on the File Rules from project settings or alike. This way you can ingest any file and explicitly say "this file is colorspace X".


Review Family in Max #5001

Review Feature by creating preview animation in 3dsmax(The code is still cleaning up so there is going to be some updates until it is ready for review)


AfterEffects: support for workfile template builder #5163

This PR add functionality of templated workfile builder. It allows someone to prepare AE workfile with placeholders as for automatically loading particular representation of particular subset of particular asset from context where workfile is opened.Selection from multiple prepared workfiles is provided with usage of templates, specific type of tasks could use particular workfile template etc.Artists then can build workfile from template when opening new workfile.


CreatePlugin: Get next version helper #5242

Implemented helper functions to get next available versions for create instances.


🚀 Enhancements

Maya: Improve Templates #4854

Use library method for fetching reference node and support parent in hierarchy.


Bug: Maya - xgen sidecar files arent moved when saving workfile as an new asset workfile changing context - OP-6222 #5215

This PR manages the Xgen files when switching context in the Workfiles app.


node references to check for duplicates in Max #5192

No duplicates for node references in Max when users trying to select nodes before publishing


Tweak profiles logging to debug level #5194

Tweak profiles logging to debug level since they aren't artist facing logs.


Enhancement: Reduce more visual clutter for artists in new publisher reports #5208

Got this from one of our artists' reports - figured some of these logs were definitely not for the artist, reduced those logs to debug level.


Cosmetics: Tweak pyblish repair actions (icon, logs, docstring) #5213
  • Add icon to RepairContextAction
  • logs to debug level
  • also add attempt repair for RepairAction for consistency
  • fix RepairContextAction docstring to mention correct argument name

Additional info

We should not forget to remove this "deprecated" actions.py file in 3.16 (next-minor)

Testing notes:

  1. Run some fabulous repairs!

Maya: fix save file prompt on launch last workfile with color management enabled + restructure `set_colorspace` #5225
  • Only set configFilePath when OCIO env var is not set since it doesn't do anything if OCIO var is set anyway.
  • Set the Maya 2022+ default OCIO path using the resources path instead of "" to avoid Maya Save File on new file after launch
  • Bugfix: This is what fixes the Save prompt on open last workfile feature with Global color management enabled
  • Move all code related to applying the maya settings together after querying the settings
  • Swap around the if use_workfile_settings since the check was reversed
  • Use get_current_project_name() instead of environment vars

Enhancement: More descriptive error messages for Loaders #5227

Tweak raised errors and error messages for loader errors.


Houdini: add select invalid action for ValidateSopOutputNode #5231

This PR adds SelectROPAction action to houdini\api\action.pyand it's used in Validate Output Node``SelectROPAction is used to select the associated ROPs with the errored instances.


Remove new lines from the delivery template string #5235

If the delivery template has a new line symbol at the end, say it was copied from the text editor, the delivery process will fail with OSError due to incorrect destination path. To avoid that I added rstrip() to the delivery_path processing.


Houdini: better selection on pointcache creation #5250

Houdini allows ObjNode path as sop_path in the ROP unlike OP/ Ayon require sop_path to be set to a sop node path explicitly In this code, better selection is used to filter out invalid selections from OP/ Ayon point of viewValid selections are

  • SopNode that has parent of type geo or subnet
  • ObjNode of type geo that has
  • SopNode of type output
  • SopNode with render flag on (if no Sopnode of type output)this effectively filter
  • empty ObjNode
  • ObjNode(s) of other types like cam and dopnet
  • SopNode(s) that thier parents of other types like cam and sop solver

Update scene inventory even if any errors occurred during update #5252

When selecting many items in the scene inventory to update versions and one of the items would error out the updating stops. However, before this PR the scene inventory would also NOT refresh making you think it did nothing.Also implemented as method to allow some code deduplication.


🐛 Bug fixes

Maya: Convert frame values to integers #5188

Convert frame values to integers.


Maya: fix the register_event_callback correctly collecting workfile save after #5214

fixing the bug of register_event_callback not being able to collect action of "workfile_save_after" for lock file action


Maya: aligning default settings to distributed aces 1.2 config #5233

Maya colorspace setttings defaults are set the way they align our distributed ACES 1.2 config file set in global colorspace configs.


RepairAction and SelectInvalidAction filter instances failed on the exact plugin #5240

RepairAction and SelectInvalidAction actually filter to instances that failed on the exact plugin - not on "any failure"


Maya: Bugfix look update nodes by id with non-unique shape names (query with `fullPath`) #5257

Fixes a bug where updating attributes on nodes with assigned shader if shape name existed more than once in the scene due to cmds.listRelatives call not being done with the fullPath=True flag.Original error:

# Traceback (most recent call last):
#   File "E:\openpype\OpenPype\openpype\tools\sceneinventory\view.py", line 264, in <lambda>
#     lambda: self._show_version_dialog(items))
#   File "E:\openpype\OpenPype\openpype\tools\sceneinventory\view.py", line 722, in _show_version_dialog
#     self._update_containers(items, version)
#   File "E:\openpype\OpenPype\openpype\tools\sceneinventory\view.py", line 849, in _update_containers
#     update_container(item, item_version)
#   File "E:\openpype\OpenPype\openpype\pipeline\load\utils.py", line 502, in update_container
#     return loader.update(container, new_representation)
#   File "E:\openpype\OpenPype\openpype\hosts\maya\plugins\load\load_look.py", line 119, in update
#     nodes_by_id[lib.get_id(n)].append(n)
#   File "E:\openpype\OpenPype\openpype\hosts\maya\api\lib.py", line 1420, in get_id
#     sel.add(node)

Nuke: Create nodes with inpanel=False #5051

This PR is meant to remove the annoyance of the UI changing focus to the properties window just for the property window of the newly created node to disappear. Instead of using node.hideControlPanel I'm implementing the concealment during the creation of the node which will not change the focus of the current window.


Fix the reset frame range not setting up the right timeline in Max #5187

Resolve #5181


Resolve: after launch automatization fixes #5193

Workfile is no correctly created and aligned witch actual project. Also the launching mechanism is now fixed so even no workfile had been saved yet it will open OpenPype menu automatically.


General: Revert backward incompatible change of path to template to multiplatform #5197

Now platformity is still handed by usage of work[root] (or any other root that is accessible across platforms.)


Nuke: root set format updating in node graph #5198

Nuke root node needs to be reset on some values so any knobs could be updated in node graph. This works the same way as an user would change frame number so expressions would update its values in knobs.


Hiero: fixing otio current project and cosmetics #5200

Otio were not returning correct current project once additional Untitled project was open in project manager stack.


Max: Publisher instances dont hold its enabled disabled states when Publisher reopened again #5202

Resolve #5183, general maxscript conversion issue to python (e.g. bool conversion, true in maxscript while True in Python)(Also resolve the ValueError when you change the subset to publish into list view menu)


Burnins: Filter script is defined only for video streams #5205

Burnins are working for inputs with audio.


Colorspace lib fix compatible python version comparison #5212

Fix python version comparison.


Houdini: Fix `get_color_management_preferences` #5217

Fix the issue described here where the logic for retrieving the current OCIO display and view was incorrectly trying to apply a regex to it.


Houdini: Redshift ROP image format bug #5218

Problem : "RS_outputFileFormat" parm value was missing and there were more "image_format" than redshift rop supports

Fix:

  1. removed unnecessary formats from image_format_enum
  2. add the selected format value to RS_outputFileFormat

Colorspace: check PyOpenColorIO rather then python version #5223

Fixing previously merged PR (https://github.com/ynput/OpenPype/pull/5212) And applying better way to check compatibility with PyOpenColorIO python api.


Validate delivery action representations status #5228
  • disable delivery button if no representations checked
  • fix macos combobox layout
  • add error message if no delivery templates found

Houdini: Add geometry check for pointcache family #5230

When sop_path on ABC ROP node points to a non SopNode, these validators validate_abc_primitive_to_detail.py, validate_primitive_hierarchy_paths.py will error and crash when this line is executed geo = output_node.geometryAtFrame(frame)


Houdini: Add geometry check for VDB family #5232

When sop_path on Geometry ROP node points to a non SopNode, this validator validate_vdb_output_node.py will error and crash when this line is executedsop_node.geometryAtFrame(frame)


Substance Painter: Include the setting only in publish tab #5234

Instead of having two settings in both create and publish tab, there is solely one setting in the publish tab for users to set up the parameters.Resolve #5172


Maya: Fix collecting arnold prefix when none #5243

When no prefix is specified in render settings, the renderlayer collector would error.


Deadline: OPENPYPE_VERSION should only be added when running from build #5244

When running from source the environment variable OPENPYPE_VERSION should not be added. This is a bugfix for the feature #4489


Fix no prompt for "unsaved changes" showing when opening workfile in Houdini #5246

Fix no prompt for "unsaved changes" showing when opening workfile in Houdini.


Fix no prompt for "unsaved changes" showing when opening workfile in Substance Painter #5248

Fix no prompt for "unsaved changes" showing when opening workfile in Substance Painter.


General: add the os library before os.environ.get #5249

Adding os library into creator_plugins.py due to os.environ.get in line 667


Maya: Fix set_attribute for enum attributes #5261

Fix for #5260


Unreal: Move Qt imports away from module init #5268

Importing Window creates errors in headless mode.

*** WRN: >>> { ModulesLoader }: [  FAILED to import host folder unreal  ]
=============================
No Qt bindings could be found
=============================
Traceback (most recent call last):
  File "C:\Users\tokejepsen\OpenPype\.venv\lib\site-packages\qtpy\__init__.py", line 252, in <module>
    from PySide6 import __version__ as PYSIDE_VERSION  # analysis:ignore
ModuleNotFoundERROR: No module named 'PySide6'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\tokejepsen\OpenPype\openpype\modules\base.py", line 385, in _load_modules
    default_module = __import__(
  File "C:\Users\tokejepsen\OpenPype\openpype\hosts\unreal\__init__.py", line 1, in <module>
    from .addon import UnrealAddon
  File "C:\Users\tokejepsen\OpenPype\openpype\hosts\unreal\addon.py", line 4, in <module>
    from openpype.widgets.message_window import Window
  File "C:\Users\tokejepsen\OpenPype\openpype\widgets\__init__.py", line 1, in <module>
    from .password_dialog import PasswordDialog
  File "C:\Users\tokejepsen\OpenPype\openpype\widgets\password_dialog.py", line 1, in <module>
    from qtpy import QtWidgets, QtCore, QtGui
  File "C:\Users\tokejepsen\OpenPype\.venv\lib\site-packages\qtpy\__init__.py", line 259, in <module>
    raise QtBindingsNotFoundERROR()
qtpy.QtBindingsNotFoundERROR: No Qt bindings could be found

🔀 Refactored code

Maya: Minor refactoring and code cleanup #5226

Some small cleanup and refactoring of logic. Removing old comments, unused imports and some minor optimization. Also removed the prints of the loader names of each container the scene in fix_incompatible_containers + optimizing by using set and defining only once. Moved some UI related code/tweaks to run on_init only if not in headless mode. Removed an empty obj.py file.Each commit message kind of describes why the change was made.


Merged pull requests

Bug: Template builder fails when loading data without outliner representation #5222

I add an assertion management in case the container does not have a represention in outliner.


AfterEffects - add container check validator to AE settings #5203

Adds check if scene contains only latest version of loaded containers.


3.15.11

Full Changelog

🆕 New features

Ftrack: Task status during publishing #5123

Added option to change task status during publishing for 3 possible cases: "sending to farm", "local integration" and "on farm integration".


Nuke: Allow for more complex temp rendering paths #5132

When changing the temporary rendering template (i.e., add {asset} to the path) to something a bit more complex the formatting was erroring due to missing keys.


Blender: Add support for custom path for app templates #5137

This PR adds support for a custom App Templates path in Blender by setting the BLENDER_USER_SCRIPTS environment variable to the path specified in OPENPYPE_APP_TEMPLATES_PATH. This allows users to use their own custom app templates in Blender.


TrayPublisher & StandalonePublisher: Specify version #5142

Simple creators in TrayPublisher can affect which version will be integrated. Standalone publisher respects the version change from UI.


🚀 Enhancements

Workfile Builder UI: Workfile builder window is not modal #5131

Workfile Templates Builder:

  • Create dialog is not a modal dialog
  • Create dialog remains open after create, so you can directly create a new placeholder with similar settings
  • In Maya allow to create root level placeholders (no selection during create) - this felt more like a bugfix than anything else.

3dsmax: Use custom modifiers to hold instance members #4931

Moving logic to handle members of publishing instance from children/parent relationship on Container to tracking via custom attribute on modifier. This eliminates limitations where you couldn't have one node multiple times under one Container and because it stores those relationships as weak references, they are easily transferable even when original nodes are renamed.


Add height, width and fps setup to project manager #5075

Add Width, Height, FPS, Pixel Aspect and Frame Start/End to the Project creation dialogue in the Project Manager.I understand that the Project manager will be replaced in the upcoming Ayon, but for the time being I believe setting new project with these options available would be more fun.


Nuke: connect custom write node script to the OP setting #5113

Allows user to customize the values of knobs attribute in the OP setting and use it in custom write node


Keep `publisher.create_widget` variant when creating subsets #5119

Whenever a person is creating a subset to publish, the "creator" widget resets (where you choose the variant, product, etc.) so if the person is publishing several images of the a variant which is not the default one, they have to keep selecting the correct one after every "create".

This commit resets the original variant upon successful creation of a subset for publishing.

Demo: Screencast from 2023-06-08 10-46-40.webm

Testing notes:

  1. Launch AYON/OP
  2. Launch the publisher (select a project, shot, etc.)
  3. Crete a publish type (any works)
  4. Choose a variant for the publish that is not the default
  5. "Create >>"

The Variant fields should still have the variant you choose.


Color Management- added color management support for simple expected files on Deadline #5122

Running of ExtractOIIOTranscode during Deadline publish was previously implemented only on DCCs with AOVs (Maya, Max).This PR extends this for other DCCs with flat structure of expected files.


hide macos dock icon on build #5133

Set LSUIElement to 1 in the Info.plist to hide OP icon from the macos dock by default.


Pack project: Raise exception with reasonable message #5145

Pack project crashes with relevant message when destination directory is not set.


Allow "inventory" actions to be supplied by a Module/Addon. #5146

Adds "inventory" as a possible key to the plugin paths to be returned from a module.


3dsmax: make code compatible with 3dsmax 2022 #5164

Python 3.7 in 3dsmax 2022 is not supporting walrus operator. This is removing it from the code for the sake of compatibility


🐛 Bug fixes

Maya: Support same attribute names on different node types. #5054

When validating render settings attributes, support same attribute names on different node types.


Maya: bug fix the standin being not loaded when they are first loaded #5143

fix the bug of raising error when the first two standins are loaded through the loaderThe bug mentioned in the related issue: https://github.com/ynput/OpenPype/issues/5129For some reason, defaultArnoldRenderOptions.operator is not listed in the connection node attribute even if cmds.loadPlugin("mtoa", quiet=True) executed before loading the object as standins for the first time.But if you manually turn on mtoa through plugin preference and load the standins for the first time, it won't raise the related defaultArnoldRenderOptions.operator error.


Maya: bug fix arnoldExportAss unable to export selected set members #5150

See #5108 fix the bug arnoldExportAss being not able to export and error out during extraction.


Maya: Xgen multiple descriptions on single shape - OP-6039 #5160

When having multiple descriptions on the same geometry, the extraction would produce redundant duplicate geometries.


Maya: Xgen export of Abc's during Render Publishing - OP-6206 #5167

Shading assignments was missing duplicating the setup for Xgen publishing and the exporting of patches was getting the end frame incorrectly.


Maya: Include handles - OP-6236 #5175

Render range was missing the handles.


OCIO: Support working with single frame renders #5053

When there is only 1 file, the datamember files on the representation should be a string.


Burnins: Refactored burnins script #5094

Refactored list value for burnins and fixed command length limit by using temp file for filters string.


Nuke: open_file function can open autosave script #5107

Fix the bug of the workfile dialog being unable to open autosave nuke script


ImageIO: Minor fixes #5147

Resolve few minor fixes related to latest image io changes from PR.


Publisher: Fix save shortcut #5148

Save shortcut should work for both PySide2 and PySide6.


Pack Project: Fix files packing #5154

Packing of project with files does work again.


Maya: Xgen version mismatch after publish - OP-6204 #5161

Xgen was not updating correctly when for example adding or removing descriptions. This resolve the issue by overwritting the workspace xgen file.


Publisher: Edge case fixes #5165

Fix few edge case issues that may cause issues in Publisher UI.


Colorspace: host config path backward compatibility #5166

Old project settings overrides are now fully backward compatible. The issue with host config paths overrides were solved and now once a project used to be set to ocio_config enabled with found filepaths - this is now considered as activated host ocio_config paths overrides.Nuke is having an popup dialogue which is letting know to a user that settings for config path were changed.


Maya: import workfile missing - OP-6233 #5174

Missing workfile family to import.


Ftrack: Fix ignore sync filter #5176

Ftrack ignore filter does not crash because of dictionary modifications during it's iteration.


Webpublisher - headless publish shouldn't be blocking operation #5177

subprocess.call was blocking, which resulted in UI non responsiveness as it was waiting for publish to finish.


Publisher: Fix disappearing actions #5184

Pyblish plugin actions are visible as expected.


Merged pull requests

Enhancement:animation family loaded as standing (abc) uses "use file sequence" #5110

The changes are the following. We started by updating the the is_sequence(files) function allowing it to return True for a list of files which has only one file, since our animation in this provides just one alembic file. For the correct FPS number, we got the fps from the published ass/abc from the version data.


add label to matching family #5128

I added the possibility to filter the family smart select with the label in addition to the family.


3.15.10

Full Changelog

🆕 New features

ImageIO: Adding ImageIO activation toggle to all hosts #4700

Colorspace management can now be enabled at the project level, although it is disabled by default. Once enabled, all hosts will use the OCIO config file defined in the settings. If settings are disabled, the system switches to DCC's native color space management, and we do not store colorspace information at the representative level.


Redshift Proxy Support in 3dsMax #4625

Redshift Proxy Support for 3dsMax.

  • Creator
  • Loader
  • Extractor
  • Validator
  • Add documentation

Houdini farm publishing and rendering #4825

Deadline Farm publishing and Rendering for Houdini

  • Mantra
  • Karma(including usd renders)
  • Arnold
  • Elaborate Redshift ROP for deadline submission
  • fix the existing bug in Redshift ROP
  • Vray
  • add docs

Feature: Blender hook to execute python scripts at launch #4905

Hook to allow hooks to add path to a python script that will be executed when Blender starts.


Feature: Resolve: Open last workfile on launch through .scriptlib #5047

Added implementation to Resolve integration to open last workfile on launch.


General: Remove default windowFlags from publisher #5089

The default windowFlags is making the publisher window (in Linux at least) only show the close button and it's frustrating as many times you just want to minimize the window and get back to the validation after. Removing that line I get what I'd expect.**Before:**After:


General: Show user who created the workfile on the details pane of workfile manager #5093

New PR for https://github.com/ynput/OpenPype/pull/5087, which was closed after merging next-minor branch and then realizing we don't need to target it as it was decided it's not required to support windows. More info on that PR discussion.Small addition to add name of the user who created the workfile on the details pane of the workfile manager:


Loader: Hide inactive versions in UI #5100

Hide versions with active set to False in Loader UI.


🚀 Enhancements

Maya: Repair RenderPass token when merging AOVs. #5055

Validator was flagging that <RenderPass> was in the image prefix, but did not repair the issue.


Maya: Improve error feedback when no renderable cameras exist for ASS family. #5092

When collecting cameras for ass family, this improves the error message when no cameras are renderable.


Nuke: Custom script to set frame range of read nodes #5039

Adding option to set frame range specifically for the read nodes in Openpype Panel. User can set up their preferred frame range with the frame range dialog, which can be showed after clicking Set Frame Range (Read Node) in Openpype Tools


Update extract review letterbox docs #5074

Update Extract Review - Letter Box section in Docs. Letterbox type description is removed.


Project pack: Documents only skips roots validation #5082

Single roots validation is skipped if only documents are extracted.


Nuke: custom settings for write node without publish #5084

Set Render Output and other settings to write nodes for non-publish purposes.


🐛 Bug fixes

Maya: Deadline servers #5052

Fix working with multiple Deadline servers in Maya.

  • Pools (primary and secondary) attributes were not recreated correctly.
  • Order of collector plugins were wrong, so collected data was not injected into render instances.
  • Server attribute was not converted to string so comparing with settings was incorrect.
  • Improve debug logging for where the webservice url is getting fetched from.

Maya: Fix Load Reference. #5091

Fix bug introduced with https://github.com/ynput/OpenPype/pull/4751 where cmds.ls returns a list.


3dsmax: Publishing Deadline jobs from RedShift #4960

Fix the bug of being uable to publish deadline jobs from RedshiftUse Current File instead of Published Scene for just Redshift.

  • add save scene before rendering to ensure the scene is saved after the modification.
  • add separated aov files option to allow users to choose to have aovs in render output
  • add validator for render publish to aovid overriding the previous renders

Houdini: Fix missing frame range for pointcache and camera exports #5026

Fix missing frame range for pointcache and camera exports on published version.


Global: collect_frame_fix plugin fix and cleanup #5064

Previous implementation https://github.com/ynput/OpenPype/pull/5036 was broken this is fixing the issue where attribute is found in instance data although the settings were disabled for the plugin.


Hiero: Fix apply settings Clip Load #5073

Changed apply_settings to classmethod which fixes the issue with settings.


Resolve: Make sure scripts dir exists #5078

Make sure the scripts directory exists before looping over it's content.


removing info knob from nuke creators #5083
  • removing instance node if removed via publisher
  • removing info knob since it is not needed any more (was there only for the transition phase)

Tray: Fix restart arguments on update #5085

Fix arguments on restart.


Maya: bug fix on repair action in Arnold Scene Source CBID Validator #5096

Fix the bug of not being able to use repair action in Arnold Scene Source CBID Validator


Nuke: batch of small fixes #5103
  • default settings for imageio.requiredNodes CreateWriteImage
  • default settings for LoadImage representations
  • Create and Publish menu items with parent=main_window (version > 14)

Deadline: make prerender check safer #5104

Prerender wasn't correctly recognized and was replaced with just 'render' family.In Nuke it is correctly prerender.farm in families, which wasn't handled here. It resulted into using render in templates even if render and prerender templates were split.


General: Sort launcher actions alphabetically #5106

The launcher actions weren't being sorted by its label but its name (which on the case of the apps it's the version number) and thus the order wasn't consistent and we kept getting a different order on every launch. From my debugging session, this was the result of what the actions variable held after the filter_compatible_actions function before these changes:

(Pdb) for p in actions: print(p.order, p.name)
0 14-02
0 14-02
0 14-02
0 14-02
0 14-02
0 19-5-493
0 2023
0 3-41
0 6-01
```This caused already a couple bugs from our artists thinking they had launched Nuke X and instead launched Nuke and telling us their Nuke was missing nodes**Before:****After:**


___

</details>


<details>
<summary>TrayPublisher: Editorial video stream discovery <a href="https://github.com/ynput/OpenPype/pull/5120">#5120</a></summary>

Editorial create plugin in traypublisher does not expect that first stream in input is video.


___

</details>

### **🔀 Refactored code**


<details>
<summary>3dsmax: Move from deprecated interface <a href="https://github.com/ynput/OpenPype/pull/5117">#5117</a></summary>

`INewPublisher` interface is deprecated, this PR is changing the use to `IPublishHost` instead.


___

</details>

### **Merged pull requests**


<details>
<summary>add movalex as a contributor for code <a href="https://github.com/ynput/OpenPype/pull/5076">#5076</a></summary>

Adds @movalex as a contributor for code.

This was requested by mkolar [in this comment](https://github.com/ynput/OpenPype/pull/4916#issuecomment-1571498425)

[skip ci]
___

</details>


<details>
<summary>3dsmax: refactor load plugins <a href="https://github.com/ynput/OpenPype/pull/5079">#5079</a></summary>


___

</details>




## [3.15.9](https://github.com/ynput/OpenPype/tree/3.15.9)


[Full Changelog](https://github.com/ynput/OpenPype/compare/3.15.8...3.15.9)

### **🆕 New features**


<details>
<summary>Blender: Implemented Loading of Alembic Camera <a href="https://github.com/ynput/OpenPype/pull/4990">#4990</a></summary>

Implemented loading of Alembic cameras in Blender.


___

</details>


<details>
<summary>Unreal: Implemented Creator, Loader and Extractor for Levels <a href="https://github.com/ynput/OpenPype/pull/5008">#5008</a></summary>

Creator, Loader and Extractor for Unreal Levels have been implemented.


___

</details>

### **🚀 Enhancements**


<details>
<summary>Blender: Added setting for base unit scale <a href="https://github.com/ynput/OpenPype/pull/4987">#4987</a></summary>

A setting for the base unit scale has been added for Blender.The unit scale is automatically applied when opening a file or creating a new one.


___

</details>


<details>
<summary>Unreal: Changed naming and path of Camera Levels <a href="https://github.com/ynput/OpenPype/pull/5010">#5010</a></summary>

The levels created for the camera in Unreal now include `_camera` in the name, to be better identifiable, and are placed in the camera folder.


___

</details>


<details>
<summary>Settings: Added option to nest settings templates <a href="https://github.com/ynput/OpenPype/pull/5022">#5022</a></summary>

It is possible to nest settings templates in another templates.


___

</details>


<details>
<summary>Enhancement/publisher: Remove "hit play to continue" label on continue <a href="https://github.com/ynput/OpenPype/pull/5029">#5029</a></summary>

Remove "hit play to continue" message on continue so that it doesn't show anymore when play was clicked.


___

</details>


<details>
<summary>Ftrack: Limit number of ftrack events to query at once <a href="https://github.com/ynput/OpenPype/pull/5033">#5033</a></summary>

Limit the amount of ftrack events received from mongo at once to 100.


___

</details>


<details>
<summary>General: Small code cleanups <a href="https://github.com/ynput/OpenPype/pull/5034">#5034</a></summary>

Small code cleanup and updates.


___

</details>


<details>
<summary>Global: collect frames to fix with settings <a href="https://github.com/ynput/OpenPype/pull/5036">#5036</a></summary>

Settings for `Collect Frames to Fix` will allow disable per project the plugin. Also `Rewriting latest version` attribute is hiddable from settings.


___

</details>


<details>
<summary>General: Publish plugin apply settings can expect only project settings <a href="https://github.com/ynput/OpenPype/pull/5037">#5037</a></summary>

Only project settings are passed to optional `apply_settings` method, if the method expects only one argument.


___

</details>

### **🐛 Bug fixes**


<details>
<summary>Maya: Load Assembly fix invalid imports  <a href="https://github.com/ynput/OpenPype/pull/4859">#4859</a></summary>

Refactors imports so they are now correct.


___

</details>


<details>
<summary>Maya: Skipping rendersetup for members. <a href="https://github.com/ynput/OpenPype/pull/4973">#4973</a></summary>

When publishing a `rendersetup`, the objectset is and should be empty.


___

</details>


<details>
<summary>Maya: Validate Rig Output IDs <a href="https://github.com/ynput/OpenPype/pull/5016">#5016</a></summary>

Absolute names of node were not used, so plugin did not fetch the nodes properly.Also missed pymel command.


___

</details>


<details>
<summary>Deadline: escape rootless path in publish job <a href="https://github.com/ynput/OpenPype/pull/4910">#4910</a></summary>

If the publish path on Deadline job contains spaces or other characters, command was failing because the path wasn't properly escaped. This is fixing it.


___

</details>


<details>
<summary>General: Company name and URL changed <a href="https://github.com/ynput/OpenPype/pull/4974">#4974</a></summary>

The current records were obsolete in inno_setup, changed to the up-to-date.
___

</details>


<details>
<summary>Unreal: Fix usage of 'get_full_path' function <a href="https://github.com/ynput/OpenPype/pull/5014">#5014</a></summary>

This PR changes all the occurrences of `get_full_path` functions to alternatives to get the path of the objects.


___

</details>


<details>
<summary>Unreal: Fix sequence frames validator to use correct data <a href="https://github.com/ynput/OpenPype/pull/5021">#5021</a></summary>

Fix sequence frames validator to use clipIn and clipOut data instead of frameStart and frameEnd.


___

</details>


<details>
<summary>Unreal: Fix render instances collection to use correct data <a href="https://github.com/ynput/OpenPype/pull/5023">#5023</a></summary>

Fix render instances collection to use `frameStart` and `frameEnd` from the Project Manager, instead of the sequence's ones.


___

</details>


<details>
<summary>Resolve: loader is opening even if no timeline in project <a href="https://github.com/ynput/OpenPype/pull/5025">#5025</a></summary>

Loader is opening now even no timeline is available in a project.


___

</details>


<details>
<summary>nuke: callback for dirmapping is on demand <a href="https://github.com/ynput/OpenPype/pull/5030">#5030</a></summary>

Nuke was slowed down on processing due this callback. Since it is disabled by default it made sense to add it only on demand.


___

</details>


<details>
<summary>Publisher: UI works with instances without label <a href="https://github.com/ynput/OpenPype/pull/5032">#5032</a></summary>

Publisher UI does not crash if instance don't have filled 'label' key in instance data.


___

</details>


<details>
<summary>Publisher: Call explicitly prepared tab methods <a href="https://github.com/ynput/OpenPype/pull/5044">#5044</a></summary>

It is not possible to go to Create tab during publishing from OpenPype menu.


___

</details>


<details>
<summary>Ftrack: Role names are not case sensitive in ftrack event server status action <a href="https://github.com/ynput/OpenPype/pull/5058">#5058</a></summary>

Event server status action is not case sensitive for role names of user.


___

</details>


<details>
<summary>Publisher: Fix border widget <a href="https://github.com/ynput/OpenPype/pull/5063">#5063</a></summary>

Fixed border lines in Publisher UI to be painted correctly with correct indentation and size.


___

</details>


<details>
<summary>Unreal: Fix Commandlet Project and Permissions <a href="https://github.com/ynput/OpenPype/pull/5066">#5066</a></summary>

Fix problem when creating an Unreal Project when Commandlet Project is in a protected location.


___

</details>


<details>
<summary>Unreal: Added verification for Unreal app name format <a href="https://github.com/ynput/OpenPype/pull/5070">#5070</a></summary>

The Unreal app name is used to determine the Unreal version folder, so it is necessary that if follows the format `x-x`, where `x` is any integer. This PR adds a verification that the app name follows that format.


___

</details>

### **📃 Documentation**


<details>
<summary>Docs: Display wrong image in ExtractOIIOTranscode <a href="https://github.com/ynput/OpenPype/pull/5045">#5045</a></summary>

Wrong image display in `https://openpype.io/docs/project_settings/settings_project_global#extract-oiio-transcode`.


___

</details>

### **Merged pull requests**


<details>
<summary>Drop-down menu to list all families in create placeholder <a href="https://github.com/ynput/OpenPype/pull/4928">#4928</a></summary>

Currently in the create placeholder window, we need to write the family manually. This replace the text field by an enum field with all families for the current software.


___

</details>


<details>
<summary>add sync to specific projects or listen only <a href="https://github.com/ynput/OpenPype/pull/4919">#4919</a></summary>

Extend kitsu sync service with additional arguments to sync specific projects.


___

</details>




## [3.15.8](https://github.com/ynput/OpenPype/tree/3.15.8)


[Full Changelog](https://github.com/ynput/OpenPype/compare/3.15.7...3.15.8)

### **🆕 New features**


<details>
<summary>Publisher: Show instances in report page <a href="https://github.com/ynput/OpenPype/pull/4915">#4915</a></summary>

Show publish instances in report page. Also added basic log view with logs grouped by instance. Validation error detail now have 2 colums, one with erro details second with logs. Crashed state shows fast access to report action buttons. Success will show only logs. Publish frame is shrunked automatically on publish stop.


___

</details>


<details>
<summary>Fusion - Loader plugins updates <a href="https://github.com/ynput/OpenPype/pull/4920">#4920</a></summary>

Update to some Fusion loader plugins:The sequence loader can now load footage from the image and online family.The FBX loader can now import all formats Fusions FBX node can read.You can now import the content of another workfile into your current comp with the workfile loader.


___

</details>


<details>
<summary>Fusion: deadline farm rendering <a href="https://github.com/ynput/OpenPype/pull/4955">#4955</a></summary>

Enabling Fusion for deadline farm rendering.


___

</details>


<details>
<summary>AfterEffects: set frame range and resolution <a href="https://github.com/ynput/OpenPype/pull/4983">#4983</a></summary>

Frame information (frame start, duration, fps) and resolution (width and height) is applied to selected composition from Asset Management System (Ftrack or DB) automatically when published instance is created.It is also possible explicitly propagate both values from DB to selected composition by newly added menu buttons.


___

</details>


<details>
<summary>Publish: Enhance automated publish plugin settings <a href="https://github.com/ynput/OpenPype/pull/4986">#4986</a></summary>

Added plugins option to define settings category where to look for settings of a plugin and added public helper functions to apply settings `get_plugin_settings` and `apply_plugin_settings_automatically`.


___

</details>

### **🚀 Enhancements**


<details>
<summary>Load Rig References - Change Rig to Animation in Animation instance <a href="https://github.com/ynput/OpenPype/pull/4877">#4877</a></summary>

We are using the template builder to build an animation scene. All the rig placeholders are imported correctly, but the automatically created animation instances retain the rig family in their names and subsets. In our example, we need animationMain instead of rigMain, because this name will be used in the following steps like lighting.Here is the result we need. I checked, and it's not a template builder problem, because even if I load a rig as a reference, the result is the same. For me, since we are in the animation instance, it makes more sense to have animation instead of rig in the name. The naming is just fine if we use create from the Openpype menu.


___

</details>


<details>
<summary>Enhancement: Resolve prelaunch code refactoring and update defaults <a href="https://github.com/ynput/OpenPype/pull/4916">#4916</a></summary>

The main reason of this PR is wrong default settings in `openpype/settings/defaults/system_settings/applications.json` for Resolve host. The `bin` folder should not be a part of the macos and Linux `RESOLVE_PYTHON3_PATH` variable.The rest of this PR is some code cleanups for Resolve prelaunch hook to simplify further development.Also added a .gitignore for vscode workspace files.


___

</details>


<details>
<summary>Unreal: 🚚 move Unreal plugin to separate repository <a href="https://github.com/ynput/OpenPype/pull/4980">#4980</a></summary>

To support Epic Marketplace have to move AYON Unreal integration plugins to separate repository. This is replacing current files with git submodule, so the change should be functionally without impact.New repository lives here: https://github.com/ynput/ayon-unreal-plugin


___

</details>


<details>
<summary>General: Lib code cleanup <a href="https://github.com/ynput/OpenPype/pull/5003">#5003</a></summary>

Small cleanup in lib files in openpype.


___

</details>


<details>
<summary>Allow to open with djv by extension instead of representation name <a href="https://github.com/ynput/OpenPype/pull/5004">#5004</a></summary>

Filter open in djv action by extension instead of representation.


___

</details>


<details>
<summary>DJV open action `extensions` as `set` <a href="https://github.com/ynput/OpenPype/pull/5005">#5005</a></summary>

Change `extensions` attribute to `set`.


___

</details>


<details>
<summary>Nuke: extract thumbnail with multiple reposition nodes <a href="https://github.com/ynput/OpenPype/pull/5011">#5011</a></summary>

Added support for multiple reposition nodes.


___

</details>


<details>
<summary>Enhancement: Improve logging levels and messages for artist facing publish reports <a href="https://github.com/ynput/OpenPype/pull/5018">#5018</a></summary>

Tweak the logging levels and messages to try and only show those logs that an artist should see and could understand. Move anything that's slightly more involved into a "debug" message instead.


___

</details>

### **🐛 Bug fixes**


<details>
<summary>Bugfix/frame variable fix <a href="https://github.com/ynput/OpenPype/pull/4978">#4978</a></summary>

Renamed variables to match OpenPype terminology to reduce confusion and add consistency.
___

</details>


<details>
<summary>Global: plugins cleanup plugin will leave beauty rendered files <a href="https://github.com/ynput/OpenPype/pull/4790">#4790</a></summary>

Attempt to mark more files to be cleaned up explicitly in intermediate `renders` folder in work area for farm jobs.


___

</details>


<details>
<summary>Fix: Download last workfile doesn't work if not already downloaded <a href="https://github.com/ynput/OpenPype/pull/4942">#4942</a></summary>

Some optimization condition is messing with the feature: if the published workfile is not already downloaded, it won't download it...


___

</details>


<details>
<summary>Unreal: Fix transform when loading layout to match existing assets <a href="https://github.com/ynput/OpenPype/pull/4972">#4972</a></summary>

Fixed transform when loading layout to match existing assets.


___

</details>


<details>
<summary>fix the bug of fbx loaders in Max <a href="https://github.com/ynput/OpenPype/pull/4977">#4977</a></summary>

bug fix of fbx loaders for not being able to parent to the CON instances while importing cameras(and models) which is published from other DCCs such as Maya.


___

</details>


<details>
<summary>AfterEffects: allow returning stub with not saved workfile <a href="https://github.com/ynput/OpenPype/pull/4984">#4984</a></summary>

Allows to use Workfile app to Save first empty workfile.


___

</details>


<details>
<summary>Blender: Fix Alembic loading <a href="https://github.com/ynput/OpenPype/pull/4985">#4985</a></summary>

Fixed problem occurring when trying to load an Alembic model in Blender.


___

</details>


<details>
<summary>Unreal: Addon Py2 compatibility <a href="https://github.com/ynput/OpenPype/pull/4994">#4994</a></summary>

Fixed Python 2 compatibility of unreal addon.


___

</details>


<details>
<summary>Nuke: fixed missing files key in representation <a href="https://github.com/ynput/OpenPype/pull/4999">#4999</a></summary>

Issue with missing keys once rendering target set to existing frames is fixed. Instance has to be evaluated in validation for missing files.


___

</details>


<details>
<summary>Unreal: Fix the frame range when loading camera <a href="https://github.com/ynput/OpenPype/pull/5002">#5002</a></summary>

The keyframes of the camera, when loaded, were not using the correct frame range.


___

</details>


<details>
<summary>Fusion: fixing frame range targeting <a href="https://github.com/ynput/OpenPype/pull/5013">#5013</a></summary>

Frame range targeting at Rendering instances is now following configured options.


___

</details>


<details>
<summary>Deadline: fix selection from multiple webservices <a href="https://github.com/ynput/OpenPype/pull/5015">#5015</a></summary>

Multiple different DL webservice could be configured. First they must by configured in System Settings., then they could be configured per project in `project_settings/deadline/deadline_servers`.Only single webservice could be a target of publish though.


___

</details>

### **Merged pull requests**


<details>
<summary>3dsmax: Refactored publish plugins to use proper implementation of pymxs <a href="https://github.com/ynput/OpenPype/pull/4988">#4988</a></summary>


___

</details>




## [3.15.7](https://github.com/ynput/OpenPype/tree/3.15.7)


[Full Changelog](https://github.com/ynput/OpenPype/compare/3.15.6...3.15.7)

### **🆕 New features**


<details>
<summary>Addons directory <a href="https://github.com/ynput/OpenPype/pull/4893">#4893</a></summary>

This adds a directory for Addons, for easier distribution of studio specific code.


___

</details>


<details>
<summary>Kitsu - Add "image", "online" and "plate" to review families <a href="https://github.com/ynput/OpenPype/pull/4923">#4923</a></summary>

This PR adds "image", "online" and "plate" to the review families so they also can be uploaded to Kitsu.It also adds the `Add review to Kitsu` tag to the default png review. Without it the user would manually need to add it for single image uploads to Kitsu and might confuse users (it confused me first for a while as movies did work).


___

</details>


<details>
<summary>Feature/remove and load inv action <a href="https://github.com/ynput/OpenPype/pull/4930">#4930</a></summary>

Added the ability to remove and load a container, as a way to reset it.This can be useful in cases where a container breaks in a way that can be fixed by removing it, then reloading it.Also added the ability to add `InventoryAction` plugins by placing them in `openpype/plugins/inventory`.


___

</details>

### **🚀 Enhancements**


<details>
<summary>Load Rig References - Change Rig to Animation in Animation instance <a href="https://github.com/ynput/OpenPype/pull/4877">#4877</a></summary>

We are using the template builder to build an animation scene. All the rig placeholders are imported correctly, but the automatically created animation instances retain the rig family in their names and subsets. In our example, we need animationMain instead of rigMain, because this name will be used in the following steps like lighting.Here is the result we need. I checked, and it's not a template builder problem, because even if I load a rig as a reference, the result is the same. For me, since we are in the animation instance, it makes more sense to have animation instead of rig in the name. The naming is just fine if we use create from the Openpype menu.


___

</details>


<details>
<summary>Maya template builder - preserve all references when importing a template <a href="https://github.com/ynput/OpenPype/pull/4797">#4797</a></summary>

When building a template with Maya template builder, we import the template and also the references inside the template file. This causes some problems:
- We cannot use the references to version assets imported by the template.
- When we import the file, the internal reference files are also imported. As a side effect, Maya complains about a reference that no longer exists.`// Error: file: /xxx/maya/2023.3/linux/scripts/AETemplates/AEtransformRelated.mel line 58: Reference node 'turntable_mayaSceneMain_01_RN' is not associated with a reference file.`


___

</details>


<details>
<summary>Unreal: Renaming the integration plugin to Ayon. <a href="https://github.com/ynput/OpenPype/pull/4646">#4646</a></summary>

Renamed the .h, and .cpp files to Ayon. Also renamed the classes to with the Ayon keyword.


___

</details>


<details>
<summary>3dsMax: render dialogue needs to be closed <a href="https://github.com/ynput/OpenPype/pull/4729">#4729</a></summary>

Make sure the render setup dialog is in a closed state for the update of resolution and other render settings


___

</details>


<details>
<summary>Maya Template Builder - Remove default cameras from renderable cameras <a href="https://github.com/ynput/OpenPype/pull/4815">#4815</a></summary>

When we build an asset workfile with build workfile from template inside Maya, we load our turntable camera. But then we end up with 2 renderables camera : **persp** the one imported from the template.We need to remove the **persp** camera (or any other default camera) from renderable cameras when building the work file.


___

</details>


<details>
<summary>Validators for Frame Range in Max <a href="https://github.com/ynput/OpenPype/pull/4914">#4914</a></summary>

Switch Render Frame Range Type to 3 for specific ranges (initial setup for the range type is 4)Reset Frame Range will also set the frame range for render settingsRender Collector won't take the frame range from context data but take the range directly from render settingAdd validators for render frame range type and frame range respectively with repair action


___

</details>


<details>
<summary>Fusion: Saver creator settings <a href="https://github.com/ynput/OpenPype/pull/4943">#4943</a></summary>

Adding Saver creator settings and enhanced rendering path with template.


___

</details>


<details>
<summary>General: Project Anatomy on creators <a href="https://github.com/ynput/OpenPype/pull/4962">#4962</a></summary>

Anatomy object of current project is available on `CreateContext` and create plugins.


___

</details>

### **🐛 Bug fixes**


<details>
<summary>Maya: Validate shader name - OP-5903 <a href="https://github.com/ynput/OpenPype/pull/4971">#4971</a></summary>

Running the plugin would error with:

// TypeError: 'str' object cannot be interpreted as an integer ```Fixed and added setting active.


Houdini: Fix slow Houdini launch due to shelves generation #4829

Shelf generation during Houdini startup would add an insane amount of delay for the Houdini UI to launch correctly. By deferring the shelf generation this takes away the 5+ minutes of delay for the Houdini UI to launch.


Fusion - Fixed "optional validation" #4912

Added OptionalPyblishPluginMixin and is_active checks for all publish tools that should be optional


Bug: add missing `pyblish.util` import #4937

remote publishing was missing import of remote_publish. This is adding it back.


Unreal: Fix missing 'object_path' property #4938

Epic removed the object_path property from AssetData. This PR fixes usages of that property.Fixes #4936


Remove obsolete global validator #4939

Removing Validate Sequence Frames validator from global plugins as it wasn't handling correctly many things and was by mistake enabled, breaking functionality on Deadline.


General: fix build_workfile get_linked_assets missing project_name arg #4940

Linked assets collection don't work within build_workfile because get_linked_assets function call has a missing project_nameargument.

  • Added the project_name arg to the get_linked_assets function call.

General: fix Scene Inventory switch version error dialog missing parent arg on init #4941

QuickFix for the switch version error dialog to set inventory widget as parent.


Unreal: Fix camera frame range #4956

Fix the frame range of the level sequence for the Camera in Unreal.


Unreal: Fix missing parameter when updating Alembic StaticMesh #4957

Fix an error when updating an Alembic StaticMesh in Unreal, due to a missing parameter in a function call.


Unreal: Fix render extraction #4963

Fix a problem with the extraction of renders in Unreal.


Unreal: Remove Python 3.8 syntax from addon #4965

Removed Python 3.8 syntax from addon.


Ftrack: Fix editorial task creation #4966

Fix key assignment on instance data during editorial publishing in ftrack hierarchy integration.


Merged pull requests

Add "shortcut" to Scripts Menu Definition #4927

Add the possibility to associate a shorcut for an entry in the script menu definition with the key "shortcut"


3.15.6

Full Changelog

🆕 New features

Substance Painter Integration #4283

This implements a part of #4205 by implementing a Substance Painter integration

Status:

  • Implement Host
  • start substance with last workfile using AddLastWorkfileToLaunchArgs prelaunch hook
  • Implement Qt tools
  • Implement loaders
  • Implemented a Set project mesh loader (this is relatively special case because a Project will always have exactly one mesh - a Substance Painter project cannot exist without a mesh).
  • Implement project open callback
  • On project open it notifies the user if the loaded model is outdated
  • Implement publishing logic
  • Workfile publishing
  • Export Texture Sets
  • Support OCIO using #4195 (draft brach is set up - see comment)
  • Likely needs more testing on the OCIO front
  • Validate all outputs of the Export template are exported/generated
  • Allow validation to be optional (issue: there's no API method to detect what maps will be exported without doing an actual export to disk)
  • Support extracting/integration if not all outputs are generated
  • Support multiple materials/texture sets per instance
  • Add validator that can enforce only a single texture set output if studio prefers that.
  • Implement Export File Format (extensions) override in Creator
  • Add settings so Admin can choose which extensions are available.

Data Exchange: Geometry in 3dsMax #4555

Introduces and updates a creator, extractors and loaders for model family

Introduces new creator, extractors and loaders for model family while adding model families into the existing max scene loader and extractor

  • creators
  • adding model family into max scene loader and extractor
  • fbx loader
  • fbx extractor
  • usd loader
  • usd extractor
  • validator for model family
  • obj loader(update function)
  • fix the update function of the loader as #4675
  • Add documentation

AfterEffects: add review flag to each instance #4884

Adds mark_for_review flag to the Creator to allow artists to disable review if necessary.Exposed this flag in Settings, by default set to True (eg. same behavior as previously).


🚀 Enhancements

Houdini: Fix Validate Output Node (VDB) #4819
Houdini: Add null node as output indicator when using TAB search #4834
Houdini: Don't error in collect review if camera is not set correctly #4874

Do not raise an error in collector when invalid path is set as camera path. Allow camera path to not be set correctly in review instance until validation so it's nicely shown in a validation report.


Project packager: Backup and restore can store only database #4879

Pack project functionality have option to zip only project database without project files. Unpack project can skip project copy if the folder is not found.Added helper functions to openpype.client.mongo that can be also used for tests as replacement of mongo dump.


Houdini: ExtractOpenGL for Review instance not optional #4881

Don't make ExtractOpenGL optional for review instance optional.


Publisher: Small style changes #4894

Small changes in styles and form of publisher UI.


Houdini: Workfile icon in new publisher #4898

Fix icon for the workfile instance in new publisher


Fusion: Simplify creator icons code #4899

Simplify code for setting the icons for the Fusion creators


Enhancement: Fix PySide 6.5 support for loader #4900

Fixes PySide 6.5 support in Loader.


🐛 Bug fixes

Maya: Validate Attributes #4917

This plugin was broken due to bad fetching of data and wrong repair action.


Fix: Locally copied version of last published workfile is not incremented #4722

Fix 1

When copied, the local workfile version keeps the published version number, when it must be +1 to follow OP's naming convention.

Fix 2

Local workfile version's name is built from anatomy. This avoids to get workfiles with their publish template naming.

Fix 3

In the case a subset has at least two tasks with published workfiles, for example Modeling and Rigging, launching Rigging was getting the first one with the next and trying to find representations, therefore workfileModeling and trying to match the current task_name (Rigging) with the representation["context"]["task"]["name"] of a Modeling representation, which was ending up to a workfile_representation to None, and exiting the process.

Trying to find the task_name in the subset['name'] fixes it.

Fix 4

Fetch input dependencies of workfile.

Replacing https://github.com/ynput/OpenPype/pull/4102 for changes to bring this home.


Maya: soft-fail when pan/zoom locked on camera when playblasting #4929

When pan/zoom enabled attribute on camera is locked, playblasting with pan/zoom fails because it is trying to restore it. This is fixing it by skipping over with warning.


Merged pull requests

Maya Load References - Add Display Handle Setting #4904

When we load a reference in Maya using OpenPype loader, display handle is checked by default and prevent us to select easily the object in the viewport. I understand that some productions like to keep this option, so I propose to add display handle to the reference loader settings.


Photoshop: add autocreators for review and flat image #4871

Review and flatten image (produced when no instance of image family was created) were created somehow magically. This PRintroduces two new auto creators which allow artists to disable review or flatten image.For all image instances Review flag was added to provide functionality to create separate review per image instance. Previously was possible only to have separate instance of review family.Review is not enabled on image family by default. (Eg. follows original behavior)Review auto creator is enabled by default as it was before.Flatten image creator must be set in Settings in project_settings/photoshop/create/AutoImageCreator.


3.15.5

Full Changelog

🚀 Enhancements

Maya: Playblast profiles #4777

Support playblast profiles.This enables studios to customize what playblast settings should be on a per task and/or subset basis. For example modeling should have Wireframe On Shaded enabled, while all other tasks should have it disabled.


Maya: Support .abc files directly for Arnold standin look assignment #4856

If .abc file is loaded into arnold standin support look assignment through the cbId attributes in the alembic file.


Maya: Hide animation instance in creator #4872
  • Hide animation instance in creator
  • Add inventory action to recreate animation publish instance for loaded rigs

Unreal: Render Creator enhancements #4477

Improvements to the creator for render family

This PR introduces some enhancements to the creator for the render family in Unreal Engine:

  • Added the option to create a new, empty sequence for the render.
  • Added the option to not include the whole hierarchy for the selected sequence.
  • Improvements of the error messages.

Unreal: Added settings for rendering #4575

Added settings for rendering in Unreal Engine.

Two settings has been added:

  • Pre roll frames, to set how many frames are used to load the scene before starting the actual rendering.
  • Configuration path, to allow to save a preset of settings from Unreal, and use it for rendering.

Global: Optimize anatomy formatting by only formatting used templates instead #4784

Optimization to not format full anatomy when only a single template is used. Instead format only the single template instead.


Patchelf version locked #4853

For Centos dockerfile it is necessary to lock the patchelf version to the older, otherwise the build process fails.


Houdini: Implement `switch` method on loaders #4866

Implement switch method on loaders


Code: Tweak docstrings and return type hints #4875

Tweak docstrings and return type hints for functions in openpype.client.entities.


Publisher: Clear comment on successful publish and on window close #4885

Clear comment text field on successful publish and on window close.


Publisher: Make sure to reset asset widget when hidden and reshown #4886

Make sure to reset asset widget when hidden and reshown. Without this the asset list would never refresh in the set asset widget when changing context on an existing instance and thus would not show new assets from after the first time launching that widget.


🐛 Bug fixes

Maya: Fix nested model instances. #4852

Fix nested model instance under review instance, where data collection was not including "Display Lights" and "Focal Length".


Maya: Make default namespace naming backwards compatible #4873

Namespaces of loaded references are now by default back to what they were before #4511


Nuke: Legacy convertor skips deprecation warnings #4846

Nuke legacy convertor was triggering deprecated function which is causing a lot of logs which slows down whole process. Changed the convertor to skip all nodes without AVALON_TAB to avoid the warnings.


3dsmax: move startup script logic to hook #4849

Startup script for OpenPype was interfering with Open Last Workfile feature. Moving this loggic from simple command line argument in the Settings to pre-launch hook is solving the order of command line arguments and making both features work.


Maya: Don't change time slider ranges in `get_frame_range` #4858

Don't change time slider ranges in get_frame_range


Maya: Looks - calculate hash for tx texture #4878

Texture hash is calculated for textures used in published look and it is used as key in dictionary. In recent changes, this hash is not calculated for TX files, resulting in None value as key in dictionary, crashing publishing. This PR is adding texture hash for TX files to solve that issue.


Houdini: Collect `currentFile` context data separate from workfile instance #4883

Fix publishing without an active workfile instance due to missing currentFile data.Now collect currentFile into context in houdini through context plugin no matter the active instances.


Nuke: fixed broken slate workflow once published on deadline #4887

Slate workflow is now working as expected and Validate Sequence Frames is not raising the once slate frame is included.


Add fps as instance.data in collect review in Houdini. #4888

fix the bug of failing to publish extract review in HoudiniOriginal error:

  File "OpenPype\build\exe.win-amd64-3.9\openpype\plugins\publish\extract_review.py", line 516, in prepare_temp_data
    "fps": float(instance.data["fps"]),
KeyError: 'fps'

TrayPublisher: Fill missing data for instances with review #4891

Fill required data to instance in traypublisher if instance has review family. The data are required by ExtractReview and it would be complicated to do proper fix at this moment! The collector does for review instances what did https://github.com/ynput/OpenPype/pull/4383


Publisher: Keep track about current context and fix context selection widget #4892

Change selected context to current context on reset. Fix bug when context widget is re-enabled.


Scene inventory: Model refresh fix with cherry picking #4895

Fix cherry pick issue in scene inventory.


Nuke: Pre-render and missing review flag on instance causing crash #4897

If instance created in nuke was missing review flag, collector crashed.


Merged pull requests

After Effects: fix handles KeyError #4727

Sometimes when publishing with AE (we only saw this error on AE 2023), we got a KeyError for the handles in the "Collect Workfile" step. So I did get the handles from the context if ther's no handles in the asset entity.


3.15.4

Full Changelog

🆕 New features

Maya: Cant assign shaders to the ass file - OP-4859 #4460

Support AiStandIn nodes for look assignment.

Using operators we assign shaders and attribute/parameters to nodes within standins. Initially there is only support for a limited mount of attributes but we can add support as needed;

primaryVisibility
castsShadows
receiveShadows
aiSelfShadows
aiOpaque
aiMatte
aiVisibleInDiffuseTransmission
aiVisibleInSpecularTransmission
aiVisibleInVolume
aiVisibleInDiffuseReflection
aiVisibleInSpecularReflection
aiSubdivUvSmoothing
aiDispHeight
aiDispPadding
aiDispZeroValue
aiStepSize
aiVolumePadding
aiSubdivType
aiSubdivIterations

Maya: GPU cache representation #4649

Implement GPU cache for model, animation and pointcache.


Houdini: Implement review family with opengl node #3839

Implements a first pass for Reviews publishing in Houdini. Resolves #2720

Uses the opengl ROP node to produce PNG images.


Maya: Camera focal length visible in review - OP-3278 #4531

Camera focal length visible in review.

Support camera focal length in review; static and dynamic.Resolves #3220


Maya: Defining plugins to load on Maya start - OP-4994 #4714

Feature to define plugins to load on Maya launch.


Nuke, DL: Returning Suspended Publishing attribute #4715

Old Nuke Publisher's feature for suspended publishing job on render farm was added back to the current Publisher.


Settings UI: Allow setting a size hint for text fields #4821

Text entity have minimum_lines_count which allows to change minimum size hint of UI input.


TrayPublisher: Move 'BatchMovieCreator' settings to 'create' subcategory #4827

Moved settings for BatchMoviewCreator into subcategory create in settings. Changes are made to match other hosts settings chema and structure.


🚀 Enhancements

Maya looks: support for native Redshift texture format #2971

Add support for native Redshift textures handling. Closes #2599

Uses Redshift's Texture Processor executable to convert textures being used in renders to the Redshift ".rstexbin" format.


Maya: custom namespace for references #4511

Adding an option in Project Settings > Maya > Loader plugins to set custom namespace. If no namespace is set, the default one is used.

___
Maya: Set correct framerange with handles on file opening #4664

Set the range of playback from the asset data, counting handles, to get the correct data when calling the "collect_animation_data" function.


Maya: Fix camera update #4751

Fix resetting any modelPanel to a different camera when loading a camera and updating.


Maya: Remove single assembly validation for animation instances #4840

Rig groups may now be parented to others groups when includeParentHierarchy attribute on the instance is "off".


Maya: Optional control of display lights on playblast. #4145

Optional control of display lights on playblast.

Giving control to what display lights are on the playblasts.


Kitsu: note family requirements #4551

Allowing to add family requirements to IntegrateKitsuNote task status change.

Adds a Family requirements setting to Integrate Kitsu Note, so you can add requirements to determine if kitsu task status should be changed based on which families are published or not. For instance you could have the status change only if another subset than workfile is published (but workfile can still be included) by adding an item set to Not equal and workfile.


Deactivate closed Kitsu projects on OP #4619

Deactivate project on OP when the project is closed on Kitsu.


Maya: Suggestion to change capture labels. #4691

Change capture labels.


Houdini: Change node type for OpenPypeContext `null` -> `subnet` #4745

Change the node type for OpenPype's hidden context node in Houdini from null to subnet. This fixes #4734


General: Extract burnin hosts filters #4749

Removed hosts filter from ExtractBurnin plugin. Instance without representations won't cause crash but just skip the instance. We've discovered because Blender already has review but did not create burnins.


Global: Improve speed of Collect Custom Staging Directory #4768

Improve speed of Collect Custom Staging Directory.


General: Anatomy templates formatting #4773

Added option to format only single template from anatomy instead of formatting all of them all the time. Formatting of all templates is causing slowdowns e.g. during publishing of hundreds of instances.


Harmony: Handle zip files with deeper structure #4782

External Harmony zip files might contain one additional level with scene name.


Unreal: Use common logic to configure executable #4788

Unreal Editor location and version was autodetected. This easied configuration in some cases but was not flexible enought. This PR is changing the way Unreal Editor location is set, unifying it with the logic other hosts are using.


Github: Grammar tweaks + uppercase issue title #4813

Tweak some of the grammar in the issue form templates.


Houdini: Allow creation of publish instances via Houdini TAB menu #4831

Register the available Creator's as houdini tools so an artist can add publish instances via the Houdini TAB node search menu from within the network editor.


🐛 Bug fixes

Maya: Fix Collect Render for V-Ray, Redshift and Renderman for missing colorspace #4650

Fix Collect Render not working for Redshift, V-Ray and Renderman due to missing colorspace argument to RenderProduct dataclass.


Maya: Xgen fixes #4707

Fix for Xgen extraction of world parented nodes and validation for required namespace.


Maya: Fix extract review and thumbnail for Maya 2020 #4744

Fix playblasting in Maya 2020 with override viewport options enabled. Fixes #4730.


Maya: local variable 'arnold_standins' referenced before assignment - OP-5542 #4778

MayaLookAssigner erroring when MTOA is not loaded:

# Traceback (most recent call last):
#   File "\openpype\hosts\maya\tools\mayalookassigner\app.py", line 272, in on_process_selected
#     nodes = list(set(item["nodes"]).difference(arnold_standins))
# UnboundLocalError: local variable 'arnold_standins' referenced before assignment

Maya: Fix getting view and display in Maya 2020 - OP-5035 #4795

The view_transform returns a different format in Maya 2020. Fixes #4540 (hopefully).


Maya: Fix Look Maya 2020 Py2 support for Extract Look #4808

Fix Extract Look supporting python 2.7 for Maya 2020.


Maya: Fix Validate Mesh Overlapping UVs plugin #4816

Fix typo in the code where a maya command returns a list instead of str.


Maya: Fix tile rendering with Vray - OP-5566 #4832

Fixes tile rendering with Vray.


Deadline: checking existing frames fails when there is number in file name #4698

Previous implementation of validator failed on files with any other number in rendered file names.Used regular expression pattern now handles numbers in the file names (eg "Main_beauty.v001.1001.exr", "Main_beauty_v001.1001.exr", "Main_beauty.1001.1001.exr") but not numbers behind frames (eg. "Main_beauty.1001.v001.exr")


Maya: Validate Render Settings. #4735

Fixes error message when using attribute validation.


General: Hero version sites recalculation #4737

Sites recalculation in integrate hero version did expect that it is integrated exactly same amount of files as in previous integration. This is not the case in many cases, so the sites recalculation happens in a different way, first are prepared all sites from previous representation files, and all of them are added to each file in new representation.


Houdini: Fix collect current file #4739

Fixes the Workfile publishing getting added into every instance being published from Houdini


Global: Fix Extract Burnin + Colorspace functions for conflicting python environments with PYTHONHOME #4740

This fixes the running of openpype processes from e.g. a host with conflicting python versions that had PYTHONHOME said additionally to PYTHONPATH, like e.g. Houdini Py3.7 together with OpenPype Py3.9 when using Extract Burnin for a review in #3839This fix applies to Extract Burnin and some of the colorspace functions that use run_openpype_process


Harmony: render what is in timeline in Harmony locally #4741

Previously it wasn't possible to render according to what was set in Timeline in scene start/end, just by what it was set in whole timeline.This allows artist to override what is in DB with what they require (with disabled Validate Scene Settings). Now artist can extend scene by additional frames, that shouldn't be rendered, but which might be desired.Removed explicit set scene settings (eg. applying frames and resolution directly to the scene after launch), added separate menu item to allow artist to do it themselves.


Maya: Extract Review settings add Use Background Gradient #4747

Add Display Gradient Background toggle in settings to fix support for setting flat background color for reviews.


Nuke: publisher is offering review on write families on demand #4755

Original idea where reviewable toggle will be offered in publisher on demand is fixed and now review attribute can be disabled in settings.


Workfiles: keep Browse always enabled #4766

Browse might make sense even if there are no workfiles present, actually in that case it makes the most sense (eg. I want to locate workfile from outside - from Desktop for example).


Global: label key in instance data is optional #4779

Collect OTIO review plugin is not crashing if label key is missing in instance data.


Loader: Fix missing variable #4781

There is missing variable handles in loader tool after https://github.com/ynput/OpenPype/pull/4746. The variable was renamed to handles_label and is initialized to None if handles are not available.


Nuke: Workfile Template builder fixes #4783

Popup window after Nuke start is not showing. Knobs with X/Y coordination on nodes where were converted from placeholders are not added if keepPlaceholders is witched off.


Maya: Add family filter 'review' to burnin profile with focal length #4791

Avoid profile burnin with focalLength key for renders, but use only for playblast reviews.


add farm instance to the render collector in 3dsMax #4794

bug fix for the failure of submitting publish job in 3dsmax


Publisher: Plugin active attribute is respected #4798

Publisher consider plugin's active attribute, so the plugin is not processed when active is set to False. But we use the attribute in OptionalPyblishPluginMixin for different purposes, so I've added hack bypass of the active state validation when plugin inherit from the mixin. This is temporary solution which cannot be changed until all hosts use Publisher otherwise global plugins would be broken. Also plugins which have enabled set to False are filtered out -> this happened only when automated settings were applied and the settings contained "enabled" key se to False.


Nuke: settings and optional attribute in publisher for some validators #4811

New publisher is supporting optional switch for plugins which is offered in Publisher in Right panel. Some plugins were missing this switch and also settings which would offer the optionality.


Settings: Version settings popup fix #4822

Version completer popup have issues on some platforms, this should fix those edge cases. Also fixed issue when completer stayed shown fater reset (save).


Hiero/Nuke: adding monitorOut key to settings #4826

New versions of Hiero were introduced with new colorspace property for Monitor Out. It have been added into project settings. Also added new config names into settings enumerator option.


Nuke: removed default workfile template builder preset #4835

Default for workfile template builder should have been empty.


TVPaint: Review can be made from any instance #4843

Add "review" tag to output of extract sequence if instance is marked for review. At this moment only instances with family "review" were able to define input for ExtractReview plugin which is not right.


🔀 Refactored code

Deadline: Remove unused FramesPerTask job info submission #4657

Remove unused FramesPerTask job info submission to Deadline.


Maya: Remove pymel dependency #4724

Refactors code written using pymel to use standard maya python libraries instead like maya.cmds or maya.api.OpenMaya


Remove "preview" data from representation #4759

Remove "preview" data from representation


Maya: Collect Review cleanup code for attached subsets #4720

Refactor some code for Maya: Collect Review for attached subsets.


Refactor: Remove `handles`, `edit_in` and `edit_out` backwards compatibility #4746

Removes backward compatibiliy fallback for data called handles, edit_in and edit_out.


📃 Documentation

Bump webpack from 5.69.1 to 5.76.1 in /website #4624

Bumps webpack from 5.69.1 to 5.76.1.

Release notes

Sourced from webpack's releases.

v5.76.1

Fixed

  • Added assert/strict built-in to NodeTargetPlugin

Revert

v5.76.0

Bugfixes

Features

Security

Repo Changes

New Contributors

Full Changelog: https://github.com/webpack/webpack/compare/v5.75.0...v5.76.0

v5.75.0

Bugfixes

  • experiments.* normalize to false when opt-out
  • avoid NaN%
  • show the correct error when using a conflicting chunk name in code
  • HMR code tests existance of window before trying to access it
  • fix eval-nosources-* actually exclude sources
  • fix race condition where no module is returned from processing module
  • fix position of standalong semicolon in runtime code

Features

  • add support for @import to extenal CSS when using experimental CSS in node

... (truncated)

Commits
  • 21be52b Merge pull request #16804 from webpack/chore-patch-release
  • 1cce945 chore(release): 5.76.1
  • e76ad9e Merge pull request #16803 from ryanwilsonperkin/revert-16759-real-content-has...
  • 52b1b0e Revert "Improve performance of hashRegExp lookup"
  • c989143 Merge pull request #16766 from piranna/patch-1
  • 710eaf4 Merge pull request #16789 from dmichon-msft/contenthash-hashsalt
  • 5d64468 Merge pull request #16792 from webpack/update-version
  • 67af5ec chore(release): 5.76.0
  • 97b1718 Merge pull request #16781 from askoufis/loader-context-target-type
  • b84efe6 Merge pull request #16759 from ryanwilsonperkin/real-content-hash-regex-perf
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by evilebottnawi, a new releaser for webpack since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

___
Documentation: Add Extract Burnin documentation #4765

Add documentation for Extract Burnin global plugin settings.


Documentation: Move publisher related tips to publisher area #4772

Move publisher related tips for After Effects artist documentation to the correct position.


Documentation: Add extra terminology to the key concepts glossary #4838

Tweak some of the key concepts in the documentation.


Merged pull requests

Maya: Refactor Extract Look with dedicated processors for maketx #4711

Refactor Maya extract look to fix some issues:

  • Allow Extraction with maketx with OCIO Color Management enabled in Maya.
  • Fix file hashing so it includes arguments to maketx, so that when arguments change it correctly generates a new hash
  • Fix maketx destination colorspace when OCIO is enabled
  • Use pre-collected colorspaces of the resources instead of trying to retrieve again in Extract Look
  • Fix colorspace attributes being reinterpreted by maya on export (fix remapping) - goal is to resolve #2337
  • Fix support for checking config path of maya default OCIO config (due to using lib.get_color_management_preferences which remaps that path)
  • Merged in #2971 to refactor MakeTX into TextureProcessor and also support generating Redshift .rstexbin files. - goal is to resolve #2599
  • Allow custom arguments to maketx from OpenPype Settings like mentioned here by @fabiaserra for arguments like: --monochrome-detect, --opaque-detect, --checknan.
  • Actually fix the code and make it work. :) (I'll try to keep below checkboxes in sync with my code changes)
  • Publishing without texture processor should work (no maketx + no rstexbin)
  • Publishing with maketx should work
  • Publishing with rstexbin should work
  • Test it. (This is just me doing some test-runs, please still test the PR!)

Maya template builder load all assets linked to the shot #4761

Problem All the assets of the ftrack project are loaded and not those linked to the shot

How get error Open maya in the context of shot, then build a new scene with the "Build Workfile from template" button in "OpenPype" menu. image


Global: Do not force instance data with frame ranges of the asset #4383

This aims to resolve #4317

___
Cosmetics: Fix some grammar in docstrings and messages (and some code) #4752

Tweak some grammar in codebase


Deadline: Submit publish job fails due root work hardcode - OP-5528 #4775

Generating config templates was hardcoded to root[work]. This PR fixes that.


CreateContext: Added option to remove Unknown attributes #4776

Added option to remove attributes with UnkownAttrDef on instances. Pop of key will also remove the attribute definition from attribute values, so they're not recreated again.


3.15.3

Full Changelog

🆕 New features

Blender: Extract Review #3616

Added Review to Blender.

This implementation is based on #3508 but made compatible for the current implementation of OpenPype for Blender.


Data Exchanges: Point Cloud for 3dsMax #4532

Publish PRT format with tyFlow in 3dsmax

Publish PRT format with tyFlow in 3dsmax and possibly set up loader to load the format too.

  • creator
  • extractor
  • validator
  • loader

Global: persistent staging directory for renders #4583

Allows configure if staging directory (stagingDir) should be persistent with use of profiles.

With this feature, users can specify a transient data folder path based on presets, which can be used during the creation and publishing stages. In some cases, these DCCs automatically add a rendering path during the creation stage, which is then used in publishing.One of the key advantages of this feature is that it allows users to take advantage of faster storages for rendering, which can help improve workflow efficiency. Additionally, this feature allows users to keep their rendered data persistent, and use their own infrastructure for regular cleaning.However, it should be noted that some productions may want to use this feature without persistency. Furthermore, there may be a need for retargeting the rendering folder to faster storages, which is also not supported at the moment.It is studio responsibility to clean up obsolete folders with data.Location of the folder is configured in project_anatomy/templates/others. ('transient' key is expected, with 'folder' key, could be more templates)Which family/task type/subset is applicable is configured in:project_settings/global/tools/publish/transient_dir_profiles


Kitsu custom comment template #4599

Kitsu allows to write markdown in its comment field. This can be something very powerful to deliver dynamic comments with the help the data from the instance.This feature is defaults to off so the admin have to manually set up the comment field the way they want.I have added a basic example on how the comment can look like as the comment-fields default value.To this I want to add some documentation also but that's on its way when the code itself looks good for the reviewers.


MaxScene Family #4615

Introduction of the Max Scene Family


🚀 Enhancements

Maya: Multiple values on single render attribute - OP-4131 #4631

When validating render attributes, this adds support for multiple values. When repairing first value in list is used.


Maya: enable 2D Pan/Zoom for playblasts - OP-5213 #4687

Setting for enabling 2D Pan/Zoom on reviews.


Copy existing or generate new Fusion profile on prelaunch #4572

Fusion preferences will be copied to the predefined ~/.openpype/hosts/fusion/prefs folder (or any other folder set in system settings) on launch.

The idea is to create a copy of existing Fusion profile, adding an OpenPype menu to the Fusion instance.By default the copy setting is turned off, so no file copying is performed. Instead the clean Fusion profile is created by Fusion in the predefined folder. The default locaion is set to ~/.openpype/hosts/fusion/prefs, to better comply with the other os platforms. After creating the default profile, some modifications are applied:

  • forced Python3
  • forced English interface
  • setup Openpype specific path maps.If the copy_prefs checkbox is toggled, a copy of existing Fusion profile folder will be placed in the mentioned location. Then they are altered the same way as described above. The operation is run only once, on the first launch, unless the force_sync [Resync profile on each launch] is toggled.English interface is forced because the FUSION16_PROFILE_DIR environment variable is not read otherwise (seems to be a Fusion bug).

Houdini: Create button open new publisher's "create" tab #4601

During a talk with @maxpareschi he mentioned that the new publisher in Houdini felt super confusing due to "Create" going to the older creator but now being completely empty and the publish button directly went to the publish tab.This resolves that by fixing the Create button to now open the new publisher but on the Create tab.Also made publish button enforce going to the "publish" tab for consistency in usage.@antirotor I think changing the Create button's callback was just missed in this commit or was there a specific reason to not change that around yet?


Clockify: refresh and fix the integration #4607

Due to recent API changes, Clockify requires user_id to operate with the timers. I updated this part and currently it is a WIP for making it fully functional. Most functions, such as start and stop timer, and projects sync are currently working. For the rate limiting task new dependency is added: https://pypi.org/project/ratelimiter/


Fusion publish existing frames #4611

This PR adds the function to publish existing frames instead of having to re-render all of them for each new publish.I have split the render_locally plugin so the review-part is its own plugin now.I also change the saver-creator-plugin's label from Saver to Render (saver) as I intend to add a Prerender creator like in Nuke.


Resolution settings referenced from DB record for 3dsMax #4652
  • Add Callback for setting the resolution according to DB after the new scene is created.
  • Add a new Action into openpype menu which allows the user to reset the resolution in 3dsMax

3dsmax: render instance settings in Publish tab #4658

Allows user preset the pools, group and use_published settings in Render Creator in the Max Hosts.User can set the settings before or after creating instance in the new publisher


scene length setting referenced from DB record for 3dsMax #4665

Setting the timeline length based on DB record in 3dsMax Hosts


Publisher: Windows reduce command window pop-ups during Publishing #4672

Reduce the command line pop-ups that show on Windows during publishing.


Publisher: Explicit save #4676

Publisher have explicit button to save changes, so reset can happen without saving any changes. Save still happens automatically when publishing is started or on publisher window close. But a popup is shown if context of host has changed. Important context was enhanced by workfile path (if host integration supports it) so workfile changes are captured too. In that case a dialog with confirmation is shown to user. All callbacks that may require save of context were moved to main window to be able handle dialog show at one place. Save changes now returns success so the rest of logic is skipped -> publishing won't start, when save of instances fails.Save and reset buttons have shortcuts (Ctrl + s and Ctrls + r).


CelAction: conditional workfile parameters from settings #4677

Since some productions were requesting excluding some workfile parameters from publishing submission, we needed to move them to settings so those could be altered per project.


Improve logging of used app + tool envs on application launch #4682

Improve logging of what apps + tool environments got loaded for an application launch.


Fix name and docstring for Create Workdir Extra Folders prelaunch hook #4683

Fix class name and docstring for Create Workdir Extra Folders prelaunch hookThe class name and docstring were originally copied from another plug-in and didn't match the plug-in logic.This also fixes potentially seeing this twice in your logs. Before:After:Where it was actually running both this prelaunch hook and the actual AddLastWorkfileToLaunchArgs plugin.


Application launch context: Include app group name in logger #4684

Clarify in logs better what app group the ApplicationLaunchContext belongs to and what application is being launched.Before:After:


increment workfile version 3dsmax #4685

increment workfile version in 3dsmax as if in blender and maya hosts.


🐛 Bug fixes

Maya: Fix getting non-active model panel. #2968

When capturing multiple cameras with image planes that have file sequences playing, only the active (first) camera will play through the file sequence.

___
Maya: Fix broken review publishing. #4549

Resolves #4547

___
Maya: Avoid error on right click in Loader if `mtoa` is not loaded #4616

Fix an error on right clicking in the Loader when mtoa is not a loaded plug-in.Additionally if mtoa isn't loaded the loader will now load the plug-in before trying to create the arnold standin.


Maya: Fix extract look colorspace detection #4618

Fix the logic which guesses the colorspace using arnold python library.

  • Previously it'd error if mtoa was not available on path so it still required mtoa to be available.
  • The guessing colorspace logic doesn't actually require mtoa to be loaded, but just the arnold python library to be available. This changes the logic so it doesn't require the mtoa plugin to get loaded to guess the colorspace.
  • The if/else branch was likely not doing what was intended cmds.loadPlugin("mtoa", quiet=True) returns None if the plug-in was already loaded. So this would only ever be true if it ends up loading the mtoa plugin the first time.
# Tested in Maya 2022.1
print(cmds.loadPlugin("mtoa", quiet=True))
# ['mtoa']
print(cmds.loadPlugin("mtoa", quiet=True))
# None

Maya: Maya Playblast Options overrides - OP-3847 #4634

When publishing a review in Maya, the extractor would fail due to wrong (long) panel name.


Bugfix/op 2834 fix extract playblast #4701

Paragraphs contain detailed information on the changes made to the product or service, providing an in-depth description of the updates and enhancements. They can be used to explain the reasoning behind the changes, or to highlight the importance of the new features. Paragraphs can often include links to further information or support documentation.


Bugfix/op 2834 fix extract playblast #4704

Paragraphs contain detailed information on the changes made to the product or service, providing an in-depth description of the updates and enhancements. They can be used to explain the reasoning behind the changes, or to highlight the importance of the new features. Paragraphs can often include links to further information or support documentation.


Maya: bug fix for passing zoom settings if review is attached to subset #4716

Fix for attaching review to subset with pan/zoom option.


Maya: tile assembly fail in draft - OP-4820 #4416

Tile assembly in Deadline was broken.

Initial bug report revealed other areas of the tile assembly that needed fixing.


Maya: Yeti Validate Rig Input - OP-3454 #4554

Fix Yeti Validate Rig Input

Existing workflow was broken due to this #3297.


Scene inventory: Fix code errors when "not found" entries are found #4594

Whenever a "NOT FOUND" entry is present a lot of errors happened in the Scene Inventory:

  • It started spamming a lot of errors for the VersionDelegate since it had no numeric version (no version at all).Error reported on Discord:
Traceback (most recent call last):
  File "C:\Users\videopro\Documents\github\OpenPype\openpype\tools\utils\delegates.py", line 65, in paint
    text = self.displayText(
  File "C:\Users\videopro\Documents\github\OpenPype\openpype\tools\utils\delegates.py", line 33, in displayText
    assert isinstance(value, numbers.Integral), (
AssertionError: Version is not integer. "None" <class 'NoneType'>
  • Right click menu would error on NOT FOUND entries, and thus not show. With this PR it will now disregard not found items for "Set version" and "Remove" but still allow actions.This PR resolves those.

Kitsu: Sync OP with zou, make sure value-data is int or float #4596

Currently the data zou pulls is a string and not a value causing some bugs in the pipe where a value is expected (like Set frame range in Fusion).

This PR makes sure each value is set with int() or float() so these bugs can't happen later on.

(A request to cgwire has also bin sent to allow force values only for some metadata columns, but currently the user can enter what ever they want in there)


Max: fix the bug of removing an instance #4617

fix the bug of removing an instance in 3dsMax


Global | Nuke: fixing farm publishing workflow #4623

After Nuke had adopted new publisher with new creators new issues were introduced. Those issues were addressed with this PR. Those are for example broken reviewable video files publishing if published via farm. Also fixed local publishing.


Ftrack: Ftrack additional families filtering #4633

Ftrack family collector makes sure the subset family is also in instance families for additional families filtering.


Ftrack: Hierarchical <> Non-Hierarchical attributes sync fix #4635

Sync between hierarchical and non-hierarchical attributes should be fixed and work as expected. Action should sync the values as expected and event handler should do it too and only on newly created entities.


bugfix for 3dsmax publishing error #4637

fix the bug of failing publishing job in 3dsMax


General: Use right validation for ffmpeg executable #4640

Use ffmpeg exec validation for ffmpeg executables instead of oiio exec validation. The validation is used as last possible source of ffmpeg from PATH environment variables, which is an edge case but can cause issues.


3dsmax: opening last workfile #4644

Supports opening last saved workfile in 3dsmax host.


Fixed a bug where a QThread in the splash screen could be destroyed before finishing execution #4647

This should fix the occasional behavior of the QThread being destroyed before even its worker returns from the run() function.After quiting, it should wait for the QThread object to properly close itself.


General: Use right plugin class for Collect Comment #4653

Collect Comment plugin is instance plugin so should inherit from InstancePlugin instead of ContextPlugin.


Global: add tags field to thumbnail representation #4660

Thumbnail representation might be missing tags field.


Integrator: Enforce unique destination transfers, disallow overwrites in queued transfers #4662

Fix #4656 by enforcing unique destination transfers in the Integrator. It's now disallowed to a destination in the file transaction queue with a new source path during the publish.


Hiero: Creator with correct workfile numeric padding input #4666

Creator was showing 99 in workfile input for long time, even if users set default value to 1001 in studio settings. This has been fixed now.


Nuke: Nukenodes family instance without frame range #4669

No need to add frame range data into nukenodes (backdrop) family publishes - since those are timeless.


TVPaint: Optional Validation plugins can be de/activated by user #4674

Added OptionalPyblishPluginMixin to TVpaint plugins that can be optional.


Kitsu: Slightly less strict with instance data #4678
  • Allow to take task name from context if asset doesn't have any. Fixes an issue with Photoshop's review instance not having task in data.
  • Allow to match "review" against both instance.data["family"] and instance.data["families"] because some instances don't have the primary family in families, e.g. in Photoshop and TVPaint.
  • Do not error on Integrate Kitsu Review whenever for whatever reason Integrate Kitsu Note did not created a comment but just log the message that it was unable to connect a review.

Publisher: Fix reset shortcut sequence #4694

Fix bug created in https://github.com/ynput/OpenPype/pull/4676 where key sequence is checked using unsupported method. The check was changed to convert event into QKeySequence object which can be compared to prepared sequence.


Refactor _capture #4702

Paragraphs contain detailed information on the changes made to the product or service, providing an in-depth description of the updates and enhancements. They can be used to explain the reasoning behind the changes, or to highlight the importance of the new features. Paragraphs can often include links to further information or support documentation.


Hiero: correct container colors if UpToDate #4708

Colors on loaded containers are now correctly identifying real state of version. Red for out of date and green for up to date.


🔀 Refactored code

Look Assigner: Move Look Assigner tool since it's Maya only #4604

Fix #4357: Move Look Assigner tool to maya since it's Maya only


Maya: Remove unused functions from Extract Look #4671

Remove unused functions from Maya Extract Look plug-in


Extract Review code refactor #3930

Trying to reduce complexity of Extract Review plug-in

  • Re-use profile filtering from lib
  • Remove "combination families" additional filtering which supposedly was from OP v2
  • Simplify 'formatting' for filling gaps
  • Use legacy_io.Session over os.environ
___
Maya: Replace last usages of Qt module #4610

Replace last usage of Qt module with qtpy. This change is needed for PySide6 support. All changes happened in Maya loader plugins.


Update tests and documentation for `ColormanagedPyblishPluginMixin` #4612

Refactor ExtractorColormanaged to ColormanagedPyblishPluginMixin in tests and documentation.


Improve logging of used app + tool envs on application launch (minor tweak) #4686

Use app.full_name for change done in #4682


📃 Documentation

Docs/add architecture document #4344

Add ARCHITECTURE.md document.

his document attemps to give a quick overview of the project to help onboarding, it's not an extensive documentation but more of a elevator pitch one-line descriptions of files/directories and what the attempt to do.


Documentation: Tweak grammar and fix some typos #4613

This resolves some grammar and typos in the documentation.Also fixes the extension of some images in after effects docs which used uppercase extension even though files were lowercase extension.


Docs: Fix some minor grammar/typos #4680

Typo/grammar fixes in documentation.


Merged pull requests

Maya: Implement image file node loader #4313

Implements a loader for loading texture image into a file node in Maya.

Similar to Maya's hypershade creation of textures on load you have the option to choose for three modes of creating:

  • Texture
  • Projection
  • StencilThese should match what Maya generates if you create those in Maya.
  • Load and manage file nodes
  • Apply color spaces after #4195
  • Support for either UDIM or image sequence - currently it seems to always load sequences as UDIM automatically.
  • Add support for animation sequences of UDIM textures using the <f>.<udim>.exr path format?

Maya Look Assigner: Don't rely on containers for get all assets #4600

This resolves #4044 by not actually relying on containers in the scene but instead just rely on finding nodes with cbId attributes. As such, imported nodes would also be found and a shader can be assigned (similar to when using get from selection).Please take into consideration the potential downsides belowPotential downsides would be:

  • IF an already loaded look has any dagNodes, say a 3D Projection node - then that will also show up as a loaded asset where previously nodes from loaded looks were ignored.
  • If any dag nodes were created locally - they would have gotten cbId attributes on scene save and thus the current asset would almost always show?

Maya: Unify menu labels for "Set Frame Range" and "Set Resolution" #4605

Fix #4109: Unify menu labels for "Set Frame Range" and "Set Resolution"This also tweaks it in Houdini from Reset Frame Range to Set Frame Range.


Resolve missing OPENPYPE_MONGO in deadline global job preload #4484

In the GlobalJobPreLoad plugin, we propose to replace the SpawnProcess by a sub-process and to pass the environment variables in the parameters, since the SpawnProcess under Centos Linux does not pass the environment variables.

In the GlobalJobPreLoad plugin, the Deadline SpawnProcess is used to start the OpenPype process. The problem is that the SpawnProcess does not pass environment variables, including OPENPYPE_MONGO, to the process when it is under Centos7 linux, and the process gets stuck. We propose to replace it by a subprocess and to pass the variable in the parameters.


Tests: Added setup_only to tests #4591

Allows to download test zip, unzip and restore DB in preparation for new test.


Maya: Arnold don't reset maya timeline frame range on render creation (or setting render settings) #4603

Fix #4429: Do not reset fps or playback timeline on applying or creating render settings


Bump @sideway/formula from 3.0.0 to 3.0.1 in /website #4609

Bumps @sideway/formula from 3.0.0 to 3.0.1.

Commits
Maintainer changes

This version was pushed to npm by marsup, a new releaser for @sideway/formula since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

___
Update artist_hosts_maya_arnold.md #4626

Correct Arnold docs.


Maya: Add "Include Parent Hierarchy" option in animation creator plugin #4645

Add an option in Project Settings > Maya > Creator Plugins > Create Animation to include (or not) parent hierarchy. This is to avoid artists to check manually the option for all create animation.


General: Filter available applications #4667

Added option to filter applications that don't have valid executable available in settings in launcher and ftrack actions. This option can be disabled in new settings category Applications. The filtering is by default disabled.


3dsmax: make sure that startup script executes #4695

Fixing reliability of OpenPype startup in 3dsmax.


Project Manager: Change minimum frame start/end to '0' #4719

Project manager can have frame start/end set to 0.


3.15.2

Full Changelog

🆕 New features

maya gltf texture convertor and validator #4261

Continuity of the gltf extractor implementation

Continuity of the gltf extractor https://github.com/pypeclub/OpenPype/pull/4192UPDATE:Validator for GLSL Shader: Validate whether the mesh uses GLSL Shader. If not it will error out. The user can choose to perform the repair action and it will help to assign glsl shader. If the mesh with Stringray PBS, the repair action will also check to see if there is any linked texture such as Color, Occulsion, and Normal Map. If yes, it will help to relink the related textures to the glsl shader.*****If the mesh uses the PBS Shader,


Unreal: New Publisher #4370

Implementation of the new publisher for Unreal.

The implementation of the new publisher for Unreal. This PR includes the changes for all the existing creators to be compatible with the new publisher.The basic creator has been split in two distinct creators:

  • UnrealAssetCreator, works with assets in the Content Browser.
  • UnrealActorCreator that works with actors in the scene.

Implementation of a new splash screen #4592

Implemented a new splash screen widget to reflect a process running in the background. This widget can be used for other tasks than UE. Also fixed the compilation error of the AssetContainer.cpp when trying to build the plugin in UE 5.0


Deadline for 3dsMax #4439

Setting up deadline for 3dsmax

Setting up deadline for 3dsmax by setting render outputs and viewport camera


Nuke: adding nukeassist #4494

Adding support for NukeAssist

For support of NukeAssist we had to limit some Nuke features since NukeAssist itself Nuke with limitations. We do not support Creator and Publisher. User can only Load versions with version control. User can also set Framerange and Colorspace.


🚀 Enhancements

Maya: OP-2630 acescg maya #4340

Resolves #2712

___
Default Ftrack Family on RenderLayer #4458

With default settings, renderlayers in Maya were not being tagged with the Ftrack family leading to confusion when doing reviews.

___
Maya: Maya Playblast Options - OP-3783 #4487

Replacement PR for #3912. Adds more options for playblasts to preferences/settings.

Adds the following as options in generating playblasts, matching viewport settings.

  • Use default material
  • Wireframe on shaded
  • X-ray
  • X-ray Joints
  • X-ray active component

Maya: Passing custom attributes to alembic - OP-4111 #4516

Passing custom attributes to alembic

This PR makes it possible to pass all user defined attributes along to the alembic representation.


Maya: Options for VrayProxy output - OP-2010 #4525

Options for output of VrayProxy.

Client requested more granular control of output from VrayProxy instance. Exposed options on the instance and settings for vrmesh and alembic.


Maya: Validate missing instance attributes #4559

Validate missing instance attributes.

New attributes can be introduced as new features come in. Old instances will need to be updated with these attributes for the documentation to make sense, and users do not have to recreate the instances.


Refactored Generation of UE Projects, installation of plugins moved to the engine #4369

Improved the way how OpenPype works with generation of UE projects. Also the installation of the plugin has been altered to install into the engine

OpenPype now uses the appropriate tools to generate UE projects. Unreal Build Tool (UBT) and a "Commandlet Project" is needed to properly generate a BP project, or C++ code in case that dev_mode = True, folders, the .uproject file and many other resources.On the plugin's side, it is built seperately with the UnrealAutomationTool (UAT) and then it's contents are moved under the Engine/Plugins/Marketplace/OpenPype directory.


Unreal: Use client functions in Layout loader #4578

Use 'get_representations' instead of 'legacy_io' query in layout loader.

This is removing usage of find_one called on legacy_io and use rather client functions as preparation for AYON connection. Also all representations are queried at once instead of one by one.


General: Support for extensions filtering in loaders #4492

Added extensions filtering support to loader plugins.

To avoid possible backwards compatibility break is filtering exactly the same and filtering by extensions is enabled only if class attribute 'extensions' is set.


Nuke: multiple reformat in baking review profiles #4514

Added support for multiple reformat nodes in baking profiles.

Old settings for single reformat node is supported and prioritised just in case studios are using it and backward compatibility is needed. Warnings in Nuke terminal are notifying users to switch settings to new workflow. Settings are also explaining the migration way.


Nuke: Add option to use new creating system in workfile template builder #4545

Nuke workfile template builder can use new creators instead of legacy creators.

Modified workfile template builder to have option to say if legacy creators should be used or new creators. Legacy creators are disabled by default, so Maya has changed the value.


Global, Nuke: Workfile first version with template processing #4579

Supporting new template workfile builder with toggle for creation of first version of workfile in case there is none yet.

___
Fusion: New Publisher #4523

This is an updated PR for @BigRoy 's old PR (https://github.com/ynput/OpenPype/pull/3892).I have merged it with code from OP 3.15.1-nightly.6 and made sure it works as expected.This converts the old publishing system to the new one. It implements Fusion as a new host addon.

- Create button removed in OpenPype menu in favor of the new Publisher - Draft refactor validations to raise PublishValidationError - Implement Creator for New Publisher - Implement Fusion as Host addon
TVPaint: Use Publisher tool #4471

Use Publisher tool and new creation system in TVPaint integration.

Using new creation system makes TVPaint integration a little bit easier to maintain for artists. Removed unneeded tools Creator and Subset Manager tools. Goal is to keep the integration work as close as possible to previous integration. Some changes were made but primarilly because they were not right using previous system.All creators create instance with final family instead of changing the family during extraction. Render passes are not related to group id but to render layer instance. Render layer is still related to group. Workfile, review and scene render instances are created using autocreators instead of auto-collection during publishing. Subset names are fully filled during publishing but instance labels are filled on refresh with the last known right value. Implemented basic of legacy convertor which should convert render layers and render passes.


TVPaint: Auto-detect render creation #4496

Create plugin which will create Render Layer and Render Pass instances based on information in the scene.

Added new creator that must be triggered by artist. The create plugin will first create Render Layer instances if were not created yet. For variant is used color group name. The creator has option to rename color groups by template defined in settings -> Template may use index of group by it's usage in scene (from bottom to top). After Render Layers will create Render Passes. Render Pass is created for each individual TVPaint layer in any group that had created Render Layer. It's name is used as variant (pass).


TVPaint: Small enhancements #4501

Small enhancements in TVPaint integration which did not get to https://github.com/ynput/OpenPype/pull/4471.

It was found out that opacity returned from tv_layerinfo is always empty and is dangerous to add it to layer information. Added information about "current" layer to layers information. Disable review of Render Layer and Render Pass instances by default. In most of productions is used only "scene review". Skip usage of "enabled" key from settings in automated layer/pass creation.


Global: color v3 global oiio transcoder plugin #4291

Implements possibility to use oiiotool to transcode image sequences from one color space to another(s).

Uses collected colorspaceData information about source color spaces, these information needs to be collected previously in each DCC interested in color management.Uses profiles configured in Settings to create single or multiple new representations (and file extensions) with different color spaces.New representations might replace existing one, each new representation might contain different tags and custom tags to control its integration step.


Deadline: Added support for multiple install dirs in Deadline #4451

SearchDirectoryList returns FIRST existing so if you would have multiple OP install dirs, it won't search for appropriate version in later ones.

___
Ftrack: Upload reviewables with original name #4483

Ftrack can integrate reviewables with original filenames.

As ftrack have restrictions about names of components the only way how to achieve the result was to upload the same file twice, one with required name and one with origin name.


TVPaint: Ignore transparency in Render Pass #4499

It is possible to ignore layers transparency during Render Pass extraction.

Render pass extraction does not respect opacity of TVPaint layers set in scene during extraction. It can be enabled/disabled in settings.


Anatomy: Preparation for different root overrides #4521

Prepare Anatomy to handle only 'studio' site override on it's own.

Change how Anatomy fill root overrides based on requested site name. The logic which decide what is active site was moved to sync server addon and the same for receiving root overrides of local site. The Anatomy resolve only studio site overrides anything else is handled by sync server. BaseAnatomy only expect root overrides value and does not need site name. Validation of site name happens in sync server same as resolving if site name is local or not.


Nuke | Global: colormanaged plugin in collection #4556

Colormanaged extractor had changed to Mixin class so it can be added to any stage of publishing rather then just to Exctracting.Nuke is no collecting colorspaceData to representation collected on already rendered images.

Mixin class can no be used as secondary parent in publishing plugins.


🐛 Bug fixes

look publishing and srgb colorspace in maya #4276

Check the OCIO color management is enabled before doing linearize colorspace for converting the texture maps into tx files.

Check whether the OCIO color management is enabled before the condition of converting the texture to tx extension.


Maya: extract Thumbnail "No active model panel found" - OP-3849 #4421

Error when extracting playblast with no model panel.

If project_settings/maya/publish/ExtractPlayblast/capture_preset/Viewport Options/override_viewport_options were off and publishing without showing any model panel, the extraction would fail.


Maya: Fix setting scene fps with float input #4488

Returned value of float fps on integer values would return float.

This PR fixes the case when switching between integer fps values for example 24 > 25. Issue was when setting the scene fps, the original float value was used which makes it unpredictable whether the value is float or integer when mapping the fps values.


Maya: Multipart fix #4497

Fix multipart logic in render products.

Each renderer has a different way of defining whether output images is multipart, so we need to define it for each renderer. Also before the multipart class variable was defined multiple times in several places, which made it tricky to debug where multipart was defined. Now its created on initialization and referenced as self.multipart


Maya: Set pool on tile assembly - OP-2012 #4520

Set pool on tile assembly

Pool for publishing and tiling jobs, need to use the settings (project_settings/deadline/publish/ProcessSubmittedJobOnFarm/deadline_pool) else fallback on primary pool (project_settings/deadline/publish/CollectDeadlinePools/primary_pool)


Maya: Extract review with handles #4527

Review was not extracting properly with/without handles.

Review instance was not created properly resulting in the frame range on the instance including handles.


Maya: Fix broken lib. #4529

Fix broken lib.

This commit from this PR broke the Maya lib module.


Maya: Validate model name - OP-4983 #4539

Validate model name issues.

Couple of issues with validate model name;

  • missing platform extraction from settings
  • map function should be list comprehension
  • code cosmetics

Maya: SkeletalMesh family loadable as reference #4573

In Maya, fix the SkeletalMesh family not loadable as reference.

___
Unreal: fix loaders because of missing AssetContainer #4536

Fixing Unreal loaders, where changes in OpenPype Unreal integration plugin deleted AssetContainer.

AssetContainer and AssetContainerFactory are still used to mark loaded instances. Because of optimizations in Integration plugin we've accidentally removed them but that broke loader.


3dsmax unable to delete loaded asset in the scene inventory #4507

Fix the bug of being unable to delete loaded asset in the Scene Inventory

Fix the bug of being unable to delete loaded asset in the Scene Inventory


Hiero/Nuke: originalBasename editorial publishing and loading #4453

Publishing and loading originalBasename is working as expected

Frame-ranges on version document is now correctly defined to fit original media frame range which is published. It means loading is now correctly identifying frame start and end on clip loader in Nuke.


Nuke: Fix workfile template placeholder creation #4512

Template placeholder creation was erroring out in Nuke due to the Workfile template builder not being able to find any of the plugins for the Nuke host.

Move get_workfile_build_placeholder_plugins function to NukeHost class as workfile template builder expects.


Nuke: creator farm attributes from deadline submit plugin settings #4519

Defaults in farm attributes are sourced from settings.

Settings for deadline nuke submitter are now used during nuke render and prerender creator plugins.


Nuke: fix clip sequence loading #4574

Nuke is loading correctly clip from image sequence created without "{originalBasename}" token in anatomy template.

___
Fusion: Fix files collection and small bug-fixes #4423

Fixed Fusion review-representation and small bug-fixes

This fixes the problem with review-file generation that stopped the publishing on second publish before the fix.The problem was that Fusion simply looked at all the files in the render-folder instead of only gathering the needed frames for the review.Also includes a fix to get the handle start/end that before throw an error if the data didn't exist (like from a kitsu sync).


Fusion: Updated render_local.py to not only process the first instance #4522

Moved the __hasRun to render_once() so the check only happens with the rendering. Currently only the first render node gets the representations added.Critical PR


Fusion: Load sequence fix filepath resolving from representation #4580

Resolves issue mentioned on discord by @movalex:The loader was incorrectly trying to find the file in the publish folder which resulted in just picking 'any first file'.

This gets the filepath from representation instead of taking the first file from listing files from publish folder.


Fusion: Fix review burnin start and end frame #4590

Fix the burnin start and end frame for reviews. Without this the asset document's start and end handle would've been added to the burnin frame range even though that would've been incorrect since the handles are based on the comp saver's render range instead.


Harmony: missing set of frame range when opening scene #4485

Frame range gets set from DB everytime scene is opened.

Added also check for not up-to-date loaded containers.


Photoshop: context is not changed in publisher #4570

When PS is already open and artists launch new task, it should keep only opened PS open, but change context.

Problem were occurring in Workfile app where under new task files from old task were shown. This fixes this and adds opening of last workfile for new context if workfile exists.


hiero: fix effect item node class #4543

Collected effect name after renaming is saving correct class name.

___
Bugfix/OP-4616 vray multipart #4297

This fixes a bug where multipart vray renders would not make a review in Ftrack.

___
Maya: Fix changed location of reset_frame_range #4491

Location in commands caused cyclic import

___
global: source template fixed frame duplication #4503

Duplication is not happening.

Template is using originalBasename which already assume all necessary elements are part of the file name so there was no need for additional optional name elements.


Deadline: Hint to use Python 3 #4518

Added shebank to give deadline hint which python should be used.

Deadline has issues with Python 2 (especially with os.scandir). When a shebank is added to file header deadline will use python 3 mode instead of python 2 which fix the issue.


Publisher: Prevent access to create tab after publish start #4528

Prevent access to create tab after publish start.

Disable create button in instance view on publish start and enable it again on reset. Even with that make sure that it is not possible to go to create tab if the tab is disabled.


Color Transcoding: store target_colorspace as new colorspace #4544

When transcoding into new colorspace, representation must carry this information instead original color space.

___
Deadline: fix submit_publish_job #4552

Fix submit_publish_job

Resolves #4541


Kitsu: Fix task itteration in update-op-with-zou #4577

From the last PR (https://github.com/ynput/OpenPype/pull/4425) a comment-commit last second messed up the code and resulted in two lines being the same, crashing the script. This PR fixes that.


AttrDefs: Fix type for PySide6 #4584

Use right type in signal emit for value change of attribute definitions.

Changed UUID type to str. This is not an issue with PySide2 but it is with PySide6.


🔀 Refactored code

Scene Inventory: Avoid using ObjectId #4524

Avoid using conversion to ObjectId type in scene inventory tool.

Preparation for AYON compatibility where ObjectId won't be used for ids. Representation ids from loaded containers are not converted to ObjectId but kept as strings which also required some changes when working with representation documents.


Merged pull requests

SiteSync: host dirmap is not working properly #4563

If artists uses SiteSync with real remote (gdrive, dropbox, sftp) drive, Local Settings were throwing error string indices must be integers.

Logic was reworked to provide only local_drive values to be overrriden by Local Settings. If remote site is gdrive etc. mapping to studio is provided as it is expected that workfiles will have imported from studio location and not from gdrive folder.Also Nuke dirmap was reworked to be less verbose and much faster.


General: Input representation ids are not ObjectIds #4576

Don't use ObjectId as representation ids during publishing.

Representation ids are kept as strings during publishing instead of converting them to ObjectId. This change is pre-requirement for AYON connection.Inputs are used for integration of links and for farm publishing (or at least it looks like).


Shotgrid: Fixes on Deadline submissions #4498

A few other bug fixes for getting Nuke submission to Deadline work smoothly using Shotgrid integration.

Continuing on the work done on this other PR this fixes a few other bugs I came across with further tests.


Fusion: New Publisher #3892

This converts the old publishing system to the new one. It implements Fusion as a new host addon.

- Create button removed in OpenPype menu in favor of the new Publisher - Draft refactor validations to raise `PublishValidationError` - Implement Creator for New Publisher - Implement Fusion as Host addon
Make Kitsu work with Tray Publisher, added kitsureview tag, fixed sync-problems. #4425

Make Kitsu work with Tray Publisher, added kitsureview tag, fixed sync-problems.

This PR updates the way the module gather info for the current publish so it now works with Tray Publisher.It fixes the data that gets synced from Kitsu to OP so all needed data gets registered even if it doesn't exist on Kitsus side.It also adds the tag "Add review to Kitsu" and adds it to Burn In so previews gets generated by default to Kitsu.


Maya: V-Ray Set Image Format from settings #4566

Resolves #4565

Set V-Ray Image Format using settings.


3.15.1

Full Changelog

🆕 New features

Maya: Xgen (3d / maya ) - #4256

Brief description

Initial Xgen implementation.

Description

Client request of Xgen pipeline.


Data exchange cameras for 3d Studio Max (3d / 3dsmax ) - #4376

Brief description

Add Camera Family into the 3d Studio Max

Description

Adding Camera Extractors(extract abc camera and extract fbx camera) and validators(for camera contents) into 3dMaxAlso add the extractor for exporting 3d max raw scene (which is also related to 3dMax Scene Family) for camera family


🚀 Enhancements

Adding path validator for non-maya nodes (3d / maya ) - #4271

Brief description

Adding a path validator for filepaths from non-maya nodes, which are created by plugins such as Renderman, Yeti and abcImport.

Description

As File Path Editor cannot catch the wrong filenpaths from non-maya nodes such as AlembicNodes, It is neccessary to have a new validator to ensure the existence of the filepaths from the nodes.


Deadline: Allow disabling strict error check in Maya submissions (3d / maya / deadline ) - #4420

Brief description

DL by default has Strict error checking, but some errors are not fatal.

Description

This allows to set profile based on Task and Subset values to temporarily disable Strict Error Checks.Subset and task names should support regular expressions. (not wildcard notation though).


Houdini: New publisher code tweak (3d / houdini ) - #4374

Brief description

This is cosmetics only - the previous code to me felt quite unreadable due to the lengthy strings being used.

Description

Code should do roughly the same, but just be reformatted.


3dsmax: enhance alembic loader update function (3d / 3dsmax ) - #4387

Enhancement

This PR is adding update/switch ability to pointcache/alembic loader in 3dsmax and fixing wrong tool shown when clicking on "Manage" item on OpenPype menu, that is now correctly Scene Inventory (but was Subset Manager).

Alembic update has still one caveat - it doesn't cope with changed number of object inside alembic, since loading alembic in max involves creating all those objects as first class nodes. So it will keep the objects in scene, just update path to alembic file on them.


Global: supporting `OPENPYPE_TMPDIR` in staging dir maker (editorial / hiero ) - #4398

Brief description

Productions can use OPENPYPE_TMPDIR for staging temp publishing directory

Description

Studios were demanding to be able to configure their own shared storages as temporary staging directories. Template formatting is also supported with optional keys formatting and following anatomy keys: - root[work | ] - project[name | code]


General: Functions for current context (other ) - #4324

Brief description

Defined more functions to receive current context information and added the methods to host integration so host can affect the result.

Description

This is one of steps to reduce usage of legacy_io.Session. This change define how to receive current context information -> call functions instead of accessing legacy_io.Session or os.environ directly. Plus, direct access on session or environments is unfortunatelly not enough for some DCCs where multiple workfiles can be opened at one time which can heavily affect the context but host integration sometimes can't affect that at all.HostBase already had implemented get_current_context, that was enhanced by adding more specific methods get_current_project_name, get_current_asset_name and get_current_task_name. The same functions were added to ~/openpype/pipeline/cotext_tools.py. The functions in context tools are calling host integration methods (if are available) otherwise are using environent variables as default implementation does. Also was added get_current_host_name to receive host name from registered host if is available or from environment variable.


Houdini: Do not visualize the hidden OpenPypeContext node (other / houdini ) - #4382

Brief description

Using the new publisher UI would generate a visible 'null' locator at the origin. It's confusing to the user since it's supposed to be 'hidden'.

Description

Before this PR the user would see a locator/null at the origin which was the 'hidden' /obj/OpenPypeContext node. This null would suddenly appear if the user would've ever opened the Publisher UI once.After this PR it will not show:Nice and tidy.


Maya + Blender: Pyblish plugins removed unused `version` and `category` attributes (other ) - #4402

Brief description

Once upon a time in a land far far away there lived a few plug-ins who felt like they didn't belong in generic boxes and felt they needed to be versioned well above others. They tried, but with no success.

Description

Even though they now lived in a universe with elaborate version and category attributes embedded into their tiny little plug-in DNA this particular deviation has been greatly unused. There is nothing special about the version, nothing special about the category.It does nothing.


General: Fix original basename frame issues (other ) - #4452

Brief description

Treat {originalBasename} in different way then standard files processing. In case template should use {originalBasename} the transfers will use them as they are without any changes or handling of frames.

Description

Frames handling is problematic with original basename because their padding can't be defined to match padding in source filenames. Also it limits the usage of functionality to "must have frame at end of fiename". This is proposal how that could be solved by simply ignoring frame handling and using filenames as are on representation. First frame is still stored to representation context but is not used in formatting part. This way we don't have to care about padding of frames at all.


Publisher: Report also crashed creators and convertors (other ) - #4473

Brief description

Added crashes of creators and convertos discovery (lazy solution).

Description

Report in Publisher also contains information about crashed files caused during creator plugin discovery and convertor plugin discovery. They're not separated into categroies and there is no other information in the report about them, but this helps a lot during development. This change does not need to change format/schema of the report nor UI logic.


🐛 Bug fixes

Maya: Fix Validate Attributes plugin (3d / maya ) - #4401

Brief description

Code was broken. So either plug-in was unused or it had gone unnoticed.

Description

Looking at the commit history of the plug-in itself it seems this might have been broken somewhere between two to three years. I think it's broken since two years since this commit.Should this plug-in be removed completely?@tokejepsen Is there still a use case where we should have this plug-in? (You created the original one)


Maya: Ignore workfile lock in Untitled scene (3d / maya ) - #4414

Brief description

Skip workfile lock check if current scene is 'Untitled'.


Maya: fps rounding - OP-2549 (3d / maya ) - #4424

Brief description

When FPS is registered in for example Ftrack and round either down or up (floor/ceil), comparing to Maya FPS can fail. Example:23.97 (Ftrack/Mongo) != 23.976023976023978 (Maya)

Description

Since Maya only has a select number of supported framerates, I've taken the approach of converting any fps to supported framerates in Maya. We validate the input fps to make sure they are supported in Maya in two ways:Whole Numbers - are validated straight against the supported framerates in Maya.Demical Numbers - we find the closest supported framerate in Maya. If the difference to the closest supported framerate, is more than 0.5 we'll throw an error.If Maya ever supports arbitrary framerates, then we might have a problem but I'm not holding my breath...


Strict Error Checking Default (3d / maya ) - #4457

Brief description

Provide default of strict error checking for instances created prior to PR.


Create: Enhance instance & context changes (3d / houdini,after effects,3dsmax ) - #4375

Brief description

Changes of instances and context have complex, hard to get structure. The structure did not change but instead of complex dictionaries are used objected data.

Description

This is poposal of changes data improvement for creators. Implemented TrackChangesItem which handles the changes for us. The item is creating changes based on old and new value and can provide information about changed keys or access to full old or new value. Can give the values on any "sub-dictionary".Used this new approach to fix change in houdini and 3ds max and also modified one aftereffects plugin using changes.


Houdini: hotfix condition (3d / houdini ) - #4391

Hotfix

This is fixing bug introduced int #4374


Houdini: Houdini shelf tools fixes (3d / houdini ) - #4428

Brief description

Fix Houdini shelf tools.

Description

Use label as mandatory key instead of name. Changed how shelves are created. If the script is empty it is gracefully skipping it instead of crashing.


3dsmax: startup fixes (3d / 3dsmax ) - #4412

Brief description

This is fixing various issues that can occur on some of the 3dsmax versions.

Description

On displays with +4K resolution UI was broken, some 3dsmax versions couldn't process PYTHONPATH correctly. This PR is forcing sys.path and disabling QT_AUTO_SCREEN_SCALE_FACTOR


Fix features for gizmo menu (2d / nuke ) - #4280

Brief description

Fix features for the Gizmo Menu project settings (shortcut for python type of usage and file type of usage functionality)


Photoshop: fix missing legacy io for legacy instances (2d / photoshop,after effects ) - #4467

Brief description

legacy_io import was removed, but usage stayed.

Description

Usage of legacy_io should be eradicated, in creators it should be replaced by self.create_context.get_current_project_name/asset_name/task_name.


Fix - addSite loader handles hero version (other / sitesync ) - #4359

Brief description

If adding site to representation presence of hero version is checked, if found hero version is marked to be donwloaded too.Replacing https://github.com/ynput/OpenPype/pull/4191


Remove OIIO build for macos (other ) - #4381

Fix

Since we are not able to provide OpenImageIO tools binaries for macos, we should remove the item from th pyproject.toml. This PR is taking care of it.

It is also changing the way fetch_thirdparty_libs script works in that it doesn't crash when lib cannot be processed, it only issue warning.

Resolves #3858


General: Attribute definitions fixes (other ) - #4392

Brief description

Fix possible issues with attribute definitions in publisher if there is unknown attribute on an instance.

Description

Source of the issue is that attribute definitions from creator plugin could be "expanded" during CreatedInstance initialization. Which would affect all other instances using the same list of attributes -> literally object of list. If the same list object is used in "BaseClass" for other creators it would affect all instances (because of 1 instance). There had to be implemented other changes to fix the issue and keep behavior the same.Object of CreatedInstance can be created without reference to creator object. CreatedInstance is responsible to give UI attribute definitions (technically is prepared for cases when each instance may have different attribute definitions -> not yet).Attribute definition has added more conditions for __eq__ method and have implemented __ne__ method (which is required for Py 2 compatibility). Renamed AbtractAttrDef to AbstractAttrDef (fix typo).


Ftrack: Don't force ftrackapp endpoint (other / ftrack ) - #4411

Brief description

Auto-fill of ftrack url don't break custom urls. Custom urls couldn't be used as ftrackapp.com is added if is not in the url.

Description

The code was changed in a way that auto-fill is still supported but before ftrackapp is added it will try to use url as is. If the connection works as is it is used.


Fix: DL on MacOS (other ) - #4418

Brief description

This works if DL Openpype plugin Installation Directories is set to level of app bundle (eg. '/Applications/OpenPype 3.15.0.app')


Photoshop: make usage of layer name in subset name more controllable (other ) - #4432

Brief description

Layer name was previously used in subset name only if multiple instances were being created in single step. This adds explicit toggle.

Description

Toggling this button allows to use layer name in created subset name even if single instance is being created.This follows more closely implementation if AE.


SiteSync: fix dirmap (other ) - #4436

Brief description

Fixed issue in dirmap in Maya and Nuke

Description

Loads of error were thrown in Nuke console about dictionary value.AttributeError: 'dict' object has no attribute 'lower'


General: Ignore decode error of stdout/stderr in run_subprocess (other ) - #4446

Brief description

Ignore decode errors and replace invalid character (byte) with escaped byte character.

Description

Calling of run_subprocess may cause crashes if output contains some unicode character which (for example Polish name of encoder handler).


Publisher: Fix reopen bug (other ) - #4463

Brief description

Use right name of constant 'ActiveWindow' -> 'WindowActive'.


Publisher: Fix compatibility of QAction in Publisher (other ) - #4474

Brief description

Fix QAction for older version of Qt bindings where QAction requires a parent on initialization.

Description

This bug was discovered in Nuke 11. Fixed by creating QAction when QMenu is already available and can be used as parent.


🔀 Refactored code

General: Remove 'openpype.api' (other ) - #4413

Brief description

PR is removing openpype/api.py file which is causing a lot of troubles and cross-imports.

Description

I wanted to remove the file slowly function by function but it always reappear somewhere in codebase even if most of the functionality imported from there is triggering deprecation warnings. This is small change which may have huge impact.There shouldn't be anything in openpype codebase which is using openpype.api anymore so only possible issues are in customized repositories or custom addons.


📃 Documentation

docs-user-Getting Started adjustments (other ) - #4365

Brief description

Small typo fixes here and there, additional info on install/ running OP.


Merged pull requests

Renderman support for sample and display filters (3d / maya ) - #4003

Brief description

User can set up both sample and display filters in Openpype settings if they are using Renderman as renderer.

Description

You can preset which sample and display filters for renderman , including the cryptomatte renderpass, in Openpype settings. Once you select which filters to be included in openpype settings and then create render instance for your camera in maya, it would automatically tell the system to generate your selected filters in render settings.The place you can find for setting up the filters: Maya > Render Settings > Renderman Renderer > Display Filters/ Sample Filters


Maya: Create Arnold options on repair. (3d / maya ) - #4448

Brief description

When validating/repairing we previously required users to open render settings to create the Arnold options. This is done through code now.


Update Asset field of creator Instances in Maya Template Builder (3d / maya ) - #4470

Brief description

When we build a template with Maya Template Builder, it will update the asset field of the sets (creator instances) that are imported from the template.

Description

When building a template, we also want to define the publishable content in advance: create an instance of a model, or look, etc., to speed up the workflow and reduce the number of questions we are asked. After building a work file from a saved template that contains pre-created instances, the template builder should update the asset field to the current asset.


Blender: fix import workfile all families (3d / blender ) - #4405

Brief description

Having this feature related to workfile available for any family is absurd.


Nuke: update rendered frames in latest version (2d / nuke ) - #4362

Brief description

Introduced new field to insert frame(s) to rerender only.

Description

Rendering is expensive, sometimes it is helpful only to re-render changed frames and reuse existing.Artists can in Publisher fill which frame(s) should be re-rendered.If there is already published version of currently publishing subset, all representation files are collected (currently for render family only) and then when Nuke is rendering (locally only for now), old published files are copied into into temporary render folder where will be rewritten only by frames explicitly set in new field.That way review/burnin process could also reuse old files and recreate reviews/burnins.New version is produced during this process!


Feature: Keep synced hero representations up-to-date. (other ) - #4343

Brief description

Keep previously synchronized sites up-to-date by comparing old and new sites and adding old sites if missing in new ones.Fix #4331


Maya: Fix template builder bug where assets are not put in the right hierarchy (other ) - #4367

Brief description

When buiding scene from template, the assets loaded from the placeholders are not put in the hierarchy. Plus, the assets are loaded in double.


Bump ua-parser-js from 0.7.31 to 0.7.33 in /website (other ) - #4371

Bumps ua-parser-js from 0.7.31 to 0.7.33.

Changelog

Sourced from ua-parser-js's changelog.

Version 0.7.31 / 1.0.2

  • Fix OPPO Reno A5 incorrect detection
  • Fix TypeError Bug
  • Use AST to extract regexes and verify them with safe-regex

Version 0.7.32 / 1.0.32

  • Add new browser : DuckDuckGo, Huawei Browser, LinkedIn
  • Add new OS : HarmonyOS
  • Add some Huawei models
  • Add Sharp Aquos TV
  • Improve detection Xiaomi Mi CC9
  • Fix Sony Xperia 1 III misidentified as Acer tablet
  • Fix Detect Sony BRAVIA as SmartTV
  • Fix Detect Xiaomi Mi TV as SmartTV
  • Fix Detect Galaxy Tab S8 as tablet
  • Fix WeGame mistakenly identified as WeChat
  • Fix included commas in Safari / Mobile Safari version
  • Increase UA_MAX_LENGTH to 350

Version 0.7.33 / 1.0.33

  • Add new browser : Cobalt
  • Identify Macintosh as an Apple device
  • Fix ReDoS vulnerability

Version 0.8

Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0.

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

___
Docs: Question about renaming in Kitsu (other ) - #4384

Brief description

To keep memory of this discussion: https://discord.com/channels/517362899170230292/563751989075378201/1068112668491255818


New Publisher: Fix Creator error typo (other ) - #4396

Brief description

Fixes typo in error message.


Chore: pyproject.toml version because of Poetry (other ) - #4408

Brief description

Automatization injects wrong format


Fix - remove minor part in toml (other ) - #4437

Brief description

Causes issue in create_env and new Poetry


General: Add project code to anatomy (other ) - #4445

Brief description

Added attribute project_code to Anatomy object.

Description

Anatomy already have access to almost all attributes from project anatomy except project code. This PR changing it. Technically Anatomy is everything what would be needed to get fill data of project.


{

    "project": {

        "name": anatomy.project_name,

        "code": anatomy.project_code

    }

}


Maya: Arnold Scene Source overhaul - OP-4865 (other / maya ) - #4449

Brief description

General overhaul of the Arnold Scene Source (ASS) workflow.

Description

This originally was to support static files (non-sequencial) ASS publishing, but digging deeper whole workflow needed an update to get ready for further issues. During this overhaul the following changes were made:

  • Generalized Arnold Standin workflow to a single loader.

  • Support multiple nodes as proxies.

  • Support proxies for pointcache family.

  • Generalized approach to proxies as resources, so they can be the same file format as the original.This workflow should allow further expansion to utilize operators and eventually USD.


3.15.0

Full Changelog

Deprecated:

  • General: Fill default values of new publish template profiles #4245

📖 Documentation

  • documentation: Split tools into separate entries #4342
  • Documentation: Fix harmony docs #4301
  • Remove staging logic set by OpenPype version #3979

🆕 New features

  • General: Push to studio library #4284
  • Colorspace Management and Distribution #4195
  • Nuke: refactor to latest publisher workfow #4006
  • Update to Python 3.9 #3546

🚀 Enhancements

  • Unreal: Don't use mongo queries in 'ExistingLayoutLoader' #4356
  • General: Loader and Creator plugins can be disabled #4310
  • General: Unbind poetry version #4306
  • General: Enhanced enum def items #4295
  • Git: add pre-commit hooks #4289
  • Tray Publisher: Improve Online family functionality #4263
  • General: Update MacOs to PySide6 #4255
  • Build: update to Gazu in toml #4208
  • Global: adding imageio to settings #4158
  • Blender: added project settings for validator no colons in name #4149
  • Dockerfile for Debian Bullseye #4108
  • AfterEffects: publish multiple compositions #4092
  • AfterEffects: make new publisher default #4056
  • Photoshop: make new publisher default #4051
  • Feature/multiverse #4046
  • Tests: add support for deadline for automatic tests #3989
  • Add version to shortcut name #3906
  • TrayPublisher: Removed from experimental tools #3667

🐛 Bug fixes

  • change 3.7 to 3.9 in folder name #4354
  • PushToProject: Fix hierarchy of project change #4350
  • Fix photoshop workfile save-as #4347
  • Nuke Input process node sourcing improvements #4341
  • New publisher: Some validation plugin tweaks #4339
  • Harmony: fix unable to change workfile on Mac #4334
  • Global: fixing in-place source publishing for editorial #4333
  • General: Use class constants of QMessageBox #4332
  • TVPaint: Fix plugin for TVPaint 11.7 #4328
  • Exctract OTIO review has improved quality #4325
  • Ftrack: fix typos causing bugs in sync #4322
  • General: Python 2 compatibility of instance collector #4320
  • Slack: user groups speedup #4318
  • Maya: Bug - Multiverse extractor executed on plain animation family #4315
  • Fix run_documentation.ps1 #4312
  • Nuke: new creators fixes #4308
  • General: missing comment on standalone and tray publisher #4303
  • AfterEffects: Fix for audio from mp4 layer #4296
  • General: Update gazu in poetry lock #4247
  • Bug: Fixing version detection and filtering in Igniter #3914
  • Bug: Create missing version dir #3903

🔀 Refactored code

  • Remove redundant export_alembic method. #4293
  • Igniter: Use qtpy modules instead of Qt #4237

Merged pull requests:

  • Sort families by alphabetical order in the Create plugin #4346
  • Global: Validate unique subsets #4336
  • Maya: Collect instances preserve handles even if frameStart + frameEnd matches context #3437

3.14.10

Full Changelog

🆕 New features

  • Global | Nuke: Creator placeholders in workfile template builder #4266
  • Slack: Added dynamic message #4265
  • Blender: Workfile Loader #4234
  • Unreal: Publishing and Loading for UAssets #4198
  • Publish: register publishes without copying them #4157

🚀 Enhancements

  • General: Added install method with docstring to HostBase #4298
  • Traypublisher: simple editorial multiple edl #4248
  • General: Extend 'IPluginPaths' to have more available methods #4214
  • Refactorization of folder coloring #4211
  • Flame - loading multilayer with controlled layer names #4204

🐛 Bug fixes

  • Unreal: fix missing maintained_selection call #4300
  • Ftrack: Fix receive of host ip on MacOs #4288
  • SiteSync: sftp connection failing when shouldnt be tested #4278
  • Deadline: fix default value for passing mongo url #4275
  • Scene Manager: Fix variable name #4268
  • Slack: notification fails because of missing published path #4264
  • hiero: creator gui with min max #4257
  • NiceCheckbox: Fix checker positioning in Python 2 #4253
  • Publisher: Fix 'CreatorType' not equal for Python 2 DCCs #4249
  • Deadline: fix dependencies #4242
  • Houdini: hotfix instance data access #4236
  • bugfix/image plane load error #4222
  • Hiero: thumbnail from multilayer exr #4209

🔀 Refactored code

  • Resolve: Use qtpy in Resolve #4254
  • Houdini: Use qtpy in Houdini #4252
  • Max: Use qtpy in Max #4251
  • Maya: Use qtpy in Maya #4250
  • Hiero: Use qtpy in Hiero #4240
  • Nuke: Use qtpy in Nuke #4239
  • Flame: Use qtpy in flame #4238
  • General: Legacy io not used in global plugins #4134

Merged pull requests:

  • Bump json5 from 1.0.1 to 1.0.2 in /website #4292
  • Maya: Fix validate frame range repair + fix create render with deadline disabled #4279

3.14.9

Full Changelog

📖 Documentation

  • Documentation: Testing on Deadline #4185
  • Consistent Python version #4160

🆕 New features

  • Feature/op 4397 gl tf extractor for maya #4192
  • Maya: Extractor for Unreal SkeletalMesh #4174
  • 3dsmax: integration #4168
  • Blender: Extract Alembic Animations #4128
  • Unreal: Load Alembic Animations #4127

🚀 Enhancements

  • Houdini: Use new interface class name for publish host #4220
  • General: Default command for headless mode is interactive #4203
  • Maya: Enhanced ASS publishing #4196
  • Feature/op 3924 implement ass extractor #4188
  • File transactions: Source path is destination path #4184
  • Deadline: improve environment processing #4182
  • General: Comment per instance in Publisher #4178
  • Ensure Mongo database directory exists in Windows. #4166
  • Note about unrestricted execution on Windows. #4161
  • Maya: Enable thumbnail transparency on extraction. #4147
  • Maya: Disable viewport Pan/Zoom on playblast extraction. #4146
  • Maya: Optional viewport refresh on pointcache extraction #4144
  • CelAction: refactory integration to current openpype #4140
  • Maya: create and publish bounding box geometry #4131
  • Changed the UOpenPypePublishInstance to use the UDataAsset class #4124
  • General: Collection Audio speed up #4110
  • Maya: keep existing AOVs when creating render instance #4087
  • General: Oiio conversion multipart fix #4060

🐛 Bug fixes

  • Publisher: Signal type issues in Python 2 DCCs #4230
  • Blender: Fix Layout Family Versioning #4228
  • Blender: Fix Create Camera "Use selection" #4226
  • TrayPublisher - join needs list #4224
  • General: Event callbacks pass event to callbacks as expected #4210
  • Build:Revert .toml update of Gazu #4207
  • Nuke: fixed imageio node overrides subset filter #4202
  • Maya: pointcache #4201
  • Unreal: Support for Unreal Engine 5.1 #4199
  • General: Integrate thumbnail looks for thumbnail to multiple places #4181
  • Various minor bugfixes #4172
  • Nuke/Hiero: Remove tkinter library paths before launch #4171
  • Flame: vertical alignment of layers #4169
  • Nuke: correct detection of viewer and display #4165
  • Settings UI: Don't create QApplication if already exists #4156
  • General: Extract review handle start offset of sequences #4152
  • Maya: Maintain time connections on Alembic update. #4143

🔀 Refactored code

  • General: Use qtpy in modules and hosts UIs which are running in OpenPype process #4225
  • Tools: Use qtpy instead of Qt in standalone tools #4223
  • General: Use qtpy in settings UI #4215

Merged pull requests:

  • layout publish more than one container issue #4098

3.14.8

Full Changelog

🚀 Enhancements

  • General: Refactored extract hierarchy plugin #4139
  • General: Find executable enhancement #4137
  • Ftrack: Reset session before instance processing #4129
  • Ftrack: Editorial asset sync issue #4126
  • Deadline: Build version resolving #4115
  • Houdini: New Publisher #3046
  • Fix: Standalone Publish Directories #4148

🐛 Bug fixes

  • Ftrack: Fix occational double parents issue #4153
  • General: Maketx executable issue #4136
  • Maya: Looks - add all connections #4135
  • General: Fix variable check in collect anatomy instance data #4117

3.14.7

Full Changelog

🆕 New features

  • Hiero: loading effect family to timeline #4055

🚀 Enhancements

  • Photoshop: bug with pop-up window on Instance Creator #4121
  • Publisher: Open on specific tab #4120
  • Publisher: Hide unknown publish values #4116
  • Ftrack: Event server status give more information about version locations #4112
  • General: Allow higher numbers in frames and clips #4101
  • Publisher: Settings for validate frame range #4097
  • Publisher: Ignore escape button #4090
  • Flame: Loading clip with native colorspace resolved from mapping #4079
  • General: Extract review single frame output #4064
  • Publisher: Prepared common function for instance data cache #4063
  • Publisher: Easy access to publish page from create page #4058
  • General/TVPaint: Attribute defs dialog #4052
  • Publisher: Better reset defer #4048
  • Publisher: Add thumbnail sources #4042

🐛 Bug fixes

  • General: Move default settings for template name #4119
  • Slack: notification fail in new tray publisher #4118
  • Nuke: loaded nodes set to first tab #4114
  • Nuke: load image first frame #4113
  • Files Widget: Ignore case sensitivity of extensions #4096
  • Webpublisher: extension is lowercased in Setting and in uploaded files #4095
  • Publish Report Viewer: Fix small bugs #4086
  • Igniter: fix regex to match semver better #4085
  • Maya: aov filtering #4083
  • Flame/Flare: Loading to multiple batches #4080
  • hiero: creator from settings with set maximum #4077
  • Nuke: resolve hashes in file name only for frame token #4074
  • Publisher: Fix cache of asset docs #4070
  • Webpublisher: cleanup wp extract thumbnail #4067
  • Settings UI: Locked setting can't bypass lock #4066
  • Loader: Fix comparison of repre name #4053
  • Deadline: Extract environment subprocess failure #4050

🔀 Refactored code

  • General: Collect entities plugin minor changes #4089
  • General: Direct interfaces import #4065

Merged pull requests:

  • Bump loader-utils from 1.4.1 to 1.4.2 in /website #4100
  • Online family for Tray Publisher #4093
  • Bump loader-utils from 1.4.0 to 1.4.1 in /website #4081
  • remove underscore from subset name #4059
  • Alembic Loader as Arnold Standin #4047

3.14.6

Full Changelog

📖 Documentation

  • Documentation: Minor updates to dev_requirements.md #4025

🆕 New features

  • Nuke: add 13.2 variant #4041

🚀 Enhancements

  • Publish Report Viewer: Store reports locally on machine #4040
  • General: More specific error in burnins script #4026
  • General: Extract review does not crash with old settings overrides #4023
  • Publisher: Convertors for legacy instances #4020
  • workflows: adding milestone creator and assigner #4018
  • Publisher: Catch creator errors #4015

🐛 Bug fixes

  • Hiero - effect collection fixes #4038
  • Nuke - loader clip correct hash conversion in path #4037
  • Maya: Soft fail when applying capture preset #4034
  • Igniter: handle missing directory #4032
  • StandalonePublisher: Fix thumbnail publishing #4029
  • Experimental Tools: Fix publisher import #4027
  • Houdini: fix wrong path in ASS loader #4016

🔀 Refactored code

  • General: Import lib functions from lib #4017

3.14.5 (2022-10-24)

Full Changelog

🚀 Enhancements

  • Maya: add OBJ extractor to model family #4021
  • Publish report viewer tool #4010
  • Nuke | Global: adding custom tags representation filtering #4009
  • Publisher: Create context has shared data for collection phase #3995
  • Resolve: updating to v18 compatibility #3986

🐛 Bug fixes

  • TrayPublisher: Fix missing argument #4019
  • General: Fix python 2 compatibility of ffmpeg and oiio tools discovery #4011

🔀 Refactored code

  • Maya: Removed unused imports #4008
  • Unreal: Fix import of moved function #4007
  • Houdini: Change import of RepairAction #4005
  • Nuke/Hiero: Refactor openpype.api imports #4000
  • TVPaint: Defined with HostBase #3994

Merged pull requests:

  • Unreal: Remove redundant Creator stub #4012
  • Unreal: add uproject extension to Unreal project template #4004
  • Unreal: fix order of includes #4002
  • Fusion: Implement backwards compatibility +/- Fusion 17.2 #3958

3.14.4 (2022-10-19)

Full Changelog

🆕 New features

  • Webpublisher: use max next published version number for all items in batch #3961
  • General: Control Thumbnail integration via explicit configuration profiles #3951

🚀 Enhancements

  • Publisher: Multiselection in card view #3993
  • TrayPublisher: Original Basename cause crash too early #3990
  • Tray Publisher: add originalBasename data to simple creators #3988
  • General: Custom paths to ffmpeg and OpenImageIO tools #3982
  • Integrate: Preserve existing subset group if instance does not set it for new version #3976
  • Publisher: Prepare publisher controller for remote publishing #3972
  • Maya: new style dataclasses in maya deadline submitter plugin #3968
  • Maya: Define preffered Qt bindings for Qt.py and qtpy #3963
  • Settings: Move imageio from project anatomy to project settings [pypeclub] #3959
  • TrayPublisher: Extract thumbnail for other families #3952
  • Publisher: Pass instance to subset name method on update #3949
  • General: Set root environments before DCC launch #3947
  • Refactor: changed legacy way to update database for Hero version integrate #3941
  • Maya: Moved plugin from global to maya #3939
  • Publisher: Create dialog is part of main window #3936
  • Fusion: Implement Alembic and FBX mesh loader #3927

🐛 Bug fixes

  • TrayPublisher: Disable sequences in batch mov creator #3996
  • Fix - tags might be missing on representation #3985
  • Resolve: Fix usage of functions from lib #3983
  • Maya: remove invalid prefix token for non-multipart outputs #3981
  • Ftrack: Fix schema cache for Python 2 #3980
  • Maya: add object to attr.s declaration #3973
  • Maya: Deadline OutputFilePath hack regression for Renderman #3950
  • Houdini: Fix validate workfile paths for non-parm file references #3948
  • Photoshop: missed sync published version of workfile with workfile #3946
  • Maya: Set default value for RenderSetupIncludeLights option #3944
  • Maya: fix regression of Renderman Deadline hack #3943
  • Kitsu: 2 fixes, nb_frames and Shot type error #3940
  • Tray: Change order of attribute changes #3938
  • AttributeDefs: Fix crashing multivalue of files widget #3937
  • General: Fix links query on hero version #3900
  • Publisher: Files Drag n Drop cleanup #3888

🔀 Refactored code

  • Flame: Import lib functions from lib #3992
  • General: Fix deprecated warning in legacy creator #3978
  • Blender: Remove openpype api imports #3977
  • General: Use direct import of resources #3964
  • General: Direct settings imports #3934
  • General: import 'Logger' from 'openpype.lib' #3926
  • General: Remove deprecated functions from lib #3907

Merged pull requests:

  • Maya + Yeti: Load Yeti Cache fix frame number recognition #3942
  • Fusion: Implement callbacks to Fusion's event system thread #3928
  • Photoshop: create single frame image in Ftrack as review #3908

3.14.3 (2022-10-03)

Full Changelog

🚀 Enhancements

  • Publisher: Enhancement proposals #3897

🐛 Bug fixes

  • Maya: Fix Render single camera validator #3929
  • Flame: loading multilayer exr to batch/reel is working #3901
  • Hiero: Fix inventory check on launch #3895
  • WebPublisher: Fix import after refactor #3891

🔀 Refactored code

  • Maya: Remove unused 'openpype.api' imports in plugins #3925
  • Resolve: Use new Extractor location #3918
  • Unreal: Use new Extractor location #3917
  • Flame: Use new Extractor location #3916
  • Houdini: Use new Extractor location #3894
  • Harmony: Use new Extractor location #3893

Merged pull requests:

  • Maya: Fix Scene Inventory possibly starting off-screen due to maya preferences #3923

3.14.2 (2022-09-12)

Full Changelog

📖 Documentation

  • Documentation: Anatomy templates #3618

🆕 New features

  • Nuke: Build workfile by template #3763
  • Houdini: Publishing workfiles #3697
  • Global: making collect audio plugin global #3679

🚀 Enhancements

  • Flame: Adding Creator's retimed shot and handles switch #3826
  • Flame: OpenPype submenu to batch and media manager #3825
  • General: Better pixmap scaling #3809
  • Photoshop: attempt to speed up ExtractImage #3793
  • SyncServer: Added cli commands for sync server #3765
  • Kitsu: Drop 'entities root' setting. #3739
  • git: update gitignore #3722
  • Blender: Publisher collect workfile representation #3670
  • Maya: move set render settings menu entry #3669
  • Scene Inventory: Maya add actions to select from or to scene #3659
  • Scene Inventory: Add subsetGroup column #3658

🐛 Bug fixes

  • General: Fix Pattern access in client code #3828
  • Launcher: Skip opening last work file works for groups #3822
  • Maya: Publishing data key change #3811
  • Igniter: Fix status handling when version is already installed #3804
  • Resolve: Addon import is Python 2 compatible #3798
  • Hiero: retimed clip publishing is working #3792
  • nuke: validate write node is not failing due wrong type #3780
  • Fix - changed format of version string in pyproject.toml #3777
  • Ftrack status fix typo prgoress -> progress #3761
  • Fix version resolution #3757
  • Maya: containerise dont skip empty values #3674

🔀 Refactored code

  • Photoshop: Use new Extractor location #3789
  • Blender: Use new Extractor location #3787
  • AfterEffects: Use new Extractor location #3784
  • General: Remove unused teshost #3773
  • General: Copied 'Extractor' plugin to publish pipeline #3771
  • General: Move queries of asset and representation links #3770
  • General: Move create project folders to pipeline #3768
  • General: Create project function moved to client code #3766
  • Maya: Refactor submit deadline to use AbstractSubmitDeadline #3759
  • General: Change publish template settings location #3755
  • General: Move hostdirname functionality into host #3749
  • General: Move publish utils to pipeline #3745
  • Houdini: Define houdini as addon #3735
  • Fusion: Defined fusion as addon #3733
  • Flame: Defined flame as addon #3732
  • Resolve: Define resolve as addon #3727

Merged pull requests:

  • Standalone Publisher: Ignore empty labels, then still use name like other asset models #3779
  • Kitsu - sync_all_project - add list ignore_projects #3776

3.14.1 (2022-08-30)

Full Changelog

📖 Documentation

  • Documentation: Few updates #3698
  • Documentation: Settings development #3660

🆕 New features

  • Webpublisher:change create flatten image into tri state #3678
  • Blender: validators code correction with settings and defaults #3662

🚀 Enhancements

  • General: Thumbnail can use project roots #3750
  • Settings: Remove settings lock on tray exit #3720
  • General: Added helper getters to modules manager #3712
  • Unreal: Define unreal as module and use host class #3701
  • Settings: Lock settings UI session #3700
  • General: Benevolent context label collector #3686
  • Ftrack: Store ftrack entities on hierarchy integration to instances #3677
  • Ftrack: More logs related to auto sync value change #3671
  • Blender: ops refresh manager after process events #3663

🐛 Bug fixes

  • Maya: Fix typo in getPanel argument with_focus -> withFocus #3753
  • General: Smaller fixes of imports #3748
  • General: Logger tweaks #3741
  • Nuke: missing job dependency if multiple bake streams #3737
  • Nuke: color-space settings from anatomy is working #3721
  • Settings: Fix studio default anatomy save #3716
  • Maya: Use project name instead of project code #3709
  • Settings: Fix project overrides save #3708
  • Workfiles tool: Fix published workfile filtering #3704
  • PS, AE: Provide default variant value for workfile subset #3703
  • RoyalRender: handle host name that is not set #3695
  • Flame: retime is working on clip publishing #3684
  • Webpublisher: added check for empty context #3682

🔀 Refactored code

  • General: Move delivery logic to pipeline #3751
  • General: Host addons cleanup #3744
  • Webpublisher: Webpublisher is used as addon #3740
  • Photoshop: Defined photoshop as addon #3736
  • Harmony: Defined harmony as addon #3734
  • General: Module interfaces cleanup #3731
  • AfterEffects: Move AE functions from general lib #3730
  • Blender: Define blender as module #3729
  • AfterEffects: Define AfterEffects as module #3728
  • General: Replace PypeLogger with Logger #3725
  • Nuke: Define nuke as module #3724
  • General: Move subset name functionality #3723
  • General: Move creators plugin getter #3714
  • General: Move constants from lib to client #3713
  • Loader: Subset groups using client operations #3710
  • TVPaint: Defined as module #3707
  • StandalonePublisher: Define StandalonePublisher as module #3706
  • TrayPublisher: Define TrayPublisher as module #3705
  • General: Move context specific functions to context tools #3702

Merged pull requests:

  • Hiero: Define hiero as module #3717
  • Deadline: better logging for DL webservice failures #3694
  • Photoshop: resize saved images in ExtractReview for ffmpeg #3676
  • Nuke: Validation refactory to new publisher #3567

3.14.0 (2022-08-18)

Full Changelog

🆕 New features

  • Maya: Build workfile by template #3578
  • Maya: Implementation of JSON layout for Unreal workflow #3353
  • Maya: Build workfile by template #3315

🚀 Enhancements

  • Ftrack: Addiotional component metadata #3685
  • Ftrack: Set task status on farm publishing #3680
  • Ftrack: Set task status on task creation in integrate hierarchy #3675
  • Maya: Disable rendering of all lights for render instances submitted through Deadline. #3661
  • General: Optimized OCIO configs #3650

🐛 Bug fixes

  • General: Switch from hero version to versioned works #3691
  • General: Fix finding of last version #3656
  • General: Extract Review can scale with pixel aspect ratio #3644
  • Maya: Refactor moved usage of CreateRender settings #3643
  • General: Hero version representations have full context #3638
  • Nuke: color settings for render write node is working now #3632
  • Maya: FBX support for update in reference loader #3631

🔀 Refactored code

  • General: Use client projects getter #3673
  • Resolve: Match folder structure to other hosts #3653
  • Maya: Hosts as modules #3647
  • TimersManager: Plugins are in timers manager module #3639
  • General: Move workfiles functions into pipeline #3637
  • General: Workfiles builder using query functions #3598

Merged pull requests:

  • Deadline: Global job pre load is not Pype 2 compatible #3666
  • Maya: Remove unused get current renderer logic #3645
  • Kitsu|Fix: Movie project type fails & first loop children names #3636
  • fix the bug of failing to extract look when UDIMs format used in AiImage #3628

3.13.0 (2022-08-09)

Full Changelog

🆕 New features

  • Support for mutliple installed versions - 3.13 #3605
  • Traypublisher: simple editorial publishing #3492

🚀 Enhancements

  • Editorial: Mix audio use side file for ffmpeg filters #3630
  • Ftrack: Comment template can contain optional keys #3615
  • Ftrack: Add more metadata to ftrack components #3612
  • General: Add context to pyblish context #3594
  • Kitsu: Shot&Sequence name with prefix over appends #3593
  • Photoshop: implemented {layer} placeholder in subset template #3591
  • General: Python module appdirs from git #3589
  • Ftrack: Update ftrack api to 2.3.3 #3588
  • General: New Integrator small fixes #3583
  • Maya: Render Creator has configurable options. #3097

🐛 Bug fixes

  • Maya: fix aov separator in Redshift #3625
  • Fix for multi-version build on Mac #3622
  • Ftrack: Sync hierarchical attributes can handle new created entities #3621
  • General: Extract review aspect ratio scale is calculated by ffmpeg #3620
  • Maya: Fix types of default settings #3617
  • Integrator: Don't force to have dot before frame #3611
  • AfterEffects: refactored integrate doesnt work formulti frame publishes #3610
  • Maya look data contents fails with custom attribute on group #3607
  • TrayPublisher: Fix wrong conflict merge #3600
  • Bugfix: Add OCIO as submodule to prepare for handling maketx color space conversion. #3590
  • Fix general settings environment variables resolution #3587
  • Editorial publishing workflow improvements #3580
  • General: Update imports in start script #3579
  • Nuke: render family integration consistency #3576
  • Ftrack: Handle missing published path in integrator #3570
  • Nuke: publish existing frames with slate with correct range #3555

🔀 Refactored code

  • General: Plugin settings handled by plugins #3623
  • General: Naive implementation of document create, update, delete #3601
  • General: Use query functions in general code #3596
  • General: Separate extraction of template data into more functions #3574
  • General: Lib cleanup #3571

Merged pull requests:

  • Webpublisher: timeout for PS studio processing #3619
  • Core: translated validate_containers.py into New publisher style #3614
  • Enable write color sets on animation publish automatically #3582

3.12.2 (2022-07-27)

Full Changelog

📖 Documentation

  • Update website with more studios #3554
  • Documentation: Update publishing dev docs #3549

🚀 Enhancements

  • General: Global thumbnail extractor is ready for more cases #3561
  • Maya: add additional validators to Settings #3540
  • General: Interactive console in cli #3526
  • Ftrack: Automatic daily review session creation can define trigger hour #3516
  • Ftrack: add source into Note #3509
  • Ftrack: Trigger custom ftrack topic of project structure creation #3506
  • Settings UI: Add extract to file action on project view #3505
  • Add pack and unpack convenience scripts #3502
  • General: Event system #3499
  • NewPublisher: Keep plugins with mismatch target in report #3498
  • Nuke: load clip with options from settings #3497
  • TrayPublisher: implemented render_mov_batch #3486
  • Migrate basic families to the new Tray Publisher #3469
  • Enhance powershell build scripts #1827

🐛 Bug fixes

  • Maya: fix Review image plane attribute #3569
  • Maya: Fix animated attributes ie. overscan on loaded cameras breaking review publishing. #3562
  • NewPublisher: Python 2 compatible html escape #3559
  • Remove invalid submodules from /vendor #3557
  • General: Remove hosts filter on integrator plugins #3556
  • Settings: Clean default values of environments #3550
  • Module interfaces: Fix import error #3547
  • Workfiles tool: Show of tool and it's flags #3539
  • General: Create workfile documents works again #3538
  • Additional fixes for powershell scripts #3525
  • Maya: Added wrapper around cmds.setAttr #3523
  • Nuke: double slate #3521
  • General: Fix hash of centos oiio archive #3519
  • Maya: Renderman display output fix #3514
  • TrayPublisher: Simple creation enhancements and fixes #3513
  • NewPublisher: Publish attributes are properly collected #3510
  • TrayPublisher: Make sure host name is filled #3504
  • NewPublisher: Groups work and enum multivalue #3501

🔀 Refactored code

  • General: Use query functions in integrator #3563
  • General: Mongo core connection moved to client #3531
  • Refactor Integrate Asset #3530
  • General: Client docstrings cleanup #3529
  • General: Move load related functions into pipeline #3527
  • General: Get current context document functions #3522
  • Kitsu: Use query function from client #3496
  • TimersManager: Use query functions #3495
  • Deadline: Use query functions #3466
  • Refactor Integrate Asset #2898

Merged pull requests:

  • Maya: fix active pane loss #3566

3.12.1 (2022-07-13)

Full Changelog

📖 Documentation

  • Docs: Added minimal permissions for MongoDB #3441

🆕 New features

  • Maya: Add VDB to Arnold loader #3433

🚀 Enhancements

  • TrayPublisher: Added more options for grouping of instances #3494
  • NewPublisher: Align creator attributes from top to bottom #3487
  • NewPublisher: Added ability to use label of instance #3484
  • General: Creator Plugins have access to project #3476
  • General: Better arguments order in creator init #3475
  • Ftrack: Trigger custom ftrack events on project creation and preparation #3465
  • Windows installer: Clean old files and add version subfolder #3445
  • Blender: Bugfix - Set fps properly on open #3426
  • Hiero: Add custom scripts menu #3425
  • Blender: pre pyside install for all platforms #3400
  • Maya: Add additional playblast options to review Extractor. #3384
  • Maya: Ability to set resolution for playblasts from asset, and override through review instance. #3360
  • Maya: Redshift Volume Loader Implement update, remove, switch + fix vdb sequence support #3197
  • Maya: Implement iter_visible_nodes_in_range for extracting Alembics #3100

🐛 Bug fixes

  • TrayPublisher: Keep use instance label in list view #3493
  • General: Extract review use first frame of input sequence #3491
  • General: Fix Plist loading for application launch #3485
  • Nuke: Workfile tools open on start #3479
  • New Publisher: Disabled context change allows creation #3478
  • General: thumbnail extractor fix #3474
  • Kitsu: bugfix with sync-service ans publish plugins #3473
  • Flame: solved problem with multi-selected loading #3470
  • General: Fix query function in update logic #3468
  • Resolve: removed few bugs #3464
  • General: Delete old versions is safer when ftrack is disabled #3462
  • Nuke: fixing metadata slate TC difference #3455
  • Nuke: prerender reviewable fails #3450
  • Maya: fix hashing in Python 3 for tile rendering #3447
  • LogViewer: Escape html characters in log message #3443
  • Nuke: Slate frame is integrated #3427
  • Maya: Camera extra data - additional fix for #3304 #3386
  • Maya: Handle excluding model family from frame range validator. #3370

🔀 Refactored code

  • Maya: Merge animation + pointcache extractor logic #3461
  • Maya: Re-use maintained_time from lib #3460
  • General: Use query functions in global plugins #3459
  • Clockify: Use query functions in clockify actions #3458
  • General: Use query functions in rest api calls #3457
  • General: Use query functions in openpype lib functions #3454
  • General: Use query functions in load utils #3446
  • General: Move publish plugin and publish render abstractions #3442
  • General: Use Anatomy after move to pipeline #3436
  • General: Anatomy moved to pipeline #3435
  • Fusion: Use client query functions #3380
  • Resolve: Use client query functions #3379
  • General: Host implementation defined with class #3337

3.12.0 (2022-06-28)

Full Changelog

📖 Documentation

  • Fix typo in documentation: pyenv on mac #3417
  • Linux: update OIIO package #3401

🆕 New features

  • Shotgrid: Add production beta of shotgrid integration #2921

🚀 Enhancements

  • Webserver: Added CORS middleware #3422
  • Attribute Defs UI: Files widget show what is allowed to drop in #3411
  • General: Add ability to change user value for templates #3366
  • Hosts: More options for in-host callbacks #3357
  • Multiverse: expose some settings to GUI #3350
  • Maya: Allow more data to be published along camera 🎥 #3304
  • Add root keys and project keys to create starting folder #2755

🐛 Bug fixes

  • NewPublisher: Fix subset name change on change of creator plugin #3420
  • Bug: fix invalid avalon import #3418
  • Nuke: Fix keyword argument in query function #3414
  • Houdini: fix loading and updating vbd/bgeo sequences #3408
  • Nuke: Collect representation files based on Write #3407
  • General: Filter representations before integration start #3398
  • Maya: look collector typo #3392
  • TVPaint: Make sure exit code is set to not None #3382
  • Maya: vray device aspect ratio fix #3381
  • Flame: bunch of publishing issues #3377
  • Harmony: added unc path to zifile command in Harmony #3372
  • Standalone: settings improvements #3355
  • Nuke: Load full model hierarchy by default #3328
  • Nuke: multiple baking streams with correct slate #3245
  • Maya: fix image prefix warning in validator #3128

🔀 Refactored code

  • Unreal: Use client query functions #3421
  • General: Move editorial lib to pipeline #3419
  • Kitsu: renaming to plural func sync_all_projects #3397
  • Houdini: Use client query functions #3395
  • Hiero: Use client query functions #3393
  • Nuke: Use client query functions #3391
  • Maya: Use client query functions #3385
  • Harmony: Use client query functions #3378
  • Celaction: Use client query functions #3376
  • Photoshop: Use client query functions #3375
  • AfterEffects: Use client query functions #3374
  • TVPaint: Use client query functions #3340
  • Ftrack: Use client query functions #3339
  • Standalone Publisher: Use client query functions #3330

Merged pull requests:

  • Sync Queue: Added far future value for null values for dates #3371
  • Maya - added support for single frame playblast review #3369
  • Houdini: Implement Redshift Proxy Export #3196

3.11.1 (2022-06-20)

Full Changelog

🆕 New features

  • Flame: custom export temp folder #3346
  • Nuke: removing third-party plugins #3344

🚀 Enhancements

  • Pyblish Pype: Hiding/Close issues #3367
  • Ftrack: Removed requirement of pypeclub role from default settings #3354
  • Kitsu: Prevent crash on missing frames information #3352
  • Ftrack: Open browser from tray #3320
  • Enhancement: More control over thumbnail processing. #3259

🐛 Bug fixes

  • Nuke: bake streams with slate on farm #3368
  • Harmony: audio validator has wrong logic #3364
  • Nuke: Fix missing variable in extract thumbnail #3363
  • Nuke: Fix precollect writes #3361
  • AE- fix validate_scene_settings and renderLocal #3358
  • deadline: fixing misidentification of revieables #3356
  • General: Create only one thumbnail per instance #3351
  • nuke: adding extract thumbnail settings 3.10 #3347
  • General: Fix last version function #3345
  • Deadline: added OPENPYPE_MONGO to filter #3336
  • Nuke: fixing farm publishing if review is disabled #3306
  • Maya: Fix Yeti errors on Create, Publish and Load #3198

🔀 Refactored code

  • Webpublisher: Use client query functions #3333

3.11.0 (2022-06-17)

Full Changelog

📖 Documentation

  • Documentation: Add app key to template documentation #3299
  • doc: adding royal render and multiverse to the web site #3285
  • Module: Kitsu module #2650

🆕 New features

  • Multiverse: fixed composition write, full docs, cosmetics #3178

🚀 Enhancements

  • Settings: Settings can be extracted from UI #3323
  • updated poetry installation source #3316
  • Ftrack: Action to easily create daily review session #3310
  • TVPaint: Extractor use mark in/out range to render #3309
  • Ftrack: Delivery action can work on ReviewSessions #3307
  • Maya: Look assigner UI improvements #3298
  • Ftrack: Action to transfer values of hierarchical attributes #3284
  • Maya: better handling of legacy review subsets names #3269
  • General: Updated windows oiio tool #3268
  • Unreal: add support for skeletalMesh and staticMesh to loaders #3267
  • Maya: reference loaders could store placeholder in referenced url #3264
  • TVPaint: Init file for TVPaint worker also handle guideline images #3250
  • Nuke: Change default icon path in settings #3247
  • Maya: publishing of animation and pointcache on a farm #3225
  • Maya: Look assigner UI improvements #3208
  • Nuke: add pointcache and animation to loader #3186
  • Nuke: Add a gizmo menu #3172
  • Support for Unreal 5 #3122

🐛 Bug fixes

  • General: Handle empty source key on instance #3342
  • Houdini: Fix Houdini VDB manage update wrong file attribute name #3322
  • Nuke: anatomy compatibility issue hacks #3321
  • hiero: otio p3 compatibility issue - metadata on effect use update 3.11 #3314
  • General: Vendorized modules for Python 2 and update poetry lock #3305
  • Fix - added local targets to install host #3303
  • Settings: Add missing default settings for nuke gizmo #3301
  • Maya: Fix swaped width and height in reviews #3300
  • Maya: point cache publish handles Maya instances #3297
  • Global: extract review slate issues #3286
  • Webpublisher: return only active projects in ProjectsEndpoint #3281
  • Hiero: add support for task tags 3.10.x #3279
  • General: Fix Oiio tool path resolving #3278
  • Maya: Fix udim support for e.g. uppercase <UDIM> tag #3266
  • Nuke: bake reformat was failing on string type #3261
  • Maya: hotfix Pxr multitexture in looks #3260
  • Unreal: Fix Camera Loading if Layout is missing #3255
  • Unreal: Fixed Animation loading in UE5 #3240
  • Unreal: Fixed Render creation in UE5 #3239
  • Unreal: Fixed Camera loading in UE5 #3238
  • Flame: debugging #3224
  • add silent audio to slate #3162
  • Add timecode to slate #2929

🔀 Refactored code

  • Blender: Use client query functions #3331
  • General: Define query functions #3288

Merged pull requests:

  • Maya: add pointcache family to gpu cache loader #3318
  • Maya look: skip empty file attributes #3274

3.10.0 (2022-05-26)

Full Changelog

📖 Documentation

  • Docs: add all-contributors config and initial list #3094
  • Nuke docs with videos #3052

🆕 New features

  • General: OpenPype modules publish plugins are registered in host #3180
  • General: Creator plugins from addons can be registered #3179
  • Ftrack: Single image reviewable #3157
  • Nuke: Expose write attributes to settings #3123
  • Hiero: Initial frame publish support #3106
  • Unreal: Render Publishing #2917
  • AfterEffects: Implemented New Publisher #2838
  • Unreal: Rendering implementation #2410

🚀 Enhancements

  • Maya: FBX camera export #3253
  • General: updating common vendor scriptmenu to 1.5.2 #3246
  • Project Manager: Allow to paste Tasks into multiple assets at the same time #3226
  • Project manager: Sped up project load #3216
  • Loader UI: Speed issues of loader with sync server #3199
  • Looks: add basic support for Renderman #3190
  • Maya: added clean_import option to Import loader #3181
  • Add the scripts menu definition to nuke #3168
  • Maya: add maya 2023 to default applications #3167
  • Compressed bgeo publishing in SAP and Houdini loader #3153
  • General: Add 'dataclasses' to required python modules #3149
  • Hooks: Tweak logging grammar #3147
  • Nuke: settings for reformat node in CreateWriteRender node #3143
  • Houdini: Add loader for alembic through Alembic Archive node #3140
  • Publisher: UI Modifications and fixes #3139
  • General: Simplified OP modules/addons import #3137
  • Terminal: Tweak coloring of TrayModuleManager logging enabled states #3133
  • General: Cleanup some Loader docstrings #3131
  • Nuke: render instance with subset name filtered overrides #3117
  • Unreal: Layout and Camera update and remove functions reimplemented and improvements #3116
  • Settings: Remove environment groups from settings #3115
  • TVPaint: Match renderlayer key with other hosts #3110
  • Ftrack: AssetVersion status on publish #3108
  • Tray publisher: Simple families from settings #3105
  • Local Settings UI: Overlay messages on save and reset #3104
  • General: Remove repos related logic #3087
  • Standalone publisher: add support for bgeo and vdb #3080
  • Houdini: Fix FPS + outdated content pop-ups #3079
  • General: Add global log verbose arguments #3070
  • Flame: extract presets distribution #3063
  • Update collect_render.py #3055
  • SiteSync: Added compute_resource_sync_sites to sync_server_module #2983
  • Maya: Implement Hardware Renderer 2.0 support for Render Products #2611

🐛 Bug fixes

  • nuke: use framerange issue #3254
  • Ftrack: Chunk sizes for queries has minimal condition #3244
  • Maya: renderman displays needs to be filtered #3242
  • Ftrack: Validate that the user exists on ftrack #3237
  • Maya: Fix support for multiple resolutions #3236
  • TVPaint: Look for more groups than 12 #3228
  • Hiero: debugging frame range and other 3.10 #3222
  • Project Manager: Fix persistent editors on project change #3218
  • Deadline: instance data overwrite fix #3214
  • Ftrack: Push hierarchical attributes action works #3210
  • Standalone Publisher: Always create new representation for thumbnail #3203
  • Photoshop: skip collector when automatic testing #3202
  • Nuke: render/workfile version sync doesn't work on farm #3185
  • Ftrack: Review image only if there are no mp4 reviews #3183
  • Ftrack: Locations deepcopy issue #3177
  • General: Avoid creating multiple thumbnails #3176
  • General/Hiero: better clip duration calculation #3169
  • General: Oiio conversion for ffmpeg checks for invalid characters #3166
  • Fix for attaching render to subset #3164
  • Harmony: fixed missing task name in render instance #3163
  • Ftrack: Action delete old versions formatting works #3152
  • Deadline: fix the output directory #3144
  • General: New Session schema #3141
  • General: Missing version on headless mode crash properly #3136
  • TVPaint: Composite layers in reversed order #3135
  • Nuke: fixing default settings for workfile builder loaders #3120
  • Nuke: fix anatomy imageio regex default #3119
  • General: Python 3 compatibility in queries #3112
  • General: TemplateResult can be copied #3099
  • General: Collect loaded versions skips not existing representations #3095
  • RoyalRender Control Submission - AVALON_APP_NAME default #3091
  • Ftrack: Update Create Folders action #3089
  • Maya: Collect Render fix any render cameras check #3088
  • Project Manager: Avoid unnecessary updates of asset documents #3083
  • Standalone publisher: Fix plugins install #3077
  • General: Extract review sequence is not converted with same names #3076
  • Webpublisher: Use variant value #3068
  • Nuke: Add aov matching even for remainder and prerender #3060
  • Fix support for Renderman in Maya #3006

🔀 Refactored code

  • Avalon repo removed from Jobs workflow #3193
  • General: Remove remaining imports from avalon #3130
  • General: Move mongo db logic and remove avalon repository #3066
  • General: Move host install #3009

Merged pull requests:

  • Harmony: message length in 21.1 #3257
  • Harmony: 21.1 fix #3249
  • Maya: added jpg to filter for Image Plane Loader #3223
  • Webpublisher: replace space by underscore in subset names #3160
  • StandalonePublisher: removed Extract Background plugins #3093
  • Nuke: added suspend_publish knob #3078
  • Bump async from 2.6.3 to 2.6.4 in /website #3065
  • SiteSync: Download all workfile inputs #2966
  • Photoshop: New Publisher #2933
  • Bump pillow from 9.0.0 to 9.0.1 #2880
  • AfterEffects: Allow configuration of default variant via Settings #2856

3.9.8 (2022-05-19)

Full Changelog

3.9.7 (2022-05-11)

Full Changelog

3.9.6 (2022-05-03)

Full Changelog

3.9.5 (2022-04-25)

Full Changelog

3.9.4 (2022-04-15)

Full Changelog

📖 Documentation

  • Documentation: more info about Tasks #3062
  • Documentation: Python requirements to 3.7.9 #3035
  • Website Docs: Remove unused pages #2974

🆕 New features

  • General: Local overrides for environment variables #3045
  • Flame: Flare integration preparation #2928

🚀 Enhancements

  • TVPaint: Added init file for worker to triggers missing sound file dialog #3053
  • Ftrack: Custom attributes can be filled in slate values #3036
  • Resolve environment variable in google drive credential path #3008

🐛 Bug fixes

  • GitHub: Updated push-protected action in github workflow #3064
  • Nuke: Typos in imports from Nuke implementation #3061
  • Hotfix: fixing deadline job publishing #3059
  • General: Extract Review handle invalid characters for ffmpeg #3050
  • Slate Review: Support to keep format on slate concatenation #3049
  • Webpublisher: fix processing of workfile #3048
  • Ftrack: Integrate ftrack api fix #3044
  • Webpublisher - removed wrong hardcoded family #3043
  • LibraryLoader: Use current project for asset query in families filter #3042
  • SiteSync: Providers ignore that site is disabled #3041
  • Unreal: Creator import fixes #3040
  • SiteSync: fix transitive alternate sites, fix dropdown in Local Settings #3018
  • Maya: invalid review flag on rendered AOVs #2915

Merged pull requests:

  • Deadline: reworked pools assignment #3051
  • Houdini: Avoid ImportError on hdefereval when Houdini runs without UI #2987

3.9.3 (2022-04-07)

Full Changelog

📖 Documentation

  • Documentation: Added mention of adding My Drive as a root #2999
  • Website Docs: Manager Ftrack fix broken links #2979
  • Docs: Added MongoDB requirements #2951
  • Documentation: New publisher develop docs #2896

🆕 New features

  • Ftrack: Add description integrator #3027
  • nuke: bypass baking #2992
  • Publishing textures for Unreal #2988
  • Maya to Unreal: Static and Skeletal Meshes #2978
  • Multiverse: Initial Support #2908

🚀 Enhancements

  • General: default workfile subset name for workfile #3011
  • Ftrack: Add more options for note text of integrate ftrack note #3025
  • Console Interpreter: Changed how console splitter size are reused on show #3016
  • Deadline: Use more suitable name for sequence review logic #3015
  • Nuke: add concurrency attr to deadline job #3005
  • Photoshop: create image without instance #3001
  • TVPaint: Render scene family #3000
  • Deadline: priority configurable in Maya jobs #2995
  • Nuke: ReviewDataMov Read RAW attribute #2985
  • General: METADATA_KEYS constant as frozenset for optimal immutable lookup #2980
  • General: Tools with host filters #2975
  • Hero versions: Use custom templates #2967
  • Slack: Added configurable maximum file size of review upload to Slack #2945
  • NewPublisher: Prepared implementation of optional pyblish plugin #2943
  • TVPaint: Extractor to convert PNG into EXR #2942
  • Workfiles tool: Save as published workfiles #2937
  • Workfiles: Open published workfiles #2925
  • General: Default modules loaded dynamically #2923
  • CI: change the version bump logic #2919
  • Deadline: Add headless argument #2916
  • Nuke: Add no-audio Tag #2911
  • Ftrack: Fill workfile in custom attribute #2906
  • Nuke: improving readability #2903
  • Settings UI: Add simple tooltips for settings entities #2901

🐛 Bug fixes

  • General: Fix validate asset docs plug-in filename and class name #3029
  • Deadline: Fixed default value of use sequence for review #3033
  • Settings UI: Version column can be extended so version are visible #3032
  • General: Fix import after movements #3028
  • Harmony: Added creating subset name for workfile from template #3024
  • AfterEffects: Added creating subset name for workfile from template #3023
  • General: Add example addons to ignored #3022
  • Maya: Remove missing import #3017
  • Ftrack: multiple reviewable componets #3012
  • Tray publisher: Fixes after code movement #3010
  • Hosts: Remove path existence checks in 'add_implementation_envs' #3004
  • Nuke: fixing unicode type detection in effect loaders #3002
  • Fix - remove doubled dot in workfile created from template #2998
  • Nuke: removing redundant Ftrack asset when farm publishing #2996
  • PS: fix renaming subset incorrectly in PS #2991
  • Fix: Disable setuptools auto discovery #2990
  • AEL: fix opening existing workfile if no scene opened #2989
  • Maya: Don't do hardlinks on windows for look publishing #2986
  • Settings UI: Fix version completer on linux #2981
  • Photoshop: Fix creation of subset names in PS review and workfile #2969
  • Slack: Added default for review_upload_limit for Slack #2965
  • General: OIIO conversion for ffmeg can handle sequences #2958
  • Settings: Conditional dictionary avoid invalid logs #2956
  • General: Smaller fixes and typos #2950
  • LogViewer: Don't refresh on initialization #2949
  • nuke: python3 compatibility issue with iteritems #2948
  • General: anatomy data with correct task short key #2947
  • SceneInventory: Fix imports in UI #2944
  • Slack: add generic exception #2941
  • General: Python specific vendor paths on env injection #2939
  • General: More fail safe delete old versions #2936
  • Settings UI: Collapsed of collapsible wrapper works as expected #2934
  • Maya: Do not pass set to maya commands fixes support for older maya versions #2932
  • General: Don't print log record on OSError #2926
  • Hiero: Fix import of 'register_event_callback' #2924
  • Flame: centos related debugging #2922
  • Ftrack: Missing Ftrack id after editorial publish #2905
  • AfterEffects: Fix rendering for single frame in DL #2875

🔀 Refactored code

  • General: Move plugins register and discover #2935
  • General: Move Attribute Definitions from pipeline #2931
  • General: Removed silo references and terminal splash #2927
  • General: Move pipeline constants to OpenPype #2918
  • General: Move formatting and workfile functions #2914
  • General: Move remaining plugins from avalon #2912

Merged pull requests:

  • Maya: Allow to select invalid camera contents if no cameras found #3030
  • Bump paramiko from 2.9.2 to 2.10.1 #2973
  • Bump minimist from 1.2.5 to 1.2.6 in /website #2954
  • Bump node-forge from 1.2.1 to 1.3.0 in /website #2953
  • Maya - added transparency into review creator #2952

3.9.2 (2022-04-04)

Full Changelog

3.9.1 (2022-03-18)

Full Changelog

🚀 Enhancements

  • General: Change how OPENPYPE_DEBUG value is handled #2907
  • nuke: imageio adding ocio config version 1.2 #2897
  • Flame: support for comment with xml attribute overrides #2892
  • Nuke: ExtractReviewSlate can handle more codes and profiles #2879
  • Flame: sequence used for reference video #2869

🐛 Bug fixes

  • General: Fix use of Anatomy roots #2904
  • Fixing gap detection in extract review #2902
  • Pyblish Pype - ensure current state is correct when entering new group order #2899
  • SceneInventory: Fix import of load function #2894
  • Harmony - fixed creator issue #2891
  • General: Remove forgotten use of avalon Creator #2885
  • General: Avoid circular import #2884
  • Fixes for attaching loaded containers \#2837 #2874
  • Maya: Deformer node ids validation plugin #2826
  • Flame Babypublisher optimalization #2806
  • hotfix: OIIO tool path - add extension on windows #2618

🔀 Refactored code

  • General: Reduce style usage to OpenPype repository #2889
  • General: Move loader logic from avalon to openpype #2886

3.9.0 (2022-03-14)

Full Changelog

Deprecated:

  • Houdini: Remove unused code #2779
  • Loader: Remove default family states for hosts from code #2706
  • AssetCreator: Remove the tool #2845

📖 Documentation

  • Documentation: fixed broken links #2799
  • Documentation: broken link fix #2785
  • Documentation: link fixes #2772
  • Update docusaurus to latest version #2760
  • Various testing updates #2726
  • documentation: add example to repack-version command #2669
  • Update docusaurus #2639
  • Documentation: Fixed relative links #2621
  • Documentation: Change Photoshop & AfterEffects plugin path #2878

🆕 New features

  • Flame: loading clips to reels #2622
  • General: Store settings by OpenPype version #2570

🚀 Enhancements

  • New: Validation exceptions #2841
  • General: Set context environments for non host applications #2803
  • Houdini: Remove duplicate ValidateOutputNode plug-in #2780
  • Tray publisher: New Tray Publisher host beta #2778
  • Slack: Added regex for filtering on subset names #2775
  • Houdini: Implement Reset Frame Range #2770
  • Pyblish Pype: Remove redundant new line in installed fonts printing #2758
  • Flame: use Shot Name on segment for asset name #2751
  • Flame: adding validator source clip #2746
  • Work Files: Preserve subversion comment of current filename by default #2734
  • Maya: set Deadline job/batch name to original source workfile name instead of published workfile #2733
  • Ftrack: Disable ftrack module by default #2732
  • Project Manager: Disable add task, add asset and save button when not in a project #2727
  • dropbox handle big file #2718
  • Fusion Move PR: Minor tweaks to Fusion integration #2716
  • RoyalRender: Minor enhancements #2700
  • Nuke: prerender with review knob #2691
  • Maya configurable unit validator #2680
  • General: Add settings for CleanUpFarm and disable the plugin by default #2679
  • Project Manager: Only allow scroll wheel edits when spinbox is active #2678
  • Ftrack: Sync description to assets #2670
  • Houdini: Moved to OpenPype #2658
  • Maya: Move implementation to OpenPype #2649
  • General: FFmpeg conversion also check attribute string length #2635
  • Houdini: Load Arnold .ass procedurals into Houdini #2606
  • Deadline: Simplify GlobalJobPreLoad logic #2605
  • Houdini: Implement Arnold .ass standin extraction from Houdini also support .ass.gz #2603
  • New Publisher: New features and preparations for new standalone publisher #2556
  • Fix Maya 2022 Python 3 compatibility #2445
  • TVPaint: Use new publisher exceptions in validators #2435
  • Harmony: Added new style validations for New Publisher #2434
  • Aftereffects: New style validations for New publisher #2430
  • Farm publishing: New cleanup plugin for Maya renders on farm #2390
  • General: Subset name filtering in ExtractReview outpus #2872
  • NewPublisher: Descriptions and Icons in creator dialog #2867
  • NewPublisher: Changing task on publishing instance #2863
  • TrayPublisher: Choose project widget is more clear #2859
  • Maya: add loaded containers to published instance #2837
  • Ftrack: Can sync fps as string #2836
  • General: Custom function for find executable #2822
  • General: Color dialog UI fixes #2817
  • global: letter box calculated on output as last process #2812
  • Nuke: adding Reformat to baking mov plugin #2811
  • Manager: Update all to latest button #2805
  • Houdini: Move Houdini Save Current File to beginning of ExtractorOrder #2747
  • Global: adding studio name/code to anatomy template formatting data #2630

🐛 Bug fixes

  • Settings UI: Search case sensitivity #2810
  • resolve: fixing fusion module loading #2802
  • Ftrack: Unset task ids from asset versions before tasks are removed #2800
  • Slack: fail gracefully if slack exception #2798
  • Flame: Fix version string in default settings #2783
  • After Effects: Fix typo in name afftereffects -> aftereffects #2768
  • Houdini: Fix open last workfile #2767
  • Avoid renaming udim indexes #2765
  • Maya: Fix unique_namespace when in an namespace that is empty #2759
  • Loader UI: Fix right click in representation widget #2757
  • Harmony: Rendering in Deadline didn't work in other machines than submitter #2754
  • Aftereffects 2022 and Deadline #2748
  • Flame: bunch of bugs #2745
  • Maya: Save current scene on workfile publish #2744
  • Version Up: Preserve parts of filename after version number like subversion on version_up #2741
  • Loader UI: Multiple asset selection and underline colors fixed #2731
  • General: Fix loading of unused chars in xml format #2729
  • TVPaint: Set objectName with members #2725
  • General: Don't use 'objectName' from loaded references #2715
  • Settings: Studio Project anatomy is queried using right keys #2711
  • Local Settings: Additional applications don't break UI #2710
  • Maya: Remove some unused code #2709
  • Houdini: Fix refactor of Houdini host move for CreateArnoldAss #2704
  • LookAssigner: Fix imports after moving code to OpenPype repository #2701
  • Multiple hosts: unify menu style across hosts #2693
  • Maya Redshift fixes #2692
  • Maya: fix fps validation popup #2685
  • Houdini Explicitly collect correct frame name even in case of single frame render when frameStart is provided #2676
  • hiero: fix effect collector name and order #2673
  • Maya: Fix menu callbacks #2671
  • hiero: removing obsolete unsupported plugin #2667
  • Launcher: Fix access to 'data' attribute on actions #2659
  • Maya vrscene loader fixes #2633
  • Houdini: fix usd family in loader and integrators #2631
  • Maya: Add only reference node to look family container like with other families #2508
  • General: Missing time function #2877
  • Deadline: Fix plugin name for tile assemble #2868
  • Nuke: gizmo precollect fix #2866
  • General: Fix hardlink for windows #2864
  • General: ffmpeg was crashing on slate merge #2860
  • WebPublisher: Video file was published with one too many frame #2858
  • New Publisher: Error dialog got right styles #2857
  • General: Fix getattr clalback on dynamic modules #2855
  • Nuke: slate resolution to input video resolution #2853
  • WebPublisher: Fix username stored in DB #2852
  • WebPublisher: Fix wrong number of frames for video file #2851
  • Nuke: Fix family test in validate_write_legacy to work with stillImage #2847
  • Nuke: fix multiple baking profile farm publishing #2842
  • Blender: Fixed parameters for FBX export of the camera #2840
  • Maya: Stop creation of reviews for Cryptomattes #2832
  • Deadline: Remove recreated event #2828
  • Deadline: Added missing events folder #2827
  • Settings: Missing document with OP versions may break start of OpenPype #2825
  • Deadline: more detailed temp file name for environment json #2824
  • General: Host name was formed from obsolete code #2821
  • Settings UI: Fix "Apply from" action #2820
  • Ftrack: Job killer with missing user #2819
  • Nuke: Use AVALON_APP to get value for "app" key #2818
  • StandalonePublisher: use dynamic groups in subset names #2816

🔀 Refactored code

  • Ftrack: Moved module one hierarchy level higher #2792
  • SyncServer: Moved module one hierarchy level higher #2791
  • Royal render: Move module one hierarchy level higher #2790
  • Deadline: Move module one hierarchy level higher #2789
  • Refactor: move webserver tool to openpype #2876
  • General: Move create logic from avalon to OpenPype #2854
  • General: Add vendors from avalon #2848
  • General: Basic event system #2846
  • General: Move change context functions #2839
  • Tools: Don't use avalon tools code #2829
  • Move Unreal Implementation to OpenPype #2823
  • General: Extract template formatting from anatomy #2766

Merged pull requests:

  • Fusion: Moved implementation into OpenPype #2713
  • TVPaint: Plugin build without dependencies #2705
  • Webpublisher: Photoshop create a beauty png #2689
  • Ftrack: Hierarchical attributes are queried properly #2682
  • Maya: Add Validate Frame Range settings #2661
  • Harmony: move to Openpype #2657
  • Maya: cleanup duplicate rendersetup code #2642
  • Deadline: Be able to pass Mongo url to job #2616

3.8.2 (2022-02-07)

Full Changelog

📖 Documentation

  • Cosmetics: Fix common typos in openpype/website #2617

🚀 Enhancements

  • TVPaint: Image loaders also work on review family #2638
  • General: Project backup tools #2629
  • nuke: adding clear button to write nodes #2627
  • Ftrack: Family to Asset type mapping is in settings #2602
  • Nuke: load color space from representation data #2576

🐛 Bug fixes

  • Fix pulling of cx_freeze 6.10 #2628
  • Global: fix broken otio review extractor #2590

Merged pull requests:

  • WebPublisher: fix instance duplicates #2641
  • Fix - safer pulling of task name for webpublishing from PS #2613

3.8.1 (2022-02-01)

Full Changelog

🚀 Enhancements

  • Webpublisher: Thumbnail extractor #2600
  • Loader: Allow to toggle default family filters between "include" or "exclude" filtering #2541
  • Launcher: Added context menu to to skip opening last workfile #2536
  • Unreal: JSON Layout Loading support #2066

🐛 Bug fixes

  • Release/3.8.0 #2619
  • Settings: Enum does not store empty string if has single item to select #2615
  • switch distutils to sysconfig for get_platform() #2594
  • Fix poetry index and speedcopy update #2589
  • Webpublisher: Fix - subset names from processed .psd used wrong value for task #2586
  • vrscene creator Deadline webservice URL handling #2580
  • global: track name was failing if duplicated root word in name #2568
  • Validate Maya Rig produces no cycle errors #2484

Merged pull requests:

  • Bump pillow from 8.4.0 to 9.0.0 #2595
  • Webpublisher: Skip version collect #2591
  • build(deps): bump pillow from 8.4.0 to 9.0.0 #2523

3.8.0 (2022-01-24)

Full Changelog

📖 Documentation

  • Variable in docs renamed to proper name #2546

🆕 New features

  • Flame: extracting segments with trans-coding #2547
  • Maya : V-Ray Proxy - load all ABC files via proxy #2544
  • Maya to Unreal: Extended static mesh workflow #2537
  • Flame: collecting publishable instances #2519
  • Flame: create publishable clips #2495
  • Flame: OpenTimelineIO Export Modul #2398

🚀 Enhancements

  • Webpublisher: Moved error at the beginning of the log #2559
  • Ftrack: Use ApplicationManager to get DJV path #2558
  • Webpublisher: Added endpoint to reprocess batch through UI #2555
  • Settings: PathInput strip passed string #2550
  • Global: Exctract Review anatomy fill data with output name #2548
  • Cosmetics: Clean up some cosmetics / typos #2542
  • General: Validate if current process OpenPype version is requested version #2529
  • General: Be able to use anatomy data in ffmpeg output arguments #2525
  • Expose toggle publish plug-in settings for Maya Look Shading Engine Naming #2521
  • Photoshop: Move implementation to OpenPype #2510
  • TimersManager: Move module one hierarchy higher #2501
  • Slack: notifications are sent with Openpype logo and bot name #2499
  • Slack: Add review to notification message #2498
  • Ftrack: Event handlers settings #2496
  • Tools: Fix style and modality of errors in loader and creator #2489
  • Maya: Collect 'fps' animation data only for "review" instances #2486
  • Project Manager: Remove project button cleanup #2482
  • Tools: Be able to change models of tasks and assets widgets #2475
  • Publish pype: Reduce publish process defering #2464
  • Maya: Improve speed of Collect History logic #2460
  • Maya: Validate Rig Controllers - fix Error: in script editor #2459
  • Maya: Validate NGONs simplify and speed-up #2458
  • Maya: Optimize Validate Locked Normals speed for dense polymeshes #2457
  • Maya: Refactor missing _get_reference_node method #2455
  • Houdini: Remove broken unique name counter #2450
  • Maya: Improve lib.polyConstraint performance when Select tool is not the active tool context #2447
  • General: Validate third party before build #2425
  • Maya : add option to not group reference in ReferenceLoader #2383

🐛 Bug fixes

  • AfterEffects: Fix - removed obsolete import #2577
  • General: OpenPype version updates #2575
  • Ftrack: Delete action revision #2563
  • Webpublisher: ftrack shows incorrect user names #2560
  • General: Do not validate version if build does not support it #2557
  • Webpublisher: Fixed progress reporting #2553
  • Fix Maya AssProxyLoader version switch #2551
  • General: Fix install thread in igniter #2549
  • Houdini: vdbcache family preserve frame numbers on publish integration + enable validate version for Houdini #2535
  • Maya: Fix Load VDB to V-Ray #2533
  • Maya: ReferenceLoader fix not unique group name error for attach to root #2532
  • Maya: namespaced context go back to original namespace when started from inside a namespace #2531
  • Fix create zip tool - path argument #2522
  • Maya: Fix Extract Look with space in names #2518
  • Fix published frame content for sequence starting with 0 #2513
  • Maya: reset empty string attributes correctly to "" instead of "None" #2506
  • Improve FusionPreLaunch hook errors #2505
  • General: Settings work if OpenPypeVersion is available #2494
  • General: PYTHONPATH may break OpenPype dependencies #2493
  • General: Modules import function output fix #2492
  • AE: fix hiding of alert window below Publish #2491
  • Workfiles tool: Files widget show files on first show #2488
  • General: Custom template paths filter fix #2483
  • Loader: Remove always on top flag in tray #2480
  • General: Anatomy does not return root envs as unicode #2465
  • Maya: Validate Shape Zero do not keep fixed geometry vertices selected/active after repair #2456

Merged pull requests:

  • AfterEffects: Move implementation to OpenPype #2543
  • Maya: Remove Maya Look Assigner check on startup #2540
  • build(deps): bump shelljs from 0.8.4 to 0.8.5 in /website #2538
  • build(deps): bump follow-redirects from 1.14.4 to 1.14.7 in /website #2534
  • Nuke: Merge avalon's implementation into OpenPype #2514
  • Maya: Vray fix proxies look assignment #2392
  • Bump algoliasearch-helper from 3.4.4 to 3.6.2 in /website #2297

3.7.0 (2022-01-04)

Full Changelog

Deprecated:

  • General: Default modules hierarchy n2 #2368

📖 Documentation

  • docs[website]: Add Ellipse Studio logo as an OpenPype contributor #2324

🆕 New features

  • Settings UI use OpenPype styles #2296
  • Store typed version dependencies for workfiles #2192
  • OpenPypeV3: add key task type, task shortname and user to path templating construction #2157
  • Nuke: Alembic model workflow #2140
  • TVPaint: Load workfile from published. #1980

🚀 Enhancements

  • General: Workdir extra folders #2462
  • Photoshop: New style validations for New publisher #2429
  • General: Environment variables groups #2424
  • Unreal: Dynamic menu created in Python #2422
  • Settings UI: Hyperlinks to settings #2420
  • Modules: JobQueue module moved one hierarchy level higher #2419
  • TimersManager: Start timer post launch hook #2418
  • General: Run applications as separate processes under linux #2408
  • Ftrack: Check existence of object type on recreation #2404
  • Enhancement: Global cleanup plugin that explicitly remove paths from context #2402
  • General: MongoDB ability to specify replica set groups #2401
  • Flame: moving utility_scripts to api folder also with scripts #2385
  • Centos 7 dependency compatibility #2384
  • Enhancement: Settings: Use project settings values from another project #2382
  • Blender 3: Support auto install for new blender version #2377
  • Maya add render image path to settings #2375
  • Settings: Webpublisher in hosts enum #2367
  • Hiero: python3 compatibility #2365
  • Burnins: Be able recognize mxf OPAtom format #2361
  • Maya: Add is_static_image_plane and is_in_all_views option in imagePlaneLoader #2356
  • Local settings: Copyable studio paths #2349
  • Assets Widget: Clear model on project change #2345
  • General: OpenPype default modules hierarchy #2338
  • TVPaint: Move implementation to OpenPype #2336
  • General: FFprobe error exception contain original error message #2328
  • Resolve: Add experimental button to menu #2325
  • Hiero: Add experimental tools action #2323
  • Input links: Cleanup and unification of differences #2322
  • General: Don't validate vendor bin with executing them #2317
  • General: Multilayer EXRs support #2315
  • General: Run process log stderr as info log level #2309
  • General: Reduce vendor imports #2305
  • Tools: Cleanup of unused classes #2304
  • Project Manager: Added ability to delete project #2298
  • Ftrack: Synchronize input links #2287
  • StandalonePublisher: Remove unused plugin ExtractHarmonyZip #2277
  • Ftrack: Support multiple reviews #2271
  • Ftrack: Remove unused clean component plugin #2269
  • Royal Render: Support for rr channels in separate dirs #2268
  • Houdini: Add experimental tools action #2267
  • Nuke: extract baked review videos presets #2248
  • TVPaint: Workers rendering #2209
  • OpenPypeV3: Add key parent asset to path templating construction #2186

🐛 Bug fixes

  • TVPaint: Create render layer dialog is in front #2471
  • Short Pyblish plugin path #2428
  • PS: Introduced settings for invalid characters to use in ValidateNaming plugin #2417
  • Settings UI: Breadcrumbs path does not create new entities #2416
  • AfterEffects: Variant 2022 is in defaults but missing in schemas #2412
  • Nuke: baking representations was not additive #2406
  • General: Fix access to environments from default settings #2403
  • Fix: Placeholder Input color set fix #2399
  • Settings: Fix state change of wrapper label #2396
  • Flame: fix ftrack publisher #2381
  • hiero: solve custom ocio path #2379
  • hiero: fix workio and flatten #2378
  • Nuke: fixing menu re-drawing during context change #2374
  • Webpublisher: Fix assignment of families of TVpaint instances #2373
  • Nuke: fixing node name based on switched asset name #2369
  • JobQueue: Fix loading of settings #2362
  • Tools: Placeholder color #2359
  • Launcher: Minimize button on MacOs #2355
  • StandalonePublisher: Fix import of constant #2354
  • Houdini: Fix HDA creation #2350
  • Adobe products show issue #2347
  • Maya Look Assigner: Fix Python 3 compatibility #2343
  • Remove wrongly used host for hook #2342
  • Tools: Use Qt context on tools show #2340
  • Flame: Fix default argument value in custom dictionary #2339
  • Timers Manager: Disable auto stop timer on linux platform #2334
  • nuke: bake preset single input exception #2331
  • Hiero: fixing multiple templates at a hierarchy parent #2330
  • Fix - provider icons are pulled from a folder #2326
  • InputLinks: Typo in "inputLinks" key #2314
  • Deadline timeout and logging #2312
  • nuke: do not multiply representation on class method #2311
  • Workfiles tool: Fix task formatting #2306
  • Delivery: Fix delivery paths created on windows #2302
  • Maya: Deadline - fix limit groups #2295
  • Royal Render: Fix plugin order and OpenPype auto-detection #2291
  • New Publisher: Fix mapping of indexes #2285
  • Alternate site for site sync doesnt work for sequences #2284
  • FFmpeg: Execute ffprobe using list of arguments instead of string command #2281
  • Nuke: Anatomy fill data use task as dictionary #2278
  • Bug: fix variable name _asset_id in workfiles application #2274
  • Version handling fixes #2272

Merged pull requests:

  • Maya: Replaced PATH usage with vendored oiio path for maketx utility #2405
  • [Fix][MAYA] Handle message type attribute within CollectLook #2394
  • Add validator to check correct version of extension for PS and AE #2387
  • Maya: configurable model top level validation #2321
  • Create test publish class for After Effects #2270

3.6.4 (2021-11-23)

Full Changelog

🐛 Bug fixes

  • Nuke: inventory update removes all loaded read nodes #2294

3.6.3 (2021-11-19)

Full Changelog

🐛 Bug fixes

  • Deadline: Fix publish targets #2280

3.6.2 (2021-11-18)

Full Changelog

🚀 Enhancements

  • Tools: Assets widget #2265
  • SceneInventory: Choose loader in asset switcher #2262
  • Style: New fonts in OpenPype style #2256
  • Tools: SceneInventory in OpenPype #2255
  • Tools: Tasks widget #2251
  • Tools: Creator in OpenPype #2244
  • Added endpoint for configured extensions #2221

🐛 Bug fixes

  • Tools: Parenting of tools in Nuke and Hiero #2266
  • limiting validator to specific editorial hosts #2264
  • Tools: Select Context dialog attribute fix #2261
  • Maya: Render publishing fails on linux #2260
  • LookAssigner: Fix tool reopen #2259
  • Standalone: editorial not publishing thumbnails on all subsets #2258
  • Burnins: Support mxf metadata #2247
  • Maya: Support for configurable AOV separator characters #2197
  • Maya: texture colorspace modes in looks #2195

3.6.1 (2021-11-16)

Full Changelog

🐛 Bug fixes

  • Loader doesn't allow changing of version before loading #2254

3.6.0 (2021-11-15)

Full Changelog

📖 Documentation

  • Add alternative sites for Site Sync #2206
  • Add command line way of running site sync server #2188

🆕 New features

  • Add validate active site button to sync queue on a project #2176
  • Maya : Colorspace configuration #2170
  • Blender: Added support for audio #2168
  • Flame: a host basic integration #2165
  • Houdini: simple HDA workflow #2072
  • Basic Royal Render Integration #2061
  • Camera handling between Blender and Unreal #1988
  • switch PyQt5 for PySide2 #1744

🚀 Enhancements

  • Tools: Subset manager in OpenPype #2243
  • General: Skip module directories without init file #2239
  • General: Static interfaces #2238
  • Style: Fix transparent image in style #2235
  • Add a "following workfile versioning" option on publish #2225
  • Modules: Module can add cli commands #2224
  • Webpublisher: Separate webpublisher logic #2222
  • Add both side availability on Site Sync sites to Loader #2220
  • Tools: Center loader and library loader on show #2219
  • Maya : Validate shape zero #2212
  • Maya : validate unique names #2211
  • Tools: OpenPype stylesheet in workfiles tool #2208
  • Ftrack: Replace Queue with deque in event handlers logic #2204
  • Tools: New select context dialog #2200
  • Maya : Validate mesh ngons #2199
  • Dirmap in Nuke #2198
  • Delivery: Check 'frame' key in template for sequence delivery #2196
  • Settings: Site sync project settings improvement #2193
  • Usage of tools code #2185
  • Settings: Dictionary based on project roots #2184
  • Subset name: Be able to pass asset document to get subset name #2179
  • Tools: Experimental tools #2167
  • Loader: Refactor and use OpenPype stylesheets #2166
  • Add loader for linked smart objects in photoshop #2149
  • Burnins: DNxHD profiles handling #2142
  • Tools: Single access point for host tools #2139

🐛 Bug fixes

  • Ftrack: Sync project ftrack id cache issue #2250
  • Ftrack: Session creation and Prepare project #2245
  • Added queue for studio processing in PS #2237
  • Python 2: Unicode to string conversion #2236
  • Fix - enum for color coding in PS #2234
  • Pyblish Tool: Fix targets handling #2232
  • Ftrack: Base event fix of 'get_project_from_entity' method #2214
  • Maya : multiple subsets review broken #2210
  • Fix - different command used for Linux and Mac OS #2207
  • Tools: Workfiles tool don't use avalon widgets #2205
  • Ftrack: Fill missing ftrack id on mongo project #2203
  • Project Manager: Fix copying of tasks #2191
  • StandalonePublisher: Source validator don't expect representations #2190
  • Blender: Fix trying to pack an image when the shader node has no texture #2183
  • Maya: review viewport settings #2177
  • MacOS: Launching of applications may cause Permissions error #2175
  • Maya: Aspect ratio #2174
  • Blender: Fix 'Deselect All' with object not in 'Object Mode' #2163
  • Tools: Stylesheets are applied after tool show #2161
  • Maya: Collect render - fix UNC path support 🐛 #2158
  • Maya: Fix hotbox broken by scriptsmenu #2151
  • Ftrack: Ignore save warnings exception in Prepare project action #2150
  • Loader thumbnails with smooth edges #2147
  • Added validator for source files for Standalone Publisher #2138

Merged pull requests:

  • Bump pillow from 8.2.0 to 8.3.2 #2162
  • Bump axios from 0.21.1 to 0.21.4 in /website #2059

3.5.0 (2021-10-17)

Full Changelog

Deprecated:

  • Maya: Change mayaAscii family to mayaScene #2106

🆕 New features

  • Added project and task into context change message in Maya #2131
  • Add ExtractBurnin to photoshop review #2124
  • PYPE-1218 - changed namespace to contain subset name in Maya #2114
  • Added running configurable disk mapping command before start of OP #2091
  • SFTP provider #2073
  • Maya: Validate setdress top group #2068
  • Maya: Enable publishing render attrib sets e.g. V-Ray Displacement with model #1955

🚀 Enhancements

  • Maya: make rig validators configurable in settings #2137
  • Settings: Updated readme for entity types in settings #2132
  • Nuke: unified clip loader #2128
  • Settings UI: Project model refreshing and sorting #2104
  • Create Read From Rendered - Disable Relative paths by default #2093
  • Added choosing different dirmap mapping if workfile synched locally #2088
  • General: Remove IdleManager module #2084
  • Tray UI: Message box about missing settings defaults #2080
  • Tray UI: Show menu where first click happened #2079
  • Global: add global validators to settings #2078
  • Use CRF for burnin when available #2070
  • Project manager: Filter first item after selection of project #2069
  • Nuke: Adding still image family workflow #2064
  • Maya: validate authorized loaded plugins #2062
  • Tools: add support for pyenv on windows #2051
  • SyncServer: Dropbox Provider #1979
  • Burnin: Get data from context with defined keys. #1897
  • Timers manager: Get task time #1896
  • TVPaint: Option to stop timer on application exit. #1887

🐛 Bug fixes

  • Maya: fix model publishing #2130
  • Fix - oiiotool wasn't recognized even if present #2129
  • General: Disk mapping group #2120
  • Hiero: publishing effect first time makes wrong resources path #2115
  • Add startup script for Houdini Core. #2110
  • TVPaint: Behavior name of loop also accept repeat #2109
  • Ftrack: Project settings save custom attributes skip unknown attributes #2103
  • Blender: Fix NoneType error when animation_data is missing for a rig #2101
  • Fix broken import in sftp provider #2100
  • Global: Fix docstring on publish plugin extract review #2097
  • Delivery Action Files Sequence fix #2096
  • General: Cloud mongo ca certificate issue #2095
  • TVPaint: Creator use context from workfile #2087
  • Blender: fix texture missing when publishing blend files #2085
  • General: Startup validations oiio tool path fix on linux #2083
  • Deadline: Collect deadline server does not check existence of deadline key #2082
  • Blender: fixed Curves with modifiers in Rigs #2081
  • Nuke UI scaling #2077
  • Maya: Fix multi-camera renders #2065
  • Fix Sync Queue when project disabled #2063

Merged pull requests:

  • Bump pywin32 from 300 to 301 #2086

3.4.1 (2021-09-23)

Full Changelog

🆕 New features

  • Settings: Flag project as deactivated and hide from tools' view #2008

🚀 Enhancements

  • General: Startup validations #2054
  • Nuke: proxy mode validator #2052
  • Ftrack: Removed ftrack interface #2049
  • Settings UI: Deffered set value on entity #2044
  • Loader: Families filtering #2043
  • Settings UI: Project view enhancements #2042
  • Settings for Nuke IncrementScriptVersion #2039
  • Loader & Library loader: Use tools from OpenPype #2038
  • Adding predefined project folders creation in PM #2030
  • WebserverModule: Removed interface of webserver module #2028
  • TimersManager: Removed interface of timers manager #2024
  • Feature Maya import asset from scene inventory #2018

🐛 Bug fixes

  • Timers manger: Typo fix #2058
  • Hiero: Editorial fixes #2057
  • Differentiate jpg sequences from thumbnail #2056
  • FFmpeg: Split command to list does not work #2046
  • Removed shell flag in subprocess call #2045

Merged pull requests:

  • Bump prismjs from 1.24.0 to 1.25.0 in /website #2050

3.4.0 (2021-09-17)

Full Changelog

📖 Documentation

  • Documentation: Ftrack launch argsuments update #2014
  • Nuke Quick Start / Tutorial #1952
  • Houdini: add Camera, Point Cache, Composite, Redshift ROP and VDB Cache support #1821

🆕 New features

  • Nuke: Compatibility with Nuke 13 #2003
  • Maya: Add Xgen family support #1947
  • Feature/webpublisher backend #1876
  • Blender: Improved assets handling #1615

🚀 Enhancements

  • Added possibility to configure of synchronization of workfile version… #2041
  • General: Task types in profiles #2036
  • Console interpreter: Handle invalid sizes on initialization #2022
  • Ftrack: Show OpenPype versions in event server status #2019
  • General: Staging icon #2017
  • Ftrack: Sync to avalon actions have jobs #2015
  • Modules: Connect method is not required #2009
  • Settings UI: Number with configurable steps #2001
  • Moving project folder structure creation out of ftrack module #1989 #1996
  • Configurable items for providers without Settings #1987
  • Global: Example addons #1986
  • Standalone Publisher: Extract harmony zip handle workfile template #1982
  • Settings UI: Number sliders #1978
  • Workfiles: Support more workfile templates #1966
  • Launcher: Fix crashes on action click #1964
  • Settings: Minor fixes in UI and missing default values #1963
  • Blender: Toggle system console works on windows #1962
  • Global: Settings defined by Addons/Modules #1959
  • CI: change release numbering triggers #1954
  • Global: Avalon Host name collector #1949
  • Global: Define hosts in CollectSceneVersion #1948
  • Add face sets to exported alembics #1942
  • OpenPype: Add version validation and --headless mode and update progress 🔄 #1939
  • #1894 - adds host to template_name_profiles for filtering #1915
  • Environments: Tool environments in alphabetical order #1910
  • Disregard publishing time. #1888
  • Dynamic modules #1872

🐛 Bug fixes

  • Workfiles tool: Task selection #2040
  • Ftrack: Delete old versions missing settings key #2037
  • Nuke: typo on a button #2034
  • Hiero: Fix "none" named tags #2033
  • FFmpeg: Subprocess arguments as list #2032
  • General: Fix Python 2 breaking line #2016
  • Bugfix/webpublisher task type #2006
  • Nuke thumbnails generated from middle of the sequence #1992
  • Nuke: last version from path gets correct version #1990
  • nuke, resolve, hiero: precollector order lest then 0.5 #1984
  • Last workfile with multiple work templates #1981
  • Collectors order #1977
  • Stop timer was within validator order range. #1975
  • Ftrack: arrow submodule has https url source #1974
  • Ftrack: Fix hosts attribute in collect ftrack username #1972
  • Deadline: Houdini plugins in different hierarchy #1970
  • Removed deprecated submodules #1967
  • Global: ExtractJpeg can handle filepaths with spaces #1961
  • Resolve path when adding to zip #1960

Merged pull requests:

  • Bump url-parse from 1.5.1 to 1.5.3 in /website #1958
  • Bump path-parse from 1.0.6 to 1.0.7 in /website #1933

3.3.1 (2021-08-20)

Full Changelog

🐛 Bug fixes

  • TVPaint: Fixed rendered frame indexes #1946
  • Maya: Menu actions fix #1945
  • standalone: editorial shared object problem #1941
  • Bugfix nuke deadline app name #1928

3.3.0 (2021-08-17)

Full Changelog

📖 Documentation

  • Standalone Publish of textures family #1834

🆕 New features

  • Settings UI: Breadcrumbs in settings #1932
  • Maya: Scene patching 🩹on submission to Deadline #1923
  • Feature AE local render #1901

🚀 Enhancements

  • Python console interpreter #1940
  • Global: Updated logos and Default settings #1927
  • Check for missing Python when using pyenv #1925
  • Settings: Default values for enum #1920
  • Settings UI: Modifiable dict view enhance #1919
  • submodules: avalon-core update #1911
  • Ftrack: Where I run action enhancement #1900
  • Ftrack: Private project server actions #1899
  • Support nested studio plugins paths. #1898
  • Settings: global validators with options #1892
  • Settings: Conditional dict enum positioning #1891
  • Expose stop timer through rest api. #1886
  • TVPaint: Increment workfile #1885
  • Allow Multiple Notes to run on tasks. #1882
  • Prepare for pyside2 #1869
  • Filter hosts in settings host-enum #1868
  • Local actions with process identifier #1867
  • Workfile tool start at host launch support #1865
  • Anatomy schema validation #1864
  • Ftrack prepare project structure #1861
  • Maya: support for configurable dirmap 🗺️ #1859
  • Independent general environments #1853
  • TVPaint Start Frame #1844
  • Ftrack push attributes action adds traceback to job #1843
  • Prepare project action enhance #1838
  • nuke: settings create missing default subsets #1829
  • Update poetry lock #1823
  • Settings: settings for plugins #1819
  • Settings list can use template or schema as object type #1815
  • Maya: Deadline custom settings #1797
  • Maya: Shader name validation #1762

🐛 Bug fixes

  • Fix - ftrack family was added incorrectly in some cases #1935
  • Fix - Deadline publish on Linux started Tray instead of headless publishing #1930
  • Maya: Validate Model Name - repair accident deletion in settings defaults #1929
  • Nuke: submit to farm failed due ftrack family remove #1926
  • Fix - validate takes repre["files"] as list all the time #1922
  • standalone: validator asset parents #1917
  • Nuke: update video file crassing #1916
  • Fix - texture validators for workfiles triggers only for textures workfiles #1914
  • Settings UI: List order works as expected #1906
  • Hiero: loaded clip was not set colorspace from version data #1904
  • Pyblish UI: Fix collecting stage processing #1903
  • Burnins: Use input's bitrate in h624 #1902
  • Bug: fixed python detection #1893
  • global: integrate name missing default template #1890
  • publisher: editorial plugins fixes #1889
  • Normalize path returned from Workfiles. #1880
  • Workfiles tool event arguments fix #1862
  • imageio: fix grouping #1856
  • Maya: don't add reference members as connections to the container set 📦 #1855
  • publisher: missing version in subset prop #1849
  • Ftrack type error fix in sync to avalon event handler #1845
  • Nuke: updating effects subset fail #1841
  • nuke: write render node skipped with crop #1836
  • Project folder structure overrides #1813
  • Maya: fix yeti settings path in extractor #1809
  • Failsafe for cross project containers. #1806
  • Houdini colector formatting keys fix #1802
  • Settings error dialog on show #1798
  • Application launch stdout/stderr in GUI build #1684
  • Nuke: re-use instance nodes output path #1577

Merged pull requests:

  • Fix - make AE workfile publish to Ftrack configurable #1937
  • Add support for multiple Deadline ☠️ servers #1905
  • Maya: add support for RedshiftNormalMap node, fix tx linear space 🚀 #1863
  • Maya: expected files -> render products ⚙️ overhaul #1812
  • PS, AE - send actual context when another webserver is running #1811

3.2.0 (2021-07-13)

Full Changelog

📖 Documentation

  • Fix: staging and --use-version option #1786
  • Subset template and TVPaint subset template docs #1717
  • Overscan color extract review #1701

🚀 Enhancements

  • Nuke: ftrack family plugin settings preset #1805
  • Standalone publisher last project #1799
  • Ftrack Multiple notes as server action #1795
  • Settings conditional dict #1777
  • Settings application use python 2 only where needed #1776
  • Settings UI copy/paste #1769
  • Workfile tool widths #1766
  • Push hierarchical attributes care about task parent changes #1763
  • Application executables with environment variables #1757
  • Deadline: Nuke submission additional attributes #1756
  • Settings schema without prefill #1753
  • Settings Hosts enum #1739
  • Validate containers settings #1736
  • PS - added loader from sequence #1726
  • Autoupdate launcher #1725
  • Toggle Ftrack upload in StandalonePublisher #1708
  • Nuke: Prerender Frame Range by default #1699
  • Smoother edges of color triangle #1695

🐛 Bug fixes

  • nuke: fixing wrong name of family folder when used existing frames #1803
  • Collect ftrack family bugs #1801
  • Invitee email can be None which break the Ftrack commit. #1788
  • Otio unrelated error on import #1782
  • FFprobe streams order #1775
  • Fix - single file files are str only, cast it to list to count properly #1772
  • Environments in app executable for MacOS #1768
  • Project specific environments #1767
  • Settings UI with refresh button #1764
  • Standalone publisher thumbnail extractor fix #1761
  • Anatomy others templates don't cause crash #1758
  • Backend acre module commit update #1745
  • hiero: precollect instances failing when audio selected #1743
  • Hiero: creator instance error #1742
  • Nuke: fixing render creator for no selection format failing #1741
  • StandalonePublisher: failing collector for editorial #1738
  • Local settings UI crash on missing defaults #1737
  • TVPaint white background on thumbnail #1735
  • Ftrack missing custom attribute message #1734
  • Launcher project changes #1733
  • Ftrack sync status #1732
  • TVPaint use layer name for default variant #1724
  • Default subset template for TVPaint review and workfile families #1716
  • Maya: Extract review hotfix #1714
  • Settings: Imageio improving granularity #1711
  • Application without executables #1679
  • Unreal: launching on Linux #1672

Merged pull requests:

  • Bump prismjs from 1.23.0 to 1.24.0 in /website #1773
  • TVPaint ftrack family #1755

2.18.4 (2021-06-24)

Full Changelog

2.18.3 (2021-06-23)

Full Changelog

2.18.2 (2021-06-16)

Full Changelog

3.1.0 (2021-06-15)

Full Changelog

📖 Documentation

  • Feature Slack integration #1657

🚀 Enhancements

  • Log Viewer with OpenPype style #1703
  • Scrolling in OpenPype info widget #1702
  • OpenPype style in modules #1694
  • Sort applications and tools alphabetically in Settings UI #1689
  • #683 - Validate Frame Range in Standalone Publisher #1683
  • Hiero: old container versions identify with red color #1682
  • Project Manger: Default name column width #1669
  • Remove outline in stylesheet #1667
  • TVPaint: Creator take layer name as default value for subset variant #1663
  • TVPaint custom subset template #1662
  • Editorial: conform assets validator #1659
  • Nuke - Publish simplification #1653
  • #1333 - added tooltip hints to Pyblish buttons #1649

🐛 Bug fixes

  • Nuke: broken publishing rendered frames #1707
  • Standalone publisher Thumbnail export args #1705
  • Bad zip can break OpenPype start #1691
  • Hiero: published whole edit mov #1687
  • Ftrack subprocess handle of stdout/stderr #1675
  • Settings list race condifiton and mutable dict list conversion #1671
  • Mac launch arguments fix #1660
  • Fix missing dbm python module #1652
  • Transparent branches in view on Mac #1648
  • Add asset on task item #1646
  • Project manager save and queue #1645
  • New project anatomy values #1644
  • Farm publishing: check if published items do exist #1573

Merged pull requests:

  • Bump normalize-url from 4.5.0 to 4.5.1 in /website #1686

3.0.0

Full Changelog

Configuration

  • Studio Settings GUI: no more json configuration files.
  • OpenPype Modules can be turned on and off.
  • Easy to add Application versions.
  • Per Project Environment and plugin management.
  • Robust profile system for creating reviewables and burnins, with filtering based on Application, Task and data family.
  • Configurable publish plugins.
  • Options to make any validator or extractor, optional or disabled.
  • Color Management is now unified under anatomy settings.
  • Subset naming and grouping is fully configurable.
  • All project attributes can now be set directly in OpenPype settings.
  • Studio Setting can be locked to prevent unwanted artist changes.
  • You can now add per project and per task type templates for workfile initialization in most hosts.
  • Too many other individual configurable option to list in this changelog :)

Local Settings

  • Local Settings GUI where users can change certain option on individual basis.
    • Application executables.
    • Project roots.
    • Project site sync settings.

Build, Installation and Deployments

  • No requirements on artist machine.
  • Fully distributed workflow possible.
  • Self-contained installation.
  • Available on all three major platforms.
  • Automatic artist OpenPype updates.
  • Studio OpenPype repository for updates distribution.
  • Robust Build system.
  • Safe studio update versioning with staging and production options.
  • MacOS build generates .app and .dmg installer.
  • Windows build with installer creation script.

Misc

  • System and diagnostic info tool in the tray.
  • Launching application from Launcher indicates activity.
  • All project roots are now named. Single root project are now achieved by having a single named root in the project anatomy.
  • Every project root is cast into environment variable as well, so it can be used in DCC instead of absolute path (depends on DCC support for env vars).
  • Basic support for task types, on top of task names.
  • Timer now change automatically when the context is switched inside running application.
  • 'Master" versions have been renamed to "Hero".
  • Extract Burnins now supports file sequences and color settings.
  • Extract Review support overscan cropping, better letterboxes and background colour fill.
  • Delivery tool for copying and renaming any published assets in bulk.
  • Harmony, Photoshop and After Effects now connect directly with OpenPype tray instead of spawning their own terminal.

Project Manager GUI

  • Create Projects.
  • Create Shots and Assets.
  • Create Tasks and assign task types.
  • Fill required asset attributes.
  • Validations for duplicated or unsupported names.
  • Archive Assets.
  • Move Asset within hierarchy.

Site Sync (beta)

  • Synchronization of published files between workstations and central storage.
  • Ability to add arbitrary storage providers to the Site Sync system.
  • Default setup includes Disk and Google Drive providers as examples.
  • Access to availability information from Loader and Scene Manager.
  • Sync queue GUI with filtering, error and status reporting.
  • Site sync can be configured on a per-project basis.
  • Bulk upload and download from the loader.

Ftrack

  • Actions have customisable roles.
  • Settings on all actions are updated live and don't need openpype restart.
  • Ftrack module can now be turned off completely.
  • It is enough to specify ftrack server name and the URL will be formed correctly. So instead of mystudio.ftrackapp.com, it's possible to use simply: "mystudio".

Editorial

  • Fully OTIO based editorial publishing.
  • Completely re-done Hiero publishing to be a lot simpler and faster.
  • Consistent conforming from Resolve, Hiero and Standalone Publisher.

Backend

  • OpenPype and Avalon now always share the same database (in 2.x is was possible to split them).
  • Major codebase refactoring to allow for better CI, versioning and control of individual integrations.
  • OTIO is bundled with build.
  • OIIO is bundled with build.
  • FFMPEG is bundled with build.
  • Rest API and host WebSocket servers have been unified into a single local webserver.
  • Maya look assigner has been integrated into the main codebase.
  • Publish GUI has been integrated into the main codebase.
  • Studio and Project settings overrides are now stored in Mongo.
  • Too many other backend fixes and tweaks to list :), you can see full changelog on github for those.
  • OpenPype uses Poetry to manage it's virtual environment when running from code.
  • all applications can be marked as python 2 or 3 compatible to make the switch a bit easier.

Pull Requests since 3.0.0-rc.6

Implemented enhancements:

Fixed bugs:

  • Library loader load asset documents on OpenPype start #1603
  • Resolve: unable to load the same footage twice #1317
  • Resolve: unable to load footage #1316
  • Add required Python 2 modules #1291
  • GUi scaling with hires displays #705
  • Maya: non unicode string in publish validation #673
  • Nuke: Rendered Frame validation is triggered by multiple collections #156
  • avalon-core debugging failing #80
  • Only check arnold shading group if arnold is used #72
  • Sync server Qt layout fix #1621 (iLLiCiTiT)
  • Console Listener on Python 2 fix #1620 (iLLiCiTiT)
  • Bug: Initialize blessed term only in console mode #1619 (antirotor)
  • Settings template skip paths support wrappers #1618 (iLLiCiTiT)
  • Maya capture 'isolate_view' fix + minor corrections #1617 (2-REC)
  • MacOs Fix launch of standalone publisher #1616 (iLLiCiTiT)
  • 'Delivery action' report fix + typos #1612 (2-REC)
  • List append fix in mutable dict settings #1599 (iLLiCiTiT)
  • Documentation: Maya: fix review #1598 (antirotor)
  • Bugfix: Set certifi CA bundle for all platforms #1596 (antirotor)

Merged pull requests:

2.18.1 (2021-06-03)

Full Changelog

Enhancements:

  • Faster hierarchical values push #1626
  • Feature Delivery in library loader #1549
  • Hiero: Initial frame publish support. #1172

Fixed bugs:

  • Maya capture 'isolate_view' fix + minor corrections #1614
  • 'Delivery action' report fix +typos #1613
  • Delivery in LibraryLoader - fixed sequence issue #1590
  • FFmpeg filters in quote marks #1588
  • Ftrack delete action cause circular error #1581
  • Fix Maya playblast. #1566
  • More failsafes prevent errored runs. #1554
  • Celaction publishing #1539
  • celaction: app not starting #1533

Merged pull requests:

  • Maya: Render workflow fixes - 2.0 backport #1609
  • Maya Hardware support #1553

CI/3.0.0-rc.6 (2021-05-27)

Full Changelog

Implemented enhancements:

Fixed bugs:

Merged pull requests:

CI/3.0.0-rc.5 (2021-05-19)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Unified schema definition #874
  • Maya: fix look assignment #1526 (antirotor)
  • Bugfix Sync server local site issues #1523 (kalisp)
  • Store as list dictionary check initial value with right type #1520 (iLLiCiTiT)
  • Maya: wrong collection of playblasted frames #1515 (mkolar)
  • Convert pyblish logs to string at the moment of logging #1512 (iLLiCiTiT)
  • 3.0 | nuke: fixing start_at with option gui #1509 (jezscha)
  • Tests: fix pype -> openpype to make tests work again #1508 (antirotor)

Merged pull requests:

2.18.0 (2021-05-18)

Full Changelog

Implemented enhancements:

  • Default environments per host imlementation #1405
  • Blender: publish layout json #1346
  • Ftrack without autosync in Pype 3 #1128
  • Launcher: started action indicator #1102
  • Launch arguments of applications #1094
  • Publish: instance info #724
  • Review: ability to control review length #482
  • Colorized recognition of creator result #394
  • event assign user to started task #49
  • rebuild containers from reference in maya #55
  • nuke Load metadata #66
  • Maya: Safer handling of expected render output names #1496 (create-issue-branch[bot])
  • TVPaint: Increment workfile version on successfull publish. #1489 (tokejepsen)
  • Use SubsetLoader and multiple contexts for delete_old_versions #1484 (tokejepsen)
  • Maya: Use of multiple deadline servers #1483 (antirotor)

Fixed bugs:

  • Igniter version resolution doesn't consider it's own version #1505
  • Maya: Safer handling of expected render output names #1159
  • Harmony: Invalid render output from non-conventionally named instance #871
  • Existing subsets hints in creator #1503 (iLLiCiTiT)
  • nuke: space in node name breaking process #1494 (jezscha)
  • Maya: wrong collection of playblasted frames #1517 (mkolar)
  • Existing subsets hints in creator #1502 (iLLiCiTiT)
  • Use instance frame start instead of timeline. #1486 (tokejepsen)
  • Maya: Redshift - set proper start frame on proxy #1480 (antirotor)

Closed issues:

  • Nuke: wrong "star at" value on render load #1352
  • DV Resolve - loading/updating - image video #915

Merged pull requests:

CI/3.0.0-rc.4 (2021-05-12)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Harmony: palettes publishing #1439
  • Photoshop: validation for already created images #1435
  • Nuke Extracts Thumbnail from frame out of shot range #963
  • Instance in same Context repairing #390
  • User Inactivity - Start timers sets wrong time #91
  • Use instance frame start instead of timeline #1499 (mkolar)
  • Various smaller fixes #1498 (mkolar)
  • nuke: space in node name breaking process #1495 (jezscha)
  • Codec determination in extract burnin #1492 (iLLiCiTiT)
  • Undefined constant in subprocess module #1485 (iLLiCiTiT)
  • List entity catch add/remove item changes properly #1482 (iLLiCiTiT)
  • Resolve: additional fixes of publishing workflow #1481 (jezscha)
  • Photoshop: validation for already created images #1436 (create-issue-branch[bot])

Merged pull requests:

2.17.3 (2021-05-06)

Full Changelog

Fixed bugs:

  • Nuke: workfile version synced to db version always #1479 (jezscha)

CI/3.0.0-rc.3 (2021-05-05)

Full Changelog

Implemented enhancements:

Fixed bugs:

CI/3.0.0-rc.2 (2021-05-04)

Full Changelog

Implemented enhancements:

Fixed bugs:

2.17.2 (2021-05-04)

Full Changelog

Implemented enhancements:

  • Forward/Backward compatible apps and tools with OpenPype 3 #1463 (iLLiCiTiT)

CI/3.0.0-rc.1 (2021-05-04)

Full Changelog

Implemented enhancements:

Fixed bugs:

Closed issues:

Merged pull requests:

2.17.1 (2021-04-30)

Full Changelog

Enhancements:

  • Nuke: deadline submission with gpu #1414
  • TVPaint frame range definition #1424
  • PS - group all published instances #1415
  • Add task name to context pop up. #1383
  • Enhance review letterbox feature. #1371

Fixed bugs:

  • Houdini menu filename #1417
  • AE - validation for duration was 1 frame shorter #1426

Merged pull requests:

  • Maya: Vray - problem getting all file nodes for look publishing #1399
  • Maya: Support for Redshift proxies #1360

2.17.0 (2021-04-20)

Full Changelog

Enhancements:

  • Forward compatible ftrack group #1243
  • Settings in mongo as dict #1221
  • Maya: Make tx option configurable with presets #1328
  • TVPaint asset name validation #1302
  • TV Paint: Set initial project settings. #1299
  • TV Paint: Validate mark in and out. #1298
  • Validate project settings #1297
  • After Effects: added SubsetManager #1234
  • Show error message in pyblish UI #1206

Fixed bugs:

  • Hiero: fixing source frame from correct object #1362
  • Nuke: fix colourspace, prerenders and nuke panes opening #1308
  • AE remove orphaned instance from workfile - fix self.stub #1282
  • Nuke: deadline submission with search replaced env values from preset #1194
  • Ftrack custom attributes in bulks #1312
  • Ftrack optional pypclub role #1303
  • After Effects: remove orphaned instances #1275
  • Avalon schema names #1242
  • Handle duplication of Task name #1226
  • Modified path of plugin loads for Harmony and TVPaint #1217
  • Regex checks in profiles filtering #1214
  • Bulk mov strict task #1204
  • Update custom ftrack session attributes #1202
  • Nuke: write node colorspace ignore default\(\) label #1199
  • Nuke: reverse search to make it more versatile #1178

2.16.0 (2021-03-22)

Full Changelog

Enhancements:

  • Nuke: deadline submit limit group filter #1167
  • Maya: support for Deadline Group and Limit Groups - backport 2.x #1156
  • Maya: fixes for Redshift support #1152
  • Nuke: adding preset for a Read node name to all img and mov Loaders #1146
  • nuke deadline submit with environ var from presets overrides #1142
  • Change timers after task change #1138
  • Nuke: shortcuts for Pype menu #1127
  • Nuke: workfile template #1124
  • Sites local settings by site name #1117
  • Reset loader's asset selection on context change #1106
  • Bulk mov render publishing #1101
  • Photoshop: mark publishable instances #1093
  • Added ability to define BG color for extract review #1088
  • TVPaint extractor enhancement #1080
  • Photoshop: added support for .psb in workfiles #1078
  • Optionally add task to subset name #1072
  • Only extend clip range when collecting. #1008
  • Collect audio for farm reviews. #1073

Fixed bugs:

  • Fix path spaces in jpeg extractor #1174
  • Maya: Bugfix: superclass for CreateCameraRig #1166
  • Maya: Submit to Deadline - fix typo in condition #1163
  • Avoid dot in repre extension #1125
  • Fix versions variable usage in standalone publisher #1090
  • Collect instance data fix subset query #1082
  • Fix getting the camera name. #1067
  • Nuke: Ensure "NUKE_TEMP_DIR" is not part of the Deadline job environment. #1064

2.15.3 (2021-02-26)

Full Changelog

Enhancements:

  • Maya: speedup renderable camera collection #1053
  • Harmony - add regex search to filter allowed task names for collectin… #1047

Fixed bugs:

  • Ftrack integrate hierarchy fix #1085
  • Explicit subset filter in anatomy instance data #1059
  • TVPaint frame offset #1057
  • Auto fix unicode strings #1046

2.15.2 (2021-02-19)

Full Changelog

Enhancements:

  • Maya: Vray scene publishing #1013

Fixed bugs:

  • Fix entity move under project #1040
  • smaller nuke fixes from production #1036
  • TVPaint thumbnail extract fix #1031

2.15.1 (2021-02-12)

Full Changelog

Enhancements:

  • Delete version as loader action #1011
  • Delete old versions #445

Fixed bugs:

  • PS - remove obsolete functions from pywin32 #1006
  • Clone description of review session objects. #922

2.15.0 (2021-02-09)

Full Changelog

Enhancements:

  • Resolve - loading and updating clips #932
  • Release/2.15.0 #926
  • Photoshop: add option for template.psd and prelaunch hook #894
  • Nuke: deadline presets #993
  • Maya: Alembic only set attributes that exists. #986
  • Harmony: render local and handle fixes #981
  • PSD Bulk export of ANIM group #965
  • AE - added prelaunch hook for opening last or workfile from template #944
  • PS - safer handling of loading of workfile #941
  • Maya: Handling Arnold referenced AOVs #938
  • TVPaint: switch layer IDs for layer names during identification #903
  • TVPaint audio/sound loader #893
  • Clone review session with children. #891
  • Simple compositing data packager for freelancers #884
  • Harmony deadline submission #881
  • Maya: Optionally hide image planes from reviews. #840
  • Maya: handle referenced AOVs for Vray #824
  • DWAA/DWAB support on windows #795
  • Unreal: animation, layout and setdress updates #695

Fixed bugs:

  • Maya: Looks - disable hardlinks #995
  • Fix Ftrack custom attribute update #982
  • Prores ks in burnin script #960
  • terminal.py crash on import #839
  • Extract review handle bizarre pixel aspect ratio #990
  • Nuke: add nuke related env var to sumbission #988
  • Nuke: missing preset's variable #984
  • Get creator by name fix #979
  • Fix update of project's tasks on Ftrack sync #972
  • nuke: wrong frame offset in mov loader #971
  • Create project structure action fix multiroot #967
  • PS: remove pywin installation from hook #964
  • Prores ks in burnin script #959
  • Subset family is now stored in subset document #956
  • DJV new version arguments #954
  • TV Paint: Fix single frame Sequence #953
  • nuke: missing file knob update #933
  • Photoshop: Create from single layer was failing #920
  • Nuke: baking mov with correct colorspace inherited from write #909
  • Launcher fix actions discover #896
  • Get the correct file path for the updated mov. #889
  • Maya: Deadline submitter - shared data access violation #831
  • Maya: Take into account vray master AOV switch #822

Merged pull requests:

  • Refactor blender to 3.0 format #934

2.14.6 (2021-01-15)

Full Changelog

Fixed bugs:

  • Nuke: improving of hashing path #885

Merged pull requests:

  • Hiero: cut videos with correct secons #892
  • Faster sync to avalon preparation #869

2.14.5 (2021-01-06)

Full Changelog

Merged pull requests:

  • Pype logger refactor #866

2.14.4 (2020-12-18)

Full Changelog

Merged pull requests:

  • Fix - AE - added explicit cast to int #837

2.14.3 (2020-12-16)

Full Changelog

Fixed bugs:

  • TVPaint repair invalid metadata #809
  • Feature/push hier value to nonhier action #807
  • Harmony: fix palette and image sequence loader #806

Merged pull requests:

  • respecting space in path #823

2.14.2 (2020-12-04)

Full Changelog

Enhancements:

  • Collapsible wrapper in settings #767

Fixed bugs:

  • Harmony: template extraction and palettes thumbnails on mac #768
  • TVPaint store context to workfile metadata 764 #766
  • Extract review audio cut fix #763

Merged pull requests:

  • AE: fix publish after background load #781
  • TVPaint store members key #769

2.14.1 (2020-11-27)

Full Changelog

Enhancements:

  • Settings required keys in modifiable dict #770
  • Extract review may not add audio to output #761

Fixed bugs:

  • After Effects: frame range, file format and render source scene fixes #760
  • Hiero: trimming review with clip event number #754
  • TVPaint: fix updating of loaded subsets #752
  • Maya: Vray handling of default aov #748
  • Maya: multiple renderable cameras in layer didn't work #744
  • Ftrack integrate custom attributes fix #742

2.14.0 (2020-11-23)

Full Changelog

Enhancements:

  • Render publish plugins abstraction #687
  • Shot asset build trigger status #736
  • Maya: add camera rig publishing option #721
  • Sort instances by label in pyblish gui #719
  • Synchronize ftrack hierarchical and shot attributes #716
  • 686 standalonepublisher editorial from image sequences #699
  • Ask user to select non-default camera from scene or create a new. #678
  • TVPaint: image loader with options #675
  • Maya: Camera name can be added to burnins. #674
  • After Effects: base integration with loaders #667
  • Harmony: Javascript refactoring and overall stability improvements #666

Fixed bugs:

  • Bugfix Hiero Review / Plate representation publish #743
  • Asset fetch second fix #726
  • TVPaint extract review fix #740
  • After Effects: Review were not being sent to ftrack #738
  • Maya: vray proxy was not loading #722
  • Maya: Vray expected file fixes #682
  • Missing audio on farm submission. #639

Deprecated:

  • Removed artist view from pyblish gui #717
  • Maya: disable legacy override check for cameras #715

Merged pull requests:

  • Application manager #728
  • Feature #664 3.0 lib refactor #706
  • Lib from illicit part 2 #700
  • 3.0 lib refactor - path tools #697

2.13.7 (2020-11-19)

Full Changelog

Fixed bugs:

  • Standalone Publisher: getting fps from context instead of nonexistent entity #729

2.13.6 (2020-11-15)

Full Changelog

Fixed bugs:

  • Maya workfile version wasn't syncing with renders properly #711
  • Maya: Fix for publishing multiple cameras with review from the same scene #710

2.13.5 (2020-11-12)

Full Changelog

Enhancements:

  • 3.0 lib refactor #664

Fixed bugs:

  • Wrong thumbnail file was picked when publishing sequence in standalone publisher #703
  • Fix: Burnin data pass and FFmpeg tool check #701

2.13.4 (2020-11-09)

Full Changelog

Enhancements:

  • AfterEffects integration with Websocket #663

Fixed bugs:

  • Photoshop uhiding hidden layers #688
  • #688 - Fix publishing hidden layers #692

Closed issues:

  • Nuke Favorite directories "shot dir" "project dir" - not working #684

Merged pull requests:

  • Nuke Favorite directories "shot dir" "project dir" - not working #684 #685

2.13.3 (2020-11-03)

Full Changelog

Enhancements:

  • TV paint base integration #612

Fixed bugs:

  • Fix ffmpeg executable path with spaces #680
  • Hotfix: Added default version number #679

2.13.2 (2020-10-28)

Full Changelog

Fixed bugs:

  • Nuke: wrong conditions when fixing legacy write nodes #665

2.13.1 (2020-10-23)

Full Changelog

Enhancements:

  • move maya look assigner to pype menu #292

Fixed bugs:

  • Layer name is not propagating to metadata in Photoshop #654
  • Loader in Photoshop fails with "can't set attribute" #650
  • Nuke Load mp4 wrong frame range #661
  • Hiero: Review video file adding one frame to the end #659

2.13.0 (2020-10-18)

Full Changelog

Enhancements:

  • Deadline Output Folder #636
  • Nuke Camera Loader #565
  • Deadline publish job shows publishing output folder #649
  • Get latest version in lib #642
  • Improved publishing of multiple representation from SP #638
  • Launch TvPaint shot work file from within Ftrack #631
  • Add mp4 support for RV action. #628
  • Maya: allow renders to have version synced with workfile #618
  • Renaming nukestudio host folder to hiero #617
  • Harmony: More efficient publishing #615
  • Ftrack server action improvement #608
  • Deadline user defaults to pype username if present #607
  • Standalone publisher now has icon #606
  • Nuke render write targeting knob improvement #603
  • Animated pyblish gui #602
  • Maya: Deadline - make use of asset dependencies optional #591
  • Nuke: Publishing, loading and updating alembic cameras #575
  • Maya: add look assigner to pype menu even if scriptsmenu is not available #573
  • Store task types in the database #572
  • Maya: Tiled EXRs to scanline EXRs render option #512
  • Fusion basic integration #452

Fixed bugs:

  • Burnin script did not propagate ffmpeg output #640
  • Pyblish-pype spacer in terminal wasn't transparent #646
  • Lib subprocess without logger #645
  • Nuke: prevent crash if we only have single frame in sequence #644
  • Burnin script logs better output #641
  • Missing audio on farm submission. #639
  • review from imagesequence error #633
  • Hiero: wrong order of fps clip instance data collecting #627
  • Add source for review instances. #625
  • Task processing in event sync #623
  • sync to avalon doesn t remove renamed task #619
  • Intent publish setting wasn't working with default value #562
  • Maya: Updating a look where the shader name changed, leaves the geo without a shader #514

Merged pull requests:

  • Avalon module without Qt #581
  • Ftrack module without Qt #577

2.12.5 (2020-10-14)

Full Changelog

Enhancements:

  • Launch TvPaint shot work file from within Ftrack #629

Merged pull requests:

  • Harmony: Disable application launch logic #637

2.12.4 (2020-10-08)

Full Changelog

Enhancements:

  • convert nukestudio to hiero host #616
  • Fusion basic integration #451

Fixed bugs:

  • Sync to avalon doesn't remove renamed task #605
  • NukeStudio: FPS collecting into clip instances #624

Merged pull requests:

  • NukeStudio: small fixes #622
  • NukeStudio: broken order of plugins #620

2.12.3 (2020-10-06)

Full Changelog

Enhancements:

  • Nuke Publish Camera #567
  • Harmony: open xstage file no matter of its name #526
  • Stop integration of unwanted data #387
  • Move avalon-launcher functionality to pype #229
  • avalon workfiles api #214
  • Store task types #180
  • Avalon Mongo Connection split #136
  • nk camera workflow #71
  • Hiero integration added #590
  • Anatomy instance data collection is substantially faster for many instances #560

Fixed bugs:

  • test issue #596
  • Harmony: empty scene contamination #583
  • Edit publishing in SP doesn't respect shot selection for publishing #542
  • Pathlib breaks compatibility with python2 hosts #281
  • Updating a look where the shader name changed leaves the geo without a shader #237
  • Better error handling #84
  • Harmony: function signature #609
  • Nuke: gizmo publishing error #594
  • Harmony: fix clashing namespace of called js functions #584
  • Maya: fix maya scene type preset exception #569

Closed issues:

  • Nuke Gizmo publishing #597
  • nuke gizmo publishing error #592
  • Publish EDL #579
  • Publish render from SP #576
  • rename ftrack custom attribute group to pype #184

Merged pull requests:

  • Audio file existence check #614
  • NKS small fixes #587
  • Standalone publisher editorial plugins interfering #580

2.12.2 (2020-09-25)

Full Changelog

Enhancements:

  • pype config GUI #241

Fixed bugs:

  • Harmony: Saving heavy scenes will crash #507
  • Extract review a representation name with \*\_burnin #388
  • Hierarchy data was not considering active isntances #551

2.12.1 (2020-09-15)

Full Changelog

Fixed bugs:

  • Pype: changelog.md is outdated #503
  • dependency security alert ! #484
  • Maya: RenderSetup is missing update #106
  • <pyblish plugin> extract effects creates new instance #78

2.12.0 (2020-09-10)

Full Changelog

Enhancements:

  • Less mongo connections #509
  • Nuke: adding image loader #499
  • Move launcher window to top if launcher action is clicked #450
  • Maya: better tile rendering support in Pype #446
  • Implementation of non QML launcher #443
  • Optional skip review on renders. #441
  • Ftrack: Option to push status from task to latest version #440
  • Properly containerize image plane loads. #434
  • Option to keep the review files. #426
  • Isolate view on instance members. #425
  • Maya: Publishing of tile renderings on Deadline #398
  • Feature/little bit better logging gui #383

Fixed bugs:

  • Maya: Fix tile order for Draft Tile Assembler #511
  • Remove extra dash #501
  • Fix: strip dot from repre names in single frame renders #498
  • Better handling of destination during integrating #485
  • Fix: allow thumbnail creation for single frame renders #460
  • added missing argument to launch_application in ftrack app handler #453
  • Burnins: Copy bit rate of input video to match quality. #448
  • Standalone publisher is now independent from tray #442
  • Bugfix/empty enumerator attributes #436
  • Fixed wrong order of "other" category collapssing in publisher #435
  • Multiple reviews where being overwritten to one. #424
  • Cleanup plugin fail on instances without staging dir #420
  • deprecated -intra parameter in ffmpeg to new -g #417
  • Delivery action can now work with entered path #397

Merged pull requests:

  • Review on instance.data #473

2.11.8 (2020-08-27)

Full Changelog

Enhancements:

  • DWAA support for Maya #382
  • Isolate View on Playblast #367
  • Maya: Tile rendering #297
  • single pype instance running #47
  • PYPE-649: projects don't guarantee backwards compatible environment #8
  • PYPE-663: separate venv for each deployed version #7

Fixed bugs:

  • pyblish pype - other group is collapsed before plugins are done #431
  • Alpha white edges in harmony on PNGs #412
  • harmony image loader picks wrong representations #404
  • Clockify crash when response contain symbol not allowed by UTF-8 #81

2.11.7 (2020-08-21)

Full Changelog

Fixed bugs:

  • Clean Up Baked Movie #369
  • celaction last workfile #459

2.11.6 (2020-08-18)

Full Changelog

Enhancements:

  • publisher app #56

2.11.5 (2020-08-13)

Full Changelog

Enhancements:

  • Switch from master to equivalent #220
  • Standalone publisher now only groups sequence if the extension is known #439

Fixed bugs:

  • Logs have been disable for editorial by default to speed up publishing #433
  • additional fixes for celaction #430
  • Harmony: invalid variable scope in validate scene settings #428
  • new representation name for audio was not accepted #427

2.11.4 (2020-08-10)

Full Changelog

Enhancements:

  • WebSocket server #135
  • standalonepublisher: editorial family features expansion [master branch] #411

2.11.3 (2020-08-04)

Full Changelog

Fixed bugs:

  • Harmony: publishing performance issues #408

2.11.2 (2020-07-31)

Full Changelog

Fixed bugs:

  • Ftrack to Avalon bug #406

2.11.1 (2020-07-29)

Full Changelog

Merged pull requests:

  • Celaction: metadata json folder fixes on path #393
  • CelAction - version up method taken fro pype.lib #391

2.11.0

release date: 27 July 2020

new:

  • (blender) namespace support #341
  • (blender) start end frames #330
  • (blender) camera asset #322
  • (pype) toggle instances per family in pyblish GUI #320
  • (pype) current release version is now shown in the tray menu #379

improved:

  • (resolve) tagging for publish #239
  • (pype) Support publishing a subset of shots with standalone editorial #336
  • (harmony) Basic support for palettes #324
  • (photoshop) Flag outdated containers on startup and publish. #309
  • (harmony) Flag Outdated containers #302
  • (photoshop) Publish review #298
  • (pype) Optional Last workfile launch #365

fixed:

  • (premiere) workflow fixes #346
  • (pype) pype-setup does not work with space in path #327
  • (ftrack) Ftrack delete action cause circular error #206
  • (nuke) Priority was forced to 50 #345
  • (nuke) Fix ValidateNukeWriteKnobs #340
  • (maya) If camera attributes are connected, we can ignore them. #339
  • (pype) stop appending of tools environment to existing env #337
  • (ftrack) Ftrack timeout needs to look at AVALON_TIMEOUT #325
  • (harmony) Only zip files are supported. #310
  • (pype) hotfix/Fix event server mongo uri #305
  • (photoshop) Subset was not named or validated correctly. #304

2.10.0

release date: 17 June 2020

new:

  • (harmony) Toon Boom Harmony has been greatly extended to support rigging, scene build, animation and rendering workflows. #270 #271 #190 #191 #172 #168
  • (pype) Added support for rudimentary edl publishing into individual shots. #265
  • (celaction) Simple Celaction integration has been added with support for workfiles and rendering. #255
  • (maya) Support for multiple job types when submitting to the farm. We can now render Maya or Standalone render jobs for Vray and Arnold (limited support for arnold) #204
  • (photoshop) Added initial support for Photoshop #232

improved:

  • (blender) Updated support for rigs and added support Layout family #233 #226
  • (premiere) It is now possible to choose different storage root for workfiles of different task types. #255
  • (maya) Support for unmerged AOVs in Redshift multipart EXRs #197
  • (pype) Pype repository has been refactored in preparation for 3.0 release #169
  • (deadline) All file dependencies are now passed to deadline from maya to prevent premature start of rendering if caches or textures haven't been coppied over yet. #195
  • (nuke) Script validation can now be made optional. #194
  • (pype) Publishing can now be stopped at any time. #194

fix:

  • (pype) Pyblish-lite has been integrated into pype repository, plus various publishing GUI fixes. #274 #275 #268 #227 #238
  • (maya) Alembic extractor was getting wrong frame range type in certain scenarios #254
  • (maya) Attaching a render to subset in maya was not passing validation in certain scenarios #256
  • (ftrack) Various small fixes to ftrack sync #263 #259
  • (maya) Look extraction is now able to skp invalid connections in shaders #207

2.9.0

release date: 25 May 2020

new:

  • (pype) Support for Multiroot projects. You can now store project data on multiple physical or virtual storages and target individual publishes to these locations. For instance render can be stored on a faster storage than the rest of the project. #145, #38
  • (harmony) Basic implementation of Toon Boom Harmony has been added. #142
  • (pype) OSX support is in public beta now. There are issues to be expected, but the main implementation should be functional. #141

improved:

  • (pype) Review extractor has been completely rebuilt. It now supports granular filtering so you can create multiple outputs for different tasks, families or hosts. #103, #166, #165
  • (pype) Burnin generation had been extended to support same multi-output filtering as review extractor #103
  • (pype) Publishing file templates can now be specified in config for each individual family #114
  • (pype) Studio specific plugins can now be appended to pype standard publishing plugins. #112
  • (nukestudio) Reviewable clips no longer need to be previously cut, exported and re-imported to timeline. Pype can now dynamically cut reviewable quicktimes from continuous offline footage during publishing. #23
  • (deadline) Deadline can now correctly differentiate between staging and production pype. #154
  • (deadline) PYPE_PYTHON_EXE env variable can now be used to direct publishing to explicit python installation. #120
  • (nuke) Nuke now check for new version of loaded data on file open. #140
  • (nuke) frame range and limit checkboxes are now exposed on write node. #119

fix:

  • (nukestudio) Project Location was using backslashes which was breaking nukestudio native exporting in certains configurations #82
  • (nukestudio) Duplicity in hierarchy tags was prone to throwing publishing error #130, #144
  • (ftrack) multiple stability improvements #157, #159, #128, #118, #127
  • (deadline) multipart EXRs were stopping review publishing on the farm. They are still not supported for automatic review generation, but the publish will go through correctly without the quicktime. #155
  • (deadline) If deadline is non-responsive it will no longer freeze host when publishing #149
  • (deadline) Sometimes deadline was trying to launch render before all the source data was coppied over. #137 (harmony) Basic implementation of Toon Boom Harmony has been added. #142
  • (nuke) Filepath knob wasn't updated properly. #131
  • (maya) When extracting animation, the "Write Color Set" options on the instance were not respected. #108
  • (maya) Attribute overrides for AOV only worked for the legacy render layers. Now it works for new render setup as well #132
  • (maya) Stability and usability improvements in yeti workflow #104

2.8.0

release date: 20 April 2020

new:

  • (pype) Option to generate slates from json templates. [PYPE-628] #26
  • (pype) It is now possible to automate loading of published subsets into any scene. Documentation will follow :). [PYPE-611] #24

fix:

  • (maya) Some Redshift render tokens could break publishing. [PYPE-778] #33
  • (maya) Publish was not preserving maya file extension. #39
  • (maya) Rig output validator was failing on nodes without shapes. #40
  • (maya) Yeti caches can now be properly versioned up in the scene inventory. #40
  • (nuke) Build first workfiles was not accepting jpeg sequences. #34
  • (deadline) Trying to generate ffmpeg review from multipart EXRs no longer crashes publishing. [PYPE-781]
  • (deadline) Render publishing is more stable in multiplatform environments. [PYPE-775]

2.7.0

release date: 30 March 2020

new:

  • (maya) Artist can now choose to load multiple references of the same subset at once [PYPE-646, PYPS-81]
  • (nuke) Option to use named OCIO colorspaces for review colour baking. [PYPS-82]
  • (pype) Pype can now work with master versions for publishing and loading. These are non-versioned publishes that are overwritten with the latest version during publish. These are now supported in all the GUIs, but their publishing is deactivated by default. [PYPE-653]
  • (blender) Added support for basic blender workflow. We currently support rig, model and animation families. [PYPE-768]
  • (pype) Source timecode can now be used in burn-ins. [PYPE-777]
  • (pype) Review outputs profiles can now specify delivery resolution different than project setting [PYPE-759]
  • (nuke) Bookmark to current context is now added automatically to all nuke browser windows. [PYPE-712]

change:

  • (maya) It is now possible to publish camera without. baking. Keep in mind that unbaked cameras can't be guaranteed to work in other hosts. [PYPE-595]
  • (maya) All the renders from maya are now grouped in the loader by their Layer name. [PYPE-482]
  • (nuke/hiero) Any publishes from nuke and hiero can now be versioned independently of the workfile. [PYPE-728]

fix:

  • (nuke) Mixed slashes caused issues in ocio config path.
  • (pype) Intent field in pyblish GUI was passing label instead of value to ftrack. [PYPE-733]
  • (nuke) Publishing of pre-renders was inconsistent. [PYPE-766]
  • (maya) Handles and frame ranges were inconsistent in various places during publishing.
  • (nuke) Nuke was crashing if it ran into certain missing knobs. For example DPX output missing autocrop [PYPE-774]
  • (deadline) Project overrides were not working properly with farm render publishing.
  • (hiero) Problems with single frame plates publishing.
  • (maya) Redshift RenderPass token were breaking render publishing. [PYPE-778]
  • (nuke) Build first workfile was not accepting jpeg sequences.
  • (maya) Multipart (Multilayer) EXRs were breaking review publishing due to FFMPEG incompatiblity [PYPE-781]

2.6.0

release date: 9 March 2020

change:

  • (maya) render publishing has been simplified and made more robust. Render setup layers are now automatically added to publishing subsets and render globals family has been replaced with simple render [PYPE-570]
  • (avalon) change context and workfiles apps, have been merged into one, that allows both actions to be performed at the same time. [PYPE-747]
  • (pype) thumbnails are now automatically propagate to asset from the last published subset in the loader
  • (ftrack) publishing comment and intent are now being published to ftrack note as well as describtion. [PYPE-727]
  • (pype) when overriding existing version new old representations are now overriden, instead of the new ones just being appended. (to allow this behaviour, the version validator need to be disabled. [PYPE-690])
  • (pype) burnin preset has been significantly simplified. It now doesn't require passing function to each field, but only need the actual text template. to use this, all the current burnin PRESETS MUST BE UPDATED for all the projects.
  • (ftrack) credentials are now stored on a per server basis, so it's possible to switch between ftrack servers without having to log in and out. [PYPE-723]

new:

  • (pype) production and development deployments now have different colour of the tray icon. Orange for Dev and Green for production [PYPE-718]
  • (maya) renders can now be attached to a publishable subset rather than creating their own subset. For example it is possible to create a reviewable look or model render and have it correctly attached as a representation of the subsets [PYPE-451]
  • (maya) after saving current scene into a new context (as a new shot for instance), all the scene publishing subsets data gets re-generated automatically to match the new context [PYPE-532]
  • (pype) we now support project specific publish, load and create plugins [PYPE-740]
  • (ftrack) new action that allow archiving/deleting old published versions. User can keep how many of the latest version to keep when the action is ran. [PYPE-748, PYPE-715]
  • (ftrack) it is now possible to monitor and restart ftrack event server using ftrack action. [PYPE-658]
  • (pype) validator that prevent accidental overwrites of previously published versions. [PYPE-680]
  • (avalon) avalon core updated to version 5.6.0
  • (maya) added validator to make sure that relative paths are used when publishing arnold standins.
  • (nukestudio) it is now possible to extract and publish audio family from clip in nuke studio [PYPE-682]

fix:

  • (maya) maya set framerange button was ignoring handles [PYPE-719]
  • (ftrack) sync to avalon was sometime crashing when ran on empty project
  • (nukestudio) publishing same shots after they've been previously archived/deleted would result in a crash. [PYPE-737]
  • (nuke) slate workflow was breaking in certain scenarios. [PYPE-730]
  • (pype) rendering publish workflow has been significantly improved to prevent error resulting from implicit render collection. [PYPE-665, PYPE-746]
  • (pype) launching application on a non-synced project resulted in obscure [PYPE-528]
  • (pype) missing keys in burnins no longer result in an error. [PYPE-706]
  • (ftrack) create folder structure action was sometimes failing for project managers due to wrong permissions.
  • (Nukestudio) using source in the start frame tag could result in wrong frame range calculation
  • (ftrack) sync to avalon action and event have been improved by catching more edge cases and provessing them properly.

2.5.0

release date: 11 Feb 2020

change:

  • (pype) added many logs for easier debugging
  • (pype) review presets can now be separated between 2d and 3d renders [PYPE-693]
  • (pype) anatomy module has been greatly improved to allow for more dynamic pulblishing and faster debugging [PYPE-685]
  • (pype) avalon schemas have been moved from pype-config to pype repository, for simplification. [PYPE-670]
  • (ftrack) updated to latest ftrack API
  • (ftrack) publishing comments now appear in ftrack also as a note on version with customisable category [PYPE-645]
  • (ftrack) delete asset/subset action had been improved. It is now able to remove multiple entities and descendants of the selected entities [PYPE-361, PYPS-72]
  • (workfiles) added date field to workfiles app [PYPE-603]
  • (maya) old deprecated loader have been removed in favour of a single unified reference loader (old scenes will upgrade automatically to the new loader upon opening) [PYPE-633, PYPE-697]
  • (avalon) core updated to 5.5.15 [PYPE-671]
  • (nuke) library loader is now available in nuke [PYPE-698]

new:

  • (pype) added pype render wrapper to allow rendering on mixed platform farms. [PYPE-634]
  • (pype) added pype launch command. It let's admin run applications with dynamically built environment based on the given context. [PYPE-634]
  • (pype) added support for extracting review sequences with burnins [PYPE-657]
  • (publish) users can now set intent next to a comment when publishing. This will then be reflected on an attribute in ftrack. [PYPE-632]
  • (burnin) timecode can now be added to burnin
  • (burnin) datetime keys can now be added to burnin and anatomy [PYPE-651]
  • (burnin) anatomy templates can now be used in burnins. [PYPE=626]
  • (nuke) new validator for render resolution
  • (nuke) support for attach slate to nuke renders [PYPE-630]
  • (nuke) png sequences were added to loaders
  • (maya) added maya 2020 compatibility [PYPE-677]
  • (maya) ability to publish and load .ASS standin sequences [PYPS-54]
  • (pype) thumbnails can now be published and are visible in the loader. AVALON_THUMBNAIL_ROOT environment variable needs to be set for this to work [PYPE-573, PYPE-132]
  • (blender) base implementation of blender was added with publishing and loading of .blend files [PYPE-612]
  • (ftrack) new action for preparing deliveries [PYPE-639]

fix:

  • (burnin) more robust way of finding ffmpeg for burnins.
  • (pype) improved UNC paths remapping when sending to farm.
  • (pype) float frames sometimes made their way to representation context in database, breaking loaders [PYPE-668]
  • (pype) pype install --force was failing sometimes [PYPE-600]
  • (pype) padding in published files got calculated wrongly sometimes. It is now instead being always read from project anatomy. [PYPE-667]
  • (publish) comment publishing was failing in certain situations
  • (ftrack) multiple edge case scenario fixes in auto sync and sync-to-avalon action
  • (ftrack) sync to avalon now works on empty projects
  • (ftrack) thumbnail update event was failing when deleting entities [PYPE-561]
  • (nuke) loader applies proper colorspaces from Presets
  • (nuke) publishing handles didn't always work correctly [PYPE-686]
  • (maya) assembly publishing and loading wasn't working correctly

2.4.0

release date: 9 Dec 2019

change:

  • (ftrack) version to status ftrack event can now be configured from Presets
    • based on preset presets/ftracc/ftrack_config.json["status_version_to_task"]
  • (ftrack) sync to avalon event has been completely re-written. It now supports most of the project management situations on ftrack including moving, renaming and deleting entities, updating attributes and working with tasks.
  • (ftrack) sync to avalon action has been also re-writen. It is now much faster (up to 100 times depending on a project structure), has much better logging and reporting on encountered problems, and is able to handle much more complex situations.
  • (ftrack) sync to avalon trigger by checking auto-sync toggle on ftrack [PYPE-504]
  • (pype) various new features in the REST api
  • (pype) new visual identity used across pype
  • (pype) started moving all requirements to pip installation rather than vendorising them in pype repository. Due to a few yet unreleased packages, this means that pype can temporarily be only installed in the offline mode.

new:

  • (nuke) support for publishing gizmos and loading them as viewer processes
  • (nuke) support for publishing nuke nodes from backdrops and loading them back
  • (pype) burnins can now work with start and end frames as keys
    • use keys {frame_start}, {frame_end} and {current_frame} in burnin preset to use them. [PYPS-44,PYPS-73, PYPE-602]
  • (pype) option to filter logs by user and level in loggin GUI
  • (pype) image family added to standalone publisher [PYPE-574]
  • (pype) matchmove family added to standalone publisher [PYPE-574]
  • (nuke) validator for comparing arbitrary knobs with values from presets
  • (maya) option to force maya to copy textures in the new look publish rather than hardlinking them
  • (pype) comments from pyblish GUI are now being added to ftrack version
  • (maya) validator for checking outdated containers in the scene
  • (maya) option to publish and load arnold standin sequence [PYPE-579, PYPS-54]

fix:

  • (pype) burnins were not respecting codec of the input video
  • (nuke) lot's of various nuke and nuke studio fixes across the board [PYPS-45]
  • (pype) workfiles app is not launching with the start of the app by default [PYPE-569]
  • (ftrack) ftrack integration during publishing was failing under certain situations [PYPS-66]
  • (pype) minor fixes in REST api
  • (ftrack) status change event was crashing when the target status was missing [PYPS-68]
  • (ftrack) actions will try to reconnect if they fail for some reason
  • (maya) problems with fps mapping when using float FPS values
  • (deadline) overall improvements to deadline publishing
  • (setup) environment variables are now remapped on the fly based on the platform pype is running on. This fixes many issues in mixed platform environments.

2.3.6

release date: 27 Nov 2019

hotfix:

  • (ftrack) was hiding important debug logo
  • (nuke) crashes during workfile publishing
  • (ftrack) event server crashes because of signal problems
  • (muster) problems with muster render submissions
  • (ftrack) thumbnail update event syntax errors

2.3.0

release date: 6 Oct 2019

new:

  • (maya) support for yeti rigs and yeti caches
  • (maya) validator for comparing arbitrary attributes against ftrack
  • (pype) burnins can now show current date and time
  • (muster) pools can now be set in render globals in maya
  • (pype) Rest API has been implemented in beta stage
  • (nuke) LUT loader has been added
  • (pype) rudimentary user module has been added as preparation for user management
  • (pype) a simple logging GUI has been added to pype tray
  • (nuke) nuke can now bake input process into mov
  • (maya) imported models now have selection handle displayed by defaulting
  • (avalon) it's is now possible to load multiple assets at once using loader
  • (maya) added ability to automatically connect yeti rig to a mesh upon loading

changed:

  • (ftrack) event server now runs two parallel processes and is able to keep queue of events to process.
  • (nuke) task name is now added to all rendered subsets
  • (pype) adding more families to standalone publisher
  • (pype) standalone publisher now uses pyblish-lite
  • (pype) standalone publisher can now create review quicktimes
  • (ftrack) queries to ftrack were sped up
  • (ftrack) multiple ftrack action have been deprecated
  • (avalon) avalon upstream has been updated to 5.5.0
  • (nukestudio) published transforms can now be animated

fix:

  • (maya) fps popup button didn't work in some cases
  • (maya) geometry instances and references in maya were losing shader assignments
  • (muster) muster rendering templates were not working correctly
  • (maya) arnold tx texture conversion wasn't respecting colorspace set by the artist
  • (pype) problems with avalon db sync
  • (maya) ftrack was rounding FPS making it inconsistent
  • (pype) wrong icon names in Creator
  • (maya) scene inventory wasn't showing anything if representation was removed from database after it's been loaded to the scene
  • (nukestudio) multiple bugs squashed
  • (loader) loader was taking long time to show all the loading action when first launcher in maya

2.2.0

release date: 8 Sept 2019

new:

  • (pype) add customisable workflow for creating quicktimes from renders or playblasts
  • (nuke) option to choose deadline chunk size on write nodes
  • (nukestudio) added option to publish soft effects (subTrackItems) from NukeStudio as subsets including LUT files. these can then be loaded in nuke or NukeStudio
  • (nuke) option to build nuke script from previously published latest versions of plate and render subsets.
  • (nuke) nuke writes now have deadline tab.
  • (ftrack) Prepare Project action can now be used for creating the base folder structure on disk and in ftrack, setting up all the initial project attributes and it automatically prepares pype_project_config folder for the given project.
  • (clockify) Added support for time tracking in clockify. This currently in addition to ftrack time logs, but does not completely replace them.
  • (pype) any attributes in Creator and Loader plugins can now be customised using pype preset system

changed:

  • nukestudio now uses workio API for workfiles
  • (maya) "FIX FPS" prompt in maya now appears in the middle of the screen
  • (muster) can now be configured with custom templates
  • (pype) global publishing plugins can now be configured using presets as well as host specific ones

fix:

  • wrong version retrieval from path in certain scenarios
  • nuke reset resolution wasn't working in certain scenarios

2.1.0

release date: 6 Aug 2019

A large cleanup release. Most of the change are under the hood.

new:

  • (pype) add customisable workflow for creating quicktimes from renders or playblasts
  • (pype) Added configurable option to add burnins to any generated quicktimes
  • (ftrack) Action that identifies what machines pype is running on.
  • (system) unify subprocess calls
  • (maya) add audio to review quicktimes
  • (nuke) add crop before write node to prevent overscan problems in ffmpeg
  • Nuke Studio publishing and workfiles support
  • Muster render manager support
  • (nuke) Framerange, FPS and Resolution are set automatically at startup
  • (maya) Ability to load published sequences as image planes
  • (system) Ftrack event that sets asset folder permissions based on task assignees in ftrack.
  • (maya) Pyblish plugin that allow validation of maya attributes
  • (system) added better startup logging to tray debug, including basic connection information
  • (avalon) option to group published subsets to groups in the loader
  • (avalon) loader family filters are working now

changed:

  • change multiple key attributes to unify their behaviour across the pipeline

    • frameRate to fps
    • startFrame to frameStart
    • endFrame to frameEnd
    • fstart to frameStart
    • fend to frameEnd
    • handle_start to handleStart
    • handle_end to handleEnd
    • resolution_width to resolutionWidth
    • resolution_height to resolutionHeight
    • pixel_aspect to pixelAspect
  • (nuke) write nodes are now created inside group with only some attributes editable by the artist

  • rendered frames are now deleted from temporary location after their publishing is finished.

  • (ftrack) RV action can now be launched from any entity

  • after publishing only refresh button is now available in pyblish UI

  • added context instance pyblish-lite so that artist knows if context plugin fails

  • (avalon) allow opening selected files using enter key

  • (avalon) core updated to v5.2.9 with our forked changes on top

fix:

  • faster hierarchy retrieval from db
  • (nuke) A lot of stability enhancements
  • (nuke studio) A lot of stability enhancements
  • (nuke) now only renders a single write node on farm
  • (ftrack) pype would crash when launcher project level task
  • work directory was sometimes not being created correctly
  • major pype.lib cleanup. Removing of unused functions, merging those that were doing the same and general house cleaning.
  • (avalon) subsets in maya 2019 weren't behaving correctly in the outliner

* This Changelog was automatically generated by github_changelog_generator