# This file specifies the CIPD packages and versions used in this repo.
# Note that there are packages for multiple platforms here which may clobber
# each other. Therefore, if you plan to "cipd ensure" this file, you will need
# to first strip out the packages you don't want. For an example, see
# kube/build_base_cipd_release, which should be updated if new platforms are
# added here.

# The CIPD server to use.
$ServiceURL https://chrome-infra-packages.appspot.com/

# This is the cipd client itself
infra/tools/cipd/${os}-${arch}  git_revision:34ecdc8775563915792e05ba9d921342808ae2dc

@Subdir cipd_bin_packages
infra/3pp/tools/git/linux-amd64                  version:2@2.36.0-rc2.chromium.8
infra/3pp/tools/git/linux-arm64                  version:2@2.36.0-rc2.chromium.8
infra/3pp/tools/git/linux-armv6l                 version:2@2.36.0-rc2.chromium.8
infra/3pp/tools/git/mac-amd64                    version:2@2.36.0-rc2.chromium.8
infra/3pp/tools/git/windows-386                  version:2@2.35.3.chromium.8
infra/3pp/tools/git/windows-amd64                version:2@2.35.3.chromium.8
infra/tools/git/${platform}                      git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci-auth/${platform}                git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/git-credential-luci/${platform} git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/gsutil/${platform}              git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/isolate/${platform}             git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/isolated/${platform}            git_revision:dc3a3dc4272aeef30698752d137ccd4f09526d69
infra/tools/luci/lucicfg/${platform}             git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/swarming/${platform}            git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/vpython/${platform}             git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
infra/tools/luci/vpython-native/${platform}      git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
skia/tools/goldctl/${platform}                   git_revision:34ecdc8775563915792e05ba9d921342808ae2dc

@subdir cipd_bin_packages/cpython
infra/3pp/tools/cpython/linux-amd64              version:2@2.7.18.chromium.42
infra/3pp/tools/cpython/linux-arm64              version:2@2.7.18.chromium.42
infra/3pp/tools/cpython/linux-armv6l             version:2@2.7.18.chromium.42
infra/3pp/tools/cpython/mac-amd64                version:2@2.7.18.chromium.42
infra/3pp/tools/cpython/windows-386              version:2@2.7.18.chromium.42
infra/3pp/tools/cpython/windows-amd64            version:2@2.7.18.chromium.42

@subdir cipd_bin_packages/cpython3
infra/3pp/tools/cpython3/linux-amd64             version:2@3.8.10.chromium.19
infra/3pp/tools/cpython3/linux-arm64             version:2@3.8.10.chromium.19
infra/3pp/tools/cpython3/linux-armv6l            version:2@3.8.10.chromium.19
infra/3pp/tools/cpython3/mac-amd64               version:2@3.8.10.chromium.19
infra/3pp/tools/cpython3/windows-386             version:2@3.8.10.chromium.19
infra/3pp/tools/cpython3/windows-amd64           version:2@3.8.10.chromium.19

@Subdir
infra/tools/luci/kitchen/${platform}    git_revision:34ecdc8775563915792e05ba9d921342808ae2dc
