def METHOD_NAME(self):
    if self.core_mode:
        raise gen.Return({"status": "stable", "message": ""})
    if self.building:
        raise gen.Return({"status": "building", "message": ""})
    try:
        messages = yield self._run_build_check(
            self.app_dir, self.log, self.core_config, self.labextensions_path
        )
        status = "needed" if messages else "stable"
        if messages:
            self.log.warning("Build recommended")
            [self.log.warning(m) for m in messages]
        else:
            self.log.info("Build is up to date")
    except ValueError:
        self.log.warning("Could not determine jupyterlab build status without nodejs")
        status = "stable"
        messages = []
    raise gen.Return({"status": status, "message": "\n".join(messages)})