Mechanism to warn the artist

Goal

A maintainable method to build “warnings” as validations for an Artist to be warned when certain settings feel out of a certain threshold but could be used under some circumstances in production

Reason

Artists have been asking for an easy way to “Validate” their scene and do a quick check-up on whether they hadn’t missed anything. Something that also reminds them that they did something “out of the ordinary” in the scene when they need to work on a scene again from a long time ago or pick up a scene from another artist.

References

A feature referenced for this was one from RebusFarm. They have their own “RebusDrop” tool that uploads the user’s scene and gives notifications (basically Validations) for warnings and errors upon their scene. E.g. the tool could warn about high subdivisions in AA sampling and would error on unsupported or missing files.

Some of the warnings are somewhat obvious but are there just because if missed by an artist it will later on result in a time-consuming problem, e.g. a heavy render.

RebusDrop just shows what it processed and where warnings occurred in a list view. Because the process is triggered upon submission when warnings are present the submission is “paused” to let the artist confirm that the warned features of the scene were intended to be there.

Implementation

Pyblish plug-ins already are able to use logging to log information at different levels, such as warnings. To stick to Pythonic behavior it would be great if this could be used as a mechanism to highlight a possible problematic area to the artist.

Currently in Pyblish-QML warnings can be seen in the logs, but won’t be highlighted in the overview.
It could also make sense that some productions/pipelines might want to “pause” the publishing process before submission when warnings were found, where clicking publish again is a means of “confirming” that it was intended.

Note that something could have many warnings where it might have few errors. As such I’d see “toggling/ignoring the warnings one by one” is going to be cumbersome. The artist should be able to somehow confirm there intentions in those cases easily.

Another future idea might be to even have the ability to confirm/ignore “depend” on the permissions of the artist, e.g. a lead supervisor might confirm it for very complicated cases where it might be very dangerous for junior artists.

Also related Pyblish Forums: Warning color indicator


I’d love to hear ideas from others about this and what they’d think about this as a feature.

I like it😀 Could be pausing after validation if there are any warnings.

That’s how I understood it too. It sounds good.

Ideally, I would see a menu option to turn this off, like a checkbox. But other than that, it should probably be a new default. You can simply not produce any warnings (or errors, or criticals?) to avoid it should you want your publishes to be forever silent.

As far as implementing it goes, I still think it’s rather low hanging fruit, apart from stopping and asking for a confirmation. We’ll need a floating window or similar for that which isn’t in there currently. Mockups are welcome!

Yes, I also don’t want it to break backwards compatibility for others in there workflow and have all plug-ins suddenly introduce pauses. Unless everyone is on board that pausing on warnings is preferred the default could just be that it still proceeds and “pause” can be enabled easily.

Similarly I can imagine that others might have it be even more explicit than “pausing” and raise a pop-up. I’m imagining that level of control to happen with “callbacks”.

# pseudocode
pyblish.register_callback("on_warning", raise_my_popup)

Actually even the core “pausing” logic could just be a default callback, right?

This is only whenever you want to trigger a pop-up, right?

The least intrusive would be to:

  • plug-ins are color highlighted upon their level of success (like red/green it would become orange on warnings)
  • pause on any warnings produced (before extraction by default, similar to error logic)
  • have it somehow be visually clear that it paused because of warnings, so somewhere the GUI mentions: “warnings” as opposed to “errors”?