explaining the publish steps