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

Deadline: run deadline collectors on preprender #550

Merged
merged 5 commits into from
Jun 10, 2024

Conversation

kalisp
Copy link
Member

@kalisp kalisp commented May 24, 2024

Changelog Description

Prerender instances (in Nuke) would be skipped and submit to DL would fail

Testing notes:

  1. create prerender instance in Nuke that should be rendered on DL
  2. publish it to DL, it shouldnt fail on submit job plugin

Prerender instances (in Nuke) would be skipped and submit to DL would fail
@@ -17,6 +17,7 @@ class CollectDeadlineServerFromInstance(pyblish.api.InstancePlugin):
label = "Deadline Webservice from the Instance"
targets = ["local"]
families = ["render",
"prerender",
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

ideally we would abstract it so you don't need to keep copy pasting them on all plugins and keep getting them out of sync

Copy link
Collaborator

Choose a reason for hiding this comment

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

Or even better - can't we remove the families and just target all since instances without farm=True data get skipped anyway?

I'm personally now very curious looking at this large list which families we're trying to avoid hehe.

Copy link
Contributor

Choose a reason for hiding this comment

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

100%. Out of scope of this convo but would they show up on the publish dialog or it will try run and then skip on runtime? It would be nice that the plugins listed on the publish process are only the ones that actually run so it's easier to debug what's going on. Would that require using targets instead or something that can be collected ahead of time?

Copy link
Member Author

Choose a reason for hiding this comment

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

Plugins would still show up in Publisher with only farm=True, but they would do nothing. I prefer when they are not showing at all, that gets handled by families, not sure about targets

Copy link
Collaborator

@BigRoy BigRoy May 30, 2024

Choose a reason for hiding this comment

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

Yup, targets isn't what this is for - that's more global for the whole current pyblish session - not per instance or per plug-in

I guess having a more global list of a "farm-targetable" families may be well worth it for now. Like have lib.farm_families or whatever. That is, if indeed, that list is shared across many plug-ins to keep in sync.

Or we swap around the problem and say that instances that are capable of farm submissions also get a farm family - and when it has then the plug-ins become relevant and show. However, the publisher UI is currently designed for instances to target one product type which is the one defined by the creator instead of the creator being capable of already registering compatibility of the instance for multiple families so that the publisher UI would show that. It would be up to the Creator to define that at least because e.g. Collector plug-ins have not run at that point in time yet.

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 at least tried to synchronize all plugin's families.

This discussion here is valid and needed, but for separate issue.

Copy link
Contributor

@fabiaserra fabiaserra Jun 7, 2024

Choose a reason for hiding this comment

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

isn't it easy to just move that list somewhere else under the ayon_core?

Copy link
Contributor

Choose a reason for hiding this comment

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

ayon_core.lib.farm_utils.py (for example):

FARM_FAMILIES = [
    "arnold_rop",
    "image",
    "imagesequence",
    "karma_rop",
    "mantra_rop",
    "maxrender",
    "prerender.farm",
    "prerender.frames_farm",
    "prerender",
    "publish.hou",
    "redshift_rop",
    "render.farm",
    "render.frames_farm",
    "render",
    "renderFarm",
    "renderlayer",
    "usrender",
    "vray_rop",
    "vrayscene",
]

in the plugins

from ayon_core.lib import farm_utils

...

families = farm_utils.FARM_FAMILIES

Copy link
Contributor

Choose a reason for hiding this comment

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

to me it's a no-brainer doing it now

Copy link
Member

@jakubjezek001 jakubjezek001 left a comment

Choose a reason for hiding this comment

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

looking good, thanks!

@kalisp kalisp force-pushed the bugfix/add_deadline_to_prerender branch from e446049 to 60c42b4 Compare June 7, 2024 15:08
All collectors should use same list of families (eg. product types).

This list is a bit bigger than list in submit_publish_job which might be by design as some families might be changing during publishing steps.
@kalisp kalisp merged commit ddfc46b into develop Jun 10, 2024
1 check passed
@kalisp kalisp deleted the bugfix/add_deadline_to_prerender branch June 10, 2024 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants