code: def from_versioned_targets(versioned_targets):
      
      first_target = versioned_targets[0]
      cache_manager = first_target._cache_manager
  
      # Quick sanity check; all the versioned targets should have the same cache manager.
      # TODO(ryan): the way VersionedTargets store their own links to a single CacheManager instance
      # feels hacky; see if there's a cleaner way for callers to handle awareness of the CacheManager.
      for versioned_target in versioned_targets:
        if versioned_target._cache_manager != cache_manager:
          raise ValueError("Attempting to combine versioned targets {} and {} with different"
                           " CacheManager instances: {} and {}".format(first_target, versioned_target,
                                                                   cache_manager,
                                                                   versioned_target._cache_manager))
      return VersionedTargetSet(cache_manager, versioned_targets)
docs: :API: public