Update r8_release script to use version instead of hash

Change-Id: Id38558be51586c6f691a3cdbdec5405d6a66d8f5
diff --git a/tools/r8_release.py b/tools/r8_release.py
index b626832..1e3c92e 100755
--- a/tools/r8_release.py
+++ b/tools/r8_release.py
@@ -15,11 +15,11 @@
 import urllib
 import utils
 
-def update_prebuilds(hash, checkout):
-  update_prebuilds_in_android.main_download(hash, True, 'lib', checkout, '')
+def update_prebuilds(version, checkout):
+  update_prebuilds_in_android.main_download('', True, 'lib', checkout, version)
 
 
-def release_studio_or_aosp(path, options, git_base_message):
+def release_studio_or_aosp(path, options, git_message):
   with utils.ChangedWorkingDirectory(path):
     subprocess.call(['repo', 'abandon', 'update-r8'])
     if not options.no_sync:
@@ -30,54 +30,55 @@
     with utils.ChangedWorkingDirectory(prebuilts_r8):
       subprocess.check_call(['repo', 'start', 'update-r8'])
 
-    update_prebuilds(options.hash, path)
+    update_prebuilds(options.version, path)
 
     with utils.ChangedWorkingDirectory(prebuilts_r8):
-      git_message = (git_base_message
-                     % (options.version, options.hash, options.hash))
       subprocess.check_call(['git', 'commit', '-a', '-m', git_message])
       process = subprocess.Popen(['repo', 'upload', '.', '--verify'],
                                  stdin=subprocess.PIPE)
       return process.communicate(input='y\n')[0]
 
 
-def prepare_aosp():
+def prepare_aosp(args):
   aosp = raw_input('Input the path for the AOSP checkout:\n')
   assert os.path.exists(aosp), "Could not find AOSP path %s" % aosp
 
   def release_aosp(options):
     print "Releasing for AOSP"
-    git_base_message = """Update D8 and R8 to %s
+    git_message = ("""Update D8 and R8 to %s
 
 Version: master %s
 This build IS NOT suitable for preview or public release.
 
-Built here: go/r8-releases/raw/master/%s
+Built here: go/r8-releases/raw/%s
 
 Test: TARGET_PRODUCT=aosp_arm64 m -j core-oj"""
-    return release_studio_or_aosp(aosp, options, git_base_message)
+                   % (args.version, args.version, args.version))
+    return release_studio_or_aosp(aosp, options, git_message)
 
   return release_aosp
 
 
-def prepare_studio():
-  studio = raw_input('Input the path for the STUDIO checkout:\n')
-  assert os.path.exists(studio), "Could not find STUDIO path %s" % studio
+def git_message_dev(version):
+  return """Update D8 R8 master to %s
 
-  def release_studio(options):
-    print "Releasing for STUDIO"
-    git_base_message = """Update D8 R8 master to %s
-
-Version: master %s
 This is a development snapshot, it's fine to use for studio canary build, but
 not for BETA or release, for those we would need a release version of R8
 binaries.
 This build IS suitable for preview release but IS NOT suitable for public release.
 
-Built here: go/r8-releases/raw/master/%s/
+Built here: go/r8-releases/raw/%s
 Test: ./gradlew check
-Bug: """
-    return release_studio_or_aosp(studio, options, git_base_message)
+Bug: """ % (version, version)
+
+
+def prepare_studio(args):
+  studio = raw_input('Input the path for the STUDIO checkout:\n')
+  assert os.path.exists(studio), "Could not find STUDIO path %s" % studio
+
+  def release_studio(options):
+    print "Releasing for STUDIO"
+    return release_studio_or_aosp(studio, options, git_message_dev(options.version))
 
   return release_studio
 
@@ -94,10 +95,9 @@
   subprocess.check_call(' '.join(['g4', 'add'] + files), shell=True)
 
 
-def g4_change(version, hash):
+def g4_change(version, r8version):
   return subprocess.check_output(
-      'g4 change --desc "Update R8 to version %s %s"' % (version, hash),
-      shell=True)
+      'g4 change --desc "Update R8 to version %s %s"' % (version, r8version), shell=True)
 
 
 def sed(pattern, replace, path):
@@ -108,10 +108,9 @@
       sources.write(re.sub(pattern, replace, line))
 
 
-def download_file(hash, file, dst):
+def download_file(version, file, dst):
   urllib.urlretrieve(
-      ('http://storage.googleapis.com/r8-releases/raw/master/%s/%s'
-       % (hash, file)),
+      ('http://storage.googleapis.com/r8-releases/raw/%s/%s' % (version, file)),
       dst)
 
 
@@ -120,7 +119,7 @@
       'blaze run %s' % target, shell=True, stderr=subprocess.STDOUT)
 
 
-def prepare_google3():
+def prepare_google3(args):
   utils.check_prodacces()
 
   # Check if an existing client exists.
@@ -168,8 +167,8 @@
       with utils.ChangedWorkingDirectory(new_version_path):
         # update METADATA
         g4_open('METADATA')
-        sed(r'[a-z0-9]{40}',
-            options.hash,
+        sed(r'[1-9]\.[0-9]{1,2}\.[0-9]{1,3}-dev',
+            options.version,
             os.path.join(new_version_path, 'METADATA'))
         sed(r'\{ year.*\}',
             ('{ year: %i month: %i day: %i }'
@@ -181,11 +180,11 @@
         sed(old_version, new_version, os.path.join(new_version_path, 'BUILD'))
 
         # download files
-        download_file(options.hash, 'r8-full-exclude-deps.jar', 'r8.jar')
-        download_file(options.hash, 'r8-src.jar', 'r8-src.jar')
-        download_file(options.hash, 'r8lib-exclude-deps.jar', 'r8lib.jar')
+        download_file(options.version, 'r8-full-exclude-deps.jar', 'r8.jar')
+        download_file(options.version, 'r8-src.jar', 'r8-src.jar')
+        download_file(options.version, 'r8lib-exclude-deps.jar', 'r8lib.jar')
         download_file(
-            options.hash, 'r8lib-exclude-deps.jar.map', 'r8lib.jar.map')
+            options.version, 'r8lib-exclude-deps.jar.map', 'r8lib.jar.map')
         g4_add(['r8.jar', 'r8-src.jar', 'r8lib.jar', 'r8lib.jar.map'])
 
       subprocess.check_output('chmod u+w %s/*' % new_version, shell=True)
@@ -197,9 +196,8 @@
       blaze_result = blaze_run('//third_party/java/r8:d8 -- --version')
 
       assert options.version in blaze_result
-      assert options.hash in blaze_result
 
-      return g4_change(new_version, options.hash)
+      return g4_change(new_version, options.version)
 
   return release_google3
 
@@ -214,9 +212,6 @@
   result.add_argument('--version',
                       required=True,
                       help='The new version of R8 (e.g., 1.4.51)')
-  result.add_argument('--hash',
-                      required=True,
-                      help='The hash of the new R8 version')
   result.add_argument('--no_sync',
                       default=False,
                       action='store_true',
@@ -231,11 +226,11 @@
   args = parse_options()
   targets_to_run = []
   if 'google3' in args.targets:
-    targets_to_run.append(prepare_google3())
+    targets_to_run.append(prepare_google3(args))
   if 'studio' in args.targets:
-    targets_to_run.append(prepare_studio())
+    targets_to_run.append(prepare_studio(args))
   if 'aosp' in args.targets:
-    targets_to_run.append(prepare_aosp())
+    targets_to_run.append(prepare_aosp(args))
 
   final_results = []
   for target_closure in targets_to_run: