code: def build(source, target, versions, current_name, is_root):
      
      log = logging.getLogger(__name__)
      argv = ('sphinx-build', source, target)
      config = Config.from_context()
  
      log.debug('Running sphinx-build for %s with args: %s', current_name, str(argv))
      child = multiprocessing.Process(target=_build, args=(argv, config, versions, current_name, is_root))
      child.start()
      child.join()  # Block.
      if child.exitcode != 0:
          log.error('sphinx-build failed for branch/tag: %s', current_name)
          raise HandledError
docs: Build Sphinx docs for one version. Includes Versions class instance with names/urls in the HTML context.
  
      :raise HandledError: If sphinx-build fails. Will be logged before raising.
  
      :param str source: Source directory to pass to sphinx-build.
      :param str target: Destination directory to write documentation to (passed to sphinx-build).
      :param sphinxcontrib.versioning.versions.Versions versions: Versions class instance.
      :param str current_name: The ref name of the current version being built.
      :param bool is_root: Is this build in the web root?