code: func (d *deployerImpl) readManifest(ctx context.Context, instanceDir string) (pkg.Manifest, error) {
  	manifestPath := filepath.Join(instanceDir, filepath.FromSlash(pkg.ManifestName))
  	r, err := os.Open(manifestPath)
  	if err != nil {
  		return pkg.Manifest{}, err
  	}
  	defer r.Close()
  	manifest, err := pkg.ReadManifest(r)
  	if err != nil {
  		return pkg.Manifest{}, err
  	}
  	// Older packages do not have Files section in the manifest, so reconstruct it
  	// from actual files on disk.
  	if len(manifest.Files) == 0 {
  		if manifest.Files, err = scanPackageDir(ctx, instanceDir); err != nil {
  			return pkg.Manifest{}, err
  		}
  	}
  	return manifest, nil
  }
docs: // readManifest reads package manifest given a path to a package instance
  // (.cipd/pkgs/<name>/<instance id>).