class_docstr: Minimal manager.
  
  Builds app config and compute template but does not start or stop session.
code: def build_configs(self, timeout: float = 30.0):
      try:
          self.create_cluster_compute()
      except AssertionError as e:
          # If already exists, ignore
          logger.warning(str(e))
      except ClusterComputeCreateError as e:
          raise e
      except Exception as e:
          raise ClusterComputeCreateError(
              f"Unexpected cluster compute build error: {e}"
          ) from e
  
      try:
          self.create_cluster_env()
      except AssertionError as e:
          # If already exists, ignore
          logger.warning(str(e))
      except ClusterEnvCreateError as e:
          raise e
      except Exception as e:
          raise ClusterEnvCreateError(
              f"Unexpected cluster env create error: {e}"
          ) from e
  
      try:
          self.build_cluster_env(timeout=timeout)
      except AssertionError as e:
          # If already exists, ignore
          logger.warning(str(e))
      except (ClusterEnvBuildError, ClusterEnvBuildTimeout) as e:
          raise e
      except Exception as e:
          raise ClusterEnvBuildError(
              f"Unexpected cluster env build error: {e}"
          ) from e
  
file_path: ray/release/ray_release/cluster_manager/minimal.py
imports: import time
  from ray_release.exception import ClusterEnvBuildError, ClusterEnvBuildTimeout, ClusterEnvCreateError, ClusterComputeCreateError
  from ray_release.logger import logger
  from ray_release.cluster_manager.cluster_manager import ClusterManager
  from ray_release.util import format_link, anyscale_cluster_env_build_url
  from retry import retry
label_desc: Use image node_id 4 for calling the MinimalClusterManager obj's underlying member method code with example usage: obj.build_configs(timeout) without return types