code: def publish_for_collection(self, collection_name):
          
          self.revisions = BaseAsyncMotorDocument("%s_revisions" % collection_name, self.settings)
  
          changes = yield self.__get_pending_revisions()
  
          if len(changes) > 0:
  
              self.logger.info("%s revisions will be actioned" % len(changes))
  
              for change in changes:
                  try:
                      self.logger.info("Applying %s action %s - %s to document: %s/%s" % (change.get("action"), change.get("id"), change.get("meta",{}).get("comment", "No Comment"), change.get("collection"), change.get("master_id")))
  
                      stack = AsyncSchedulableDocumentRevisionStack(
                          change.get("collection"),
                          self.settings,
                          master_id=change.get("master_id")
                      )
  
                      revision = yield stack.pop()
  
                      self.logger.debug(revision)
  
                  except Exception as ex:
                      self.logger.error(ex)
docs: Run the publishing operations for a given collection
  
          :param str collection_name: