code: func (s *DepsStage) ExpandShards() {
  	newSlice := make([]*Dependency, 0, len(s.Deps))
  	for _, dep := range s.Deps {
  		if dep.Shards != 0 {
  			for i := uint64(0); i < dep.Shards; i++ {
  				depCopy := *dep
  				depCopy.Shards = 0
  				phraseCopy := *depCopy.Phrase
  				phraseCopy.Name = fmt.Sprintf("%s_%d", phraseCopy.Name, i)
  				depCopy.Phrase = &phraseCopy
  				newSlice = append(newSlice, &depCopy)
  			}
  		} else {
  			newSlice = append(newSlice, dep)
  		}
  	}
  	s.Deps = newSlice
  }
docs: // ExpandShards expands any dependencies that have non-zero Shards values.