-
Notifications
You must be signed in to change notification settings - Fork 34
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
Conversation
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", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should be matching at least the same ones listed here https://github.com/ynput/ayon-core/blob/develop/client/ayon_core/modules/deadline/plugins/publish/submit_publish_job.py#L91 ?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking good, thanks!
e446049
to
60c42b4
Compare
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.
Changelog Description
Prerender instances (in Nuke) would be skipped and submit to DL would fail
Testing notes:
prerender
instance in Nuke that should be rendered on DL