In the previous example, you might have gotten the reverse output.
# hello from plugin2 # hello from plugin1
That's because plug-ins are sorted by the class attribute
order, and we didn't change it.
import pyblish.api class FirstPlugin(pyblish.api.ContextPlugin): order = 0 def process(self, context): print("hello") class SecondPlugin(pyblish.api.ContextPlugin): order = 1 def process(self, context): print("world") pyblish.api.register_plugin(FirstPlugin) pyblish.api.register_plugin(SecondPlugin) import pyblish.util pyblish.util.publish() # hello # world
They now run in the expected order.