Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve: update to new publisher #157

Closed

Conversation

jakubjezek001
Copy link
Member

@jakubjezek001 jakubjezek001 commented Mar 7, 2024

Note

Description is work in progress

Changelog Description

Resolve with adapted latest publisher tool.

Additional info

Adaptation of ynput/OpenPype#5709 (thanks @BigRoy for the kick-off!)

TODO:

  • - @BigRoy reported that there is auto timeline created which should not
  • - @BigRoy suggested warning message if there is not anything to be used for creation
  • - @BigRoy suggested to add plugin info text under ?
  • - Spliting product types into:
    - primary: shot - instance with hierarchy, future context data and attributes placeholder
    - secondary: plate, audio, review - instance with media
  • - Hierarchy and context data should be linked from Shot instance for all secondary product types Traypublisher (TP)
  • - Each secondary product type which will be created from a clip should have own creator class - like in TP
  • - OTIO should be using native format rather then our implementation - this way we will be ready for Tony's (@tweak-wtf) retiming.

Testing notes:

To be created

…remove menu_style.qss file. Update pipeline with ResolveHost class changes.
- Renamed functions to use "ayon" instead of "pype" for consistency.
- Added backward compatibility for old function names.
- Updated marker handling in various plugins for Ayon integration.
… class names. Refactor Creator to ResolveCreator and PublishClip to PublishableClip for consistency. Remove unused imports and code related to LegacyCreator.
…utes and methods for clip creation. Improve GUI settings for shot hierarchy and renaming.
…project. Introduce plugin for collecting current project data and creating otio timeline. Refactor file extraction process for better representation handling.
- Updated function names for consistency and clarity
- Renamed menu launcher functions to reflect the current context
- Removed unnecessary variables and commented-out code in lib.py
…ndling. Adjust naming conventions for Ayon compatibility.
@ynbot ynbot added size/XL host: Resolve type: feature Adding something new and exciting to the product labels Mar 7, 2024
@BigRoy
Copy link
Collaborator

BigRoy commented Mar 7, 2024

Nice!

  1. Just opening the Publisher creates an empty timeline (easiest to test in empty project) - it should not do anything.
  2. When Clicking Create for Create Publishable Clip but there's no valid clips in timeline nothing happens - and there's no warning or printed message in console. Might be good to provide a Creation Error if it ends up doing nothing. Easily reproducable in empty timeline or timeline without any Chocolate color clips if that toggle is enabled.
  3. Still seems to suffer from the fact that it tries to set an invalid folder path. Which I assume is similar to where the original PR left things unfinished.
    image
  4. Deleting the instances gives me this error:
    image
  5. Might be nice to add a "detailed description" for this creator - for the question mark top right in publisher.

@@ -260,3 +263,138 @@ def on_pyblish_instance_toggled(instance, old_value, new_value):
# Whether instances should be passthrough based on new value
timeline_item = instance.data["item"]
set_publish_attribute(timeline_item, new_value)


class HostContext:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a docstring about what this does and what it tries to solve?

It seems overly complex, trying to manage 'data' that should really be INSIDE the project. Why do we need this global cache that also gets removed afterwards. What is this 'context'? Why does it contain 'instances' if it's not workfile related?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure where should be this comment on. It seems the code had changed a lot.

Copy link
Collaborator

@BigRoy BigRoy Jun 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to be on the right spot still. Basically, what is the HostContext class and why do we need it? Would be good to have a docstring to describe its usage. Why couldn't we store this data within the project?

@ynbot
Copy link
Contributor

ynbot commented Jun 12, 2024

Task linked: OP-8066 Resolve: update to new publisher

@jakubjezek001 jakubjezek001 requested a review from BigRoy June 12, 2024 12:38
- Removed the function for loading stylesheets in the menu.
- Refactored plugin creation logic to use new API methods and data structures.
- Refactored function names and descriptions for clarity
- Added new function to export timeline otio files
- Improved temporary directory handling for otio files
Adjusted get_otio_temp_dir to set timeline if not provided, throwing error if none found.
@iLLiCiTiT
Copy link
Member

PR moved to ayon-resolve repository ynput/ayon-resolve#3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
host: Resolve size/XL type: feature Adding something new and exciting to the product
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants