docs: def get_build_artefacts(config):
      """Create all required build artefacts, modify config to refer to them."""
  
      def aux(ctx, service_name, service):
          compiler, environment = get_compiler(config, service)
          new_service, service_barts = compiler.getBuildArtefacts(environment, ctx, service)
          ctx = ctx + [service_name]
          for child_name, child in compiler.children(service):
              new_child, child_barts = aux(ctx, child_name, child)
              util.merge_into(service_barts, child_barts)
              new_service[child_name] = new_child
          return new_service, service_barts
  
      barts = {}
      new_config = {
          'environments': config['environments'],
      }
      for service_name, service in services(config):
          new_service, service_barts = aux([], service_name, service)
          new_config[service_name] = new_service
          util.merge_into(barts, service_barts)
      return new_config, barts