# This file specifies the version of the Android Gradle Plugin and Android Studio to use
# This information is stored in one file to make it hard to forget to update Studio versions
# when updating AGP versions

# the version of the Android Gradle Plugin
agp=4.2.0-beta06
# Note, lint version must be kept in sync with agp
# NOTE: When updating the lint version we also need to update the `api` version supported
#  by `IssueRegistry`'s.' For e.g. aosp/1331903
lint=27.2.0-beta06

# Version properties for Android Studio which should correspond to the version of AGP
#
# Once you have a chosen version of AGP to upgrade to, go to
# https://developer.android.com/studio/archive and find the matching version of Studio.
# For example, if you are upgrading to AGP 3.6 alpha 05, look for the Studio 3.6 canary 5 build.
# (alpha maps to canary, beta to beta, rc to rc, and no suffix for stable in both cases)
#
# The download url should contain: ...ide-zips/3.6.0.5/android-studio-ide-191.5721125-linux...
# From this, the first number (3.6.0.5) is [studio_version], the first number in the filename (192)
# is the [idea_major_version] and the last number (5721125) is the [studio_build_number].
studio_version=4.2.0.22
idea_major_version=202
studio_build_number=7188722
