From d1a593386da272a4e3965d1472ca50c2243e3be9 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 12:58:28 -0400 Subject: [PATCH 01/17] Remote Android tools release 0.3.0 Change-Id: I11221b5f47c977bb16e3148d883778f025a09f08 From 3227ced1a6a9a54f9281e60e0cdf93c66d9defc2 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 13:09:20 -0400 Subject: [PATCH 02/17] Add built at to WORKSPACE Change-Id: I002ee7c0d94851dd69628eb5876b32ba8548146d From d088f8bcc6950d7a2b1439c2b0630f04fd041e3e Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 13:10:33 -0400 Subject: [PATCH 03/17] Bump to 0.3-rc2 Change-Id: Id1e773f8c8b1484d1e3ff808d9032b2e2289dd14 From d12927618c81ad6eadb9fe7625c8502f31da689f Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 13:22:38 -0400 Subject: [PATCH 04/17] Fixed shasum Change-Id: I8eb17716508432e7256363ad7cb0e7207da93ea7 From ab1abf096977c1e1818f3e95230b68ccb310fd10 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 15:17:15 -0400 Subject: [PATCH 05/17] Upload to 3.0 Change-Id: Ib0bfa836d4d04947ee1de72a46a4b8c8b2399ca3 From d091876815e8e88bc73194abe32e00abaf25e4d1 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Wed, 15 May 2019 19:31:03 -0400 Subject: [PATCH 06/17] WIP workers for desugar Change-Id: I85a36fe539eacd9bf9c5dfc9dfb20408102570ab --- tools/android/runtime_deps/upload_android_tools.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/android/runtime_deps/upload_android_tools.sh b/tools/android/runtime_deps/upload_android_tools.sh index 3b477e4382ad5a..5e40c327e8d946 100755 --- a/tools/android/runtime_deps/upload_android_tools.sh +++ b/tools/android/runtime_deps/upload_android_tools.sh @@ -30,7 +30,7 @@ set -euo pipefail # The version of android_tools.tar.gz -VERSION="0.3" +VERSION="SNAPSHOT-DEV" VERSIONED_FILENAME="android_tools_pkg-$VERSION.tar.gz" # Create a temp directory to hold the versioned tarball, and clean it up when the script exits. @@ -47,7 +47,7 @@ cp $android_tools_archive $versioned_android_tools_archive # Upload the tarball to GCS. # -n for no-clobber, so we don't overwrite existing files -gsutil cp -n $versioned_android_tools_archive \ +gsutil cp $versioned_android_tools_archive \ gs://bazel-mirror/bazel_android_tools/$VERSIONED_FILENAME checksum=$(sha256sum $versioned_android_tools_archive | cut -f 1 -d ' ') From 5b83ae0080ce76f358d6d175a23e2e195cb9872c Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Wed, 15 May 2019 19:31:20 -0400 Subject: [PATCH 07/17] WIP workers for desugar Change-Id: Iaf5d1b9ac9301e34052d88a4d266b30471436f9e --- WORKSPACE | 12 +-- .../android/android_remote_tools.WORKSPACE | 1 + .../lib/rules/android/DexArchiveAspect.java | 1 + .../devtools/build/android/desugar/BUILD | 1 + .../build/android/desugar/Desugar.java | 86 +++++++++++++++---- 5 files changed, 78 insertions(+), 23 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 1390a6491e434f..9ed9e27e2c0f7c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -116,7 +116,7 @@ distdir_tar( "2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz", "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz", "0.16.2.zip", - "android_tools_pkg-0.3.tar.gz", + "android_tools_pkg-SNAPSHOT-DEV.tar.gz", ], dirname = "derived/distdir", sha256 = { @@ -164,8 +164,8 @@ distdir_tar( "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip", "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip", ], - "android_tools_pkg-0.3.tar.gz": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.3.tar.gz", + "android_tools_pkg-SNAPSHOT-DEV.tar.gz": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-SNAPSHOT-DEV.tar.gz", ], }, ) @@ -390,7 +390,7 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz", "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip", "zulu11.29.3-ca-jdk11.0.2-win_x64.zip", - "android_tools_pkg-0.3.tar.gz", + "android_tools_pkg-SNAPSHOT-DEV.tar.gz", ], dirname = "test_WORKSPACE/distdir", sha256 = { @@ -433,8 +433,8 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"], "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"], "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"], - "android_tools_pkg-0.3.tar.gz": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.3.tar.gz", + "android_tools_pkg-SNAPSHOT-DEV.tar.gz": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-SNAPSHOT-DEV.tar.gz", ], }, ) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE index e24a9811e550d1..01d6e37056fe8b 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE @@ -2,6 +2,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "android_tools", +<<<<<<< HEAD url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.3.tar.gz", sha256 = "04d25892234cdf8ae49d9c275a25b3371bcc26518179619dc785718db2812b5f", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e ) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java index f9f36ad61f81a9..1111bdcf314716 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java @@ -461,6 +461,7 @@ private static Artifact createDesugarAction( .addOutput(result) .setMnemonic("Desugar") .setProgressMessage("Desugaring %s for Android", jar.prettyPrint()) + .setExecutionInfo(ExecutionRequirements.WORKER_MODE_ENABLED) .addCommandLine( // Always use params file, so we don't need to compute command line length first args.build(), ParamFileInfo.builder(UNQUOTED).setUseAlways(true).build()) diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD b/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD index ad9c75ce807cd3..ecaa153b3c7ef5 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD @@ -35,6 +35,7 @@ java_library( deps = [ ":deps_collector_api", "//src/main/java/com/google/devtools/common/options", + "//src/main/protobuf:worker_protocol_java_proto", "//src/tools/android/java/com/google/devtools/build/android:android_builder_lib", "//src/tools/android/java/com/google/devtools/build/android/desugar/io", "//third_party:asm", diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java index c4d921b17cd028..d1662422212dac 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java @@ -34,9 +34,12 @@ import com.google.devtools.build.android.desugar.io.InputFileProvider; import com.google.devtools.build.android.desugar.io.OutputFileProvider; import com.google.devtools.build.android.desugar.io.ThrowingClassLoader; +import com.google.devtools.build.lib.worker.WorkerProtocol.WorkRequest; +import com.google.devtools.build.lib.worker.WorkerProtocol.WorkResponse; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; +import com.google.devtools.common.options.OptionMetadataTag; import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.ShellQuotedParamsFilePreProcessor; @@ -331,6 +334,16 @@ public static class DesugarOptions extends OptionsBase { + "This flag may be removed when no longer needed." ) public boolean legacyJacocoFix; + + @Option( + name = "persistent_worker", + defaultValue = "false", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = {OptionEffectTag.UNKNOWN}, + metadataTags = {OptionMetadataTag.HIDDEN}, + help = "Run as a Bazel persistent worker." + ) + public boolean persistentWorker; } private static final String RUNTIME_LIB_PACKAGE = @@ -963,15 +976,70 @@ private ClassVisitor createClassVisitorsForClassesInInputs( } public static void main(String[] args) throws Exception { + DesugarOptions options = parseCommandLineOptions(args); + if (options.persistentWorker) { + runPersistentWorker(); + } else { + processRequest(options); + } + } + + private static int runPersistentWorker() throws Exception { + while (true) { + try { + WorkRequest request = WorkRequest.parseDelimitedFrom(System.in); + + if (request == null) { + break; + } + + String[] argList = new String[request.getArgumentsList().size()]; + argList = request.getArgumentsList().toArray(argList); + + DesugarOptions options = parseCommandLineOptions(argList); + + int exitCode = processRequest(options); + WorkResponse.newBuilder() + .setExitCode(exitCode) + .build() + .writeDelimitedTo(System.out); + System.out.flush(); + } catch (IOException e) { + e.printStackTrace(); + return 1; + } + } + return 0; + } + + private static int processRequest(DesugarOptions options) throws Exception { // It is important that this method is called first. See its javadoc. Path dumpDirectory = createAndRegisterLambdaDumpDirectory(); verifyLambdaDumpDirectoryRegistered(dumpDirectory); - DesugarOptions options = parseCommandLineOptions(args); + checkArgument(!options.inputJars.isEmpty(), "--input is required"); + checkArgument( + options.inputJars.size() == options.outputJars.size(), + "Desugar requires the same number of inputs and outputs to pair them. #input=%s,#output=%s", + options.inputJars.size(), + options.outputJars.size()); + checkArgument( + !options.bootclasspath.isEmpty() || options.allowEmptyBootclasspath, + "At least one --bootclasspath_entry is required"); + for (Path path : options.bootclasspath) { + checkArgument(!Files.isDirectory(path), "Bootclasspath entry must be a jar file: %s", path); + } + checkArgument(!options.desugarCoreLibs + || !options.rewriteCoreLibraryPrefixes.isEmpty() + || !options.emulateCoreLibraryInterfaces.isEmpty(), + "--desugar_supported_core_libs requires specifying renamed and/or emulated core libraries"); + if (options.verbose) { System.out.printf("Lambda classes will be written under %s%n", dumpDirectory); } new Desugar(options, dumpDirectory).desugar(); + + return 0; } static void verifyLambdaDumpDirectoryRegistered(Path dumpDirectory) throws IOException { @@ -1030,22 +1098,6 @@ private static DesugarOptions parseCommandLineOptions(String[] args) { parser.parseAndExitUponError(args); DesugarOptions options = parser.getOptions(DesugarOptions.class); - checkArgument(!options.inputJars.isEmpty(), "--input is required"); - checkArgument( - options.inputJars.size() == options.outputJars.size(), - "Desugar requires the same number of inputs and outputs to pair them. #input=%s,#output=%s", - options.inputJars.size(), - options.outputJars.size()); - checkArgument( - !options.bootclasspath.isEmpty() || options.allowEmptyBootclasspath, - "At least one --bootclasspath_entry is required"); - for (Path path : options.bootclasspath) { - checkArgument(!Files.isDirectory(path), "Bootclasspath entry must be a jar file: %s", path); - } - checkArgument(!options.desugarCoreLibs - || !options.rewriteCoreLibraryPrefixes.isEmpty() - || !options.emulateCoreLibraryInterfaces.isEmpty(), - "--desugar_supported_core_libs requires specifying renamed and/or emulated core libraries"); return options; } From dfc00b9928ce9c7b02f791a8208e42951218e9ab Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 15:30:03 -0400 Subject: [PATCH 08/17] Update Change-Id: Iab89c867e921dc7ba654f8a2c0669ae274b6762f From eb5336f4efd31db9abca585788a9268ae0e86971 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 15:37:29 -0400 Subject: [PATCH 09/17] fix Change-Id: I42a4e3040ea9f01d296854628dd4d9538ba30472 From 9f3f85fbab857cf4e4c57017ec3528caff60d521 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 15:45:20 -0400 Subject: [PATCH 10/17] fix tests Change-Id: I6d894ce065a42868e885403e68ea55f741276983 --- WORKSPACE | 4 ++-- .../build/android/desugar/Desugar.java | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 9ed9e27e2c0f7c..85eea7f02c4707 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -58,8 +58,8 @@ list_source_repository(name = "local_bazel_source_list") # 2. Set the $ANDROID_HOME and $ANDROID_NDK_HOME environment variables # 3. Uncomment the two lines below # -# android_sdk_repository(name = "androidsdk") -# android_ndk_repository(name = "androidndk") +android_sdk_repository(name = "androidsdk") +android_ndk_repository(name = "androidndk") # In order to run //src/test/shell/bazel:maven_skylark_test, follow the # instructions above for the Android integration tests and uncomment the diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java index d1662422212dac..be72fb81781b5e 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java @@ -976,15 +976,19 @@ private ClassVisitor createClassVisitorsForClassesInInputs( } public static void main(String[] args) throws Exception { + // It is important that this method is called first. See its javadoc. + Path dumpDirectory = createAndRegisterLambdaDumpDirectory(); + verifyLambdaDumpDirectoryRegistered(dumpDirectory); + DesugarOptions options = parseCommandLineOptions(args); if (options.persistentWorker) { - runPersistentWorker(); + runPersistentWorker(dumpDirectory); } else { - processRequest(options); + processRequest(options, dumpDirectory); } } - private static int runPersistentWorker() throws Exception { + private static int runPersistentWorker(Path dumpDirectory) throws Exception { while (true) { try { WorkRequest request = WorkRequest.parseDelimitedFrom(System.in); @@ -998,7 +1002,7 @@ private static int runPersistentWorker() throws Exception { DesugarOptions options = parseCommandLineOptions(argList); - int exitCode = processRequest(options); + int exitCode = processRequest(options, dumpDirectory); WorkResponse.newBuilder() .setExitCode(exitCode) .build() @@ -1012,11 +1016,7 @@ private static int runPersistentWorker() throws Exception { return 0; } - private static int processRequest(DesugarOptions options) throws Exception { - // It is important that this method is called first. See its javadoc. - Path dumpDirectory = createAndRegisterLambdaDumpDirectory(); - verifyLambdaDumpDirectoryRegistered(dumpDirectory); - + private static int processRequest(DesugarOptions options, Path dumpDirectory) throws Exception { checkArgument(!options.inputJars.isEmpty(), "--input is required"); checkArgument( options.inputJars.size() == options.outputJars.size(), From 590113fc89ebcfc50342319c6e89c914c8a32cb5 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 15:59:33 -0400 Subject: [PATCH 11/17] comment android sdk and ndk repository Change-Id: I2c5e1787aa7e9aae7106fc71acade5377e479366 --- WORKSPACE | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 85eea7f02c4707..9ed9e27e2c0f7c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -58,8 +58,8 @@ list_source_repository(name = "local_bazel_source_list") # 2. Set the $ANDROID_HOME and $ANDROID_NDK_HOME environment variables # 3. Uncomment the two lines below # -android_sdk_repository(name = "androidsdk") -android_ndk_repository(name = "androidndk") +# android_sdk_repository(name = "androidsdk") +# android_ndk_repository(name = "androidndk") # In order to run //src/test/shell/bazel:maven_skylark_test, follow the # instructions above for the Android integration tests and uncomment the From 58f892e0dc5fdac05f586b32702f39fb8298b921 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Fri, 17 May 2019 16:03:29 -0400 Subject: [PATCH 12/17] Fix upload tools script Change-Id: If1eeec8449d64246b3537c423ea83ce74f124cfa From f15faa917d7eb37ecf4452203ab804455c562ac1 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Tue, 21 May 2019 14:24:37 -0400 Subject: [PATCH 13/17] Create android tools 0.4rc1 Change-Id: I68e24f09d2b65b40626f25b6abacde95a8446039 --- WORKSPACE | 16 ++++++++-------- .../rules/android/android_remote_tools.WORKSPACE | 5 ++--- .../android/runtime_deps/upload_android_tools.sh | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 9ed9e27e2c0f7c..f28b077eef0cd2 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -116,7 +116,7 @@ distdir_tar( "2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz", "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz", "0.16.2.zip", - "android_tools_pkg-SNAPSHOT-DEV.tar.gz", + "android_tools_pkg-0.4rc1.tar.gz", ], dirname = "derived/distdir", sha256 = { @@ -129,7 +129,7 @@ distdir_tar( "2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz": "4a1318fed4831697b83ce879b3ab70ae09592b167e5bda8edaff45132d1c3b3f", "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898", "0.16.2.zip": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0", - "android_tools_pkg-0.3.tar.gz": "04d25892234cdf8ae49d9c275a25b3371bcc26518179619dc785718db2812b5f", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e + "android_tools_pkg-0.4rc1.tar.gz": "9c95474954d3e92e85c7e4294bced6798df84a8bcaef0359d53eeb55c0ba0bad", # built at 58f892e0dc5fdac05f586b32702f39fb8298b921 }, urls = { "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": [ @@ -164,8 +164,8 @@ distdir_tar( "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip", "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip", ], - "android_tools_pkg-SNAPSHOT-DEV.tar.gz": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-SNAPSHOT-DEV.tar.gz", + "android_tools_pkg-0.4rc1.tar.gz": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", ], }, ) @@ -390,7 +390,7 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz", "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip", "zulu11.29.3-ca-jdk11.0.2-win_x64.zip", - "android_tools_pkg-SNAPSHOT-DEV.tar.gz", + "android_tools_pkg-0.4rc1.tar.gz", ], dirname = "test_WORKSPACE/distdir", sha256 = { @@ -412,7 +412,7 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08", "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f", "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880", - "android_tools_pkg-0.3.tar.gz": "04d25892234cdf8ae49d9c275a25b3371bcc26518179619dc785718db2812b5f", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e + "android_tools_pkg-0.4rc1.tar.gz": "9c95474954d3e92e85c7e4294bced6798df84a8bcaef0359d53eeb55c0ba0bad", # built at 58f892e0dc5fdac05f586b32702f39fb8298b921 }, urls = { "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"], @@ -433,8 +433,8 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"], "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"], "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"], - "android_tools_pkg-SNAPSHOT-DEV.tar.gz": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-SNAPSHOT-DEV.tar.gz", + "android_tools_pkg-0.4rc1.tar.gz": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", ], }, ) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE index 01d6e37056fe8b..a87ccd9a2964d6 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE @@ -2,8 +2,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "android_tools", -<<<<<<< HEAD - url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.3.tar.gz", - sha256 = "04d25892234cdf8ae49d9c275a25b3371bcc26518179619dc785718db2812b5f", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e + url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", + sha256 = "", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e ) diff --git a/tools/android/runtime_deps/upload_android_tools.sh b/tools/android/runtime_deps/upload_android_tools.sh index 5e40c327e8d946..95f993973e5125 100755 --- a/tools/android/runtime_deps/upload_android_tools.sh +++ b/tools/android/runtime_deps/upload_android_tools.sh @@ -30,7 +30,7 @@ set -euo pipefail # The version of android_tools.tar.gz -VERSION="SNAPSHOT-DEV" +VERSION="0.4rc1" VERSIONED_FILENAME="android_tools_pkg-$VERSION.tar.gz" # Create a temp directory to hold the versioned tarball, and clean it up when the script exits. From ea58373f3cddf9f593b28bdad88e858371b5d474 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Tue, 21 May 2019 14:25:26 -0400 Subject: [PATCH 14/17] Undo no-clobber removal Change-Id: Id6baff1e47e7151124e25792da841a76821ea466 --- tools/android/runtime_deps/upload_android_tools.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/android/runtime_deps/upload_android_tools.sh b/tools/android/runtime_deps/upload_android_tools.sh index 95f993973e5125..9d5202ec6a219f 100755 --- a/tools/android/runtime_deps/upload_android_tools.sh +++ b/tools/android/runtime_deps/upload_android_tools.sh @@ -47,7 +47,7 @@ cp $android_tools_archive $versioned_android_tools_archive # Upload the tarball to GCS. # -n for no-clobber, so we don't overwrite existing files -gsutil cp $versioned_android_tools_archive \ +gsutil cp -n $versioned_android_tools_archive \ gs://bazel-mirror/bazel_android_tools/$VERSIONED_FILENAME checksum=$(sha256sum $versioned_android_tools_archive | cut -f 1 -d ' ') From f1baa568a700f28929c3efe5907c49284e5ccf3d Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Tue, 21 May 2019 14:28:51 -0400 Subject: [PATCH 15/17] Add missing shasum Change-Id: Id573b8f8e011bb928cf34fa4b858e2886f0cd106 --- .../lib/bazel/rules/android/android_remote_tools.WORKSPACE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE index a87ccd9a2964d6..81f5ea142c4656 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE @@ -3,6 +3,6 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "android_tools", url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", - sha256 = "", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e + sha256 = "9c95474954d3e92e85c7e4294bced6798df84a8bcaef0359d53eeb55c0ba0bad", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e ) From 0c7c89d43256217cce2a3aa4335efaa8eefcf5c4 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Tue, 21 May 2019 16:13:24 -0400 Subject: [PATCH 16/17] Appease lint Change-Id: If796a5d6f76f355461deae3477d18228bae9d96b --- .../java/com/google/devtools/build/android/desugar/Desugar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java index be72fb81781b5e..4695e388eb751b 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java @@ -997,7 +997,7 @@ private static int runPersistentWorker(Path dumpDirectory) throws Exception { break; } - String[] argList = new String[request.getArgumentsList().size()]; + String[] argList = new String[request.getArgumentsCount()]; argList = request.getArgumentsList().toArray(argList); DesugarOptions options = parseCommandLineOptions(argList); From 25e151d8500790d16a6031e2d717c1dfa2ce2da1 Mon Sep 17 00:00:00 2001 From: Jingwen Chen Date: Wed, 22 May 2019 12:36:59 -0400 Subject: [PATCH 17/17] Bump to 0.4 Change-Id: Ib87575ab6c4b65d5927f6f5b7295332fcdb08c0e --- WORKSPACE | 16 ++++----- .../android/android_remote_tools.WORKSPACE | 4 +-- .../build/android/desugar/Desugar.java | 35 ++++++++----------- .../runtime_deps/upload_android_tools.sh | 2 +- 4 files changed, 26 insertions(+), 31 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index f28b077eef0cd2..e51f454d919a3e 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -116,7 +116,7 @@ distdir_tar( "2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz", "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz", "0.16.2.zip", - "android_tools_pkg-0.4rc1.tar.gz", + "android_tools_pkg-0.4.tar.gz", ], dirname = "derived/distdir", sha256 = { @@ -129,7 +129,7 @@ distdir_tar( "2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz": "4a1318fed4831697b83ce879b3ab70ae09592b167e5bda8edaff45132d1c3b3f", "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898", "0.16.2.zip": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0", - "android_tools_pkg-0.4rc1.tar.gz": "9c95474954d3e92e85c7e4294bced6798df84a8bcaef0359d53eeb55c0ba0bad", # built at 58f892e0dc5fdac05f586b32702f39fb8298b921 + "android_tools_pkg-0.4.tar.gz": "331e7706f2bcae8a68057d8ddd3e3f1574bca26c67c65802fc4a8ac6164fa912", # built at 0c7c89d43256217cce2a3aa4335efaa8eefcf5c4 }, urls = { "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": [ @@ -164,8 +164,8 @@ distdir_tar( "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip", "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip", ], - "android_tools_pkg-0.4rc1.tar.gz": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", + "android_tools_pkg-0.4.tar.gz": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4.tar.gz", ], }, ) @@ -390,7 +390,7 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz", "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip", "zulu11.29.3-ca-jdk11.0.2-win_x64.zip", - "android_tools_pkg-0.4rc1.tar.gz", + "android_tools_pkg-0.4.tar.gz", ], dirname = "test_WORKSPACE/distdir", sha256 = { @@ -412,7 +412,7 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08", "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f", "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880", - "android_tools_pkg-0.4rc1.tar.gz": "9c95474954d3e92e85c7e4294bced6798df84a8bcaef0359d53eeb55c0ba0bad", # built at 58f892e0dc5fdac05f586b32702f39fb8298b921 + "android_tools_pkg-0.4.tar.gz": "331e7706f2bcae8a68057d8ddd3e3f1574bca26c67c65802fc4a8ac6164fa912", # built at 0c7c89d43256217cce2a3aa4335efaa8eefcf5c4 }, urls = { "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"], @@ -433,8 +433,8 @@ distdir_tar( "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"], "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"], "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"], - "android_tools_pkg-0.4rc1.tar.gz": [ - "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", + "android_tools_pkg-0.4.tar.gz": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4.tar.gz", ], }, ) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE index 81f5ea142c4656..2d4214bec19f0f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_remote_tools.WORKSPACE @@ -2,7 +2,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "android_tools", - url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4rc1.tar.gz", - sha256 = "9c95474954d3e92e85c7e4294bced6798df84a8bcaef0359d53eeb55c0ba0bad", # built at 00ff4dbbf339d5f120a983e002815e37a3e8248e + url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.4.tar.gz", + sha256 = "331e7706f2bcae8a68057d8ddd3e3f1574bca26c67c65802fc4a8ac6164fa912", # built at 0c7c89d43256217cce2a3aa4335efaa8eefcf5c4 ) diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java index 4695e388eb751b..9ebe61471a2e2c 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar.java @@ -46,6 +46,7 @@ import java.io.IOError; import java.io.IOException; import java.io.InputStream; +import java.io.UncheckedIOException; import java.lang.reflect.Field; import java.nio.file.FileSystems; import java.nio.file.FileVisitResult; @@ -988,32 +989,26 @@ public static void main(String[] args) throws Exception { } } - private static int runPersistentWorker(Path dumpDirectory) throws Exception { + private static void runPersistentWorker(Path dumpDirectory) throws Exception { while (true) { - try { - WorkRequest request = WorkRequest.parseDelimitedFrom(System.in); + WorkRequest request = WorkRequest.parseDelimitedFrom(System.in); - if (request == null) { - break; - } + if (request == null) { + break; + } - String[] argList = new String[request.getArgumentsCount()]; - argList = request.getArgumentsList().toArray(argList); + String[] argList = new String[request.getArgumentsCount()]; + argList = request.getArgumentsList().toArray(argList); - DesugarOptions options = parseCommandLineOptions(argList); + DesugarOptions options = parseCommandLineOptions(argList); - int exitCode = processRequest(options, dumpDirectory); - WorkResponse.newBuilder() - .setExitCode(exitCode) - .build() - .writeDelimitedTo(System.out); - System.out.flush(); - } catch (IOException e) { - e.printStackTrace(); - return 1; - } + int exitCode = processRequest(options, dumpDirectory); + WorkResponse.newBuilder() + .setExitCode(exitCode) + .build() + .writeDelimitedTo(System.out); + System.out.flush(); } - return 0; } private static int processRequest(DesugarOptions options, Path dumpDirectory) throws Exception { diff --git a/tools/android/runtime_deps/upload_android_tools.sh b/tools/android/runtime_deps/upload_android_tools.sh index 9d5202ec6a219f..73e880caacb768 100755 --- a/tools/android/runtime_deps/upload_android_tools.sh +++ b/tools/android/runtime_deps/upload_android_tools.sh @@ -30,7 +30,7 @@ set -euo pipefail # The version of android_tools.tar.gz -VERSION="0.4rc1" +VERSION="0.4" VERSIONED_FILENAME="android_tools_pkg-$VERSION.tar.gz" # Create a temp directory to hold the versioned tarball, and clean it up when the script exits.