From 3592c5fcdbcf0172a404d39fa2baeaa3f5a86647 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Wed, 12 Sep 2018 16:51:08 -0700 Subject: [PATCH 1/6] add checks for protoc --- utilities/batch_generate_apis.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/utilities/batch_generate_apis.py b/utilities/batch_generate_apis.py index 289643b7889d..168710ded583 100644 --- a/utilities/batch_generate_apis.py +++ b/utilities/batch_generate_apis.py @@ -20,7 +20,7 @@ # $ git clone https://github.com/googleapis/googleapis.git # $ git clone https://github.com/googleapis/discovery-artifact-manager.git # -# Run this script: +# Run this script from the top-level google-cloud-java directory: # # $ python utilities/batch_generate_apis.py PATH_TO_GOOGLEAPIS PATH_TO_DISCOVERY_ARTIFACT_MANAGER @@ -28,6 +28,7 @@ import os import generate_api +import re def run_gapic_gen(googleapis): @@ -93,7 +94,12 @@ def generate(artman_yaml): generate('gapic/google/compute/artman_compute.yaml') +def verify_proto_version(): + line = subprocess.check_output(['grep', '-C', path, 'rev-parse', 'HEAD']).strip() + + def main(): + # Verify user has protoc 3.6.0 # TODO Make the docker image the default, add --local option parser = argparse.ArgumentParser(description='Batch generate all APIs.') parser.add_argument('googleapis', help='The path to the googleapis repo') From e207ff269d9a1ccc759297f1cbdb312d1f717626 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Wed, 12 Sep 2018 16:54:32 -0700 Subject: [PATCH 2/6] first implementaiton --- utilities/batch_generate_apis.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/utilities/batch_generate_apis.py b/utilities/batch_generate_apis.py index 168710ded583..5fce0f530e7a 100644 --- a/utilities/batch_generate_apis.py +++ b/utilities/batch_generate_apis.py @@ -26,9 +26,10 @@ import argparse import os +import sys +from subprocess import check_output import generate_api -import re def run_gapic_gen(googleapis): @@ -95,11 +96,24 @@ def generate(artman_yaml): def verify_proto_version(): - line = subprocess.check_output(['grep', '-C', path, 'rev-parse', 'HEAD']).strip() + protobuf_version_node = check_output( + ['grep', '-zohr', '--include=pom.xml', + '.*']) + version_start_index = protobuf_version_node.find('>') + 1 + version_end_index = protobuf_version_node.rfind('<') + version = protobuf_version_node[version_start_index : version_end_index].strip() + + # This will be something like 'libprotoc 3.6.0' + protoc_version_str = check_output(['protoc', '--version']) + + if not (version in protoc_version_str): + sys.exit("Local version of protoc is %s. Please use protoc version %s" + " to match the version of protobuf-java used in this repo.") def main(): # Verify user has protoc 3.6.0 + verify_proto_version() # TODO Make the docker image the default, add --local option parser = argparse.ArgumentParser(description='Batch generate all APIs.') parser.add_argument('googleapis', help='The path to the googleapis repo') From 4f406f200e0251a22b8f48e4e1df9a273b8aeccf Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Wed, 12 Sep 2018 16:57:35 -0700 Subject: [PATCH 3/6] better error message --- utilities/batch_generate_apis.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/utilities/batch_generate_apis.py b/utilities/batch_generate_apis.py index 5fce0f530e7a..deedf9b7c780 100644 --- a/utilities/batch_generate_apis.py +++ b/utilities/batch_generate_apis.py @@ -101,14 +101,17 @@ def verify_proto_version(): '.*']) version_start_index = protobuf_version_node.find('>') + 1 version_end_index = protobuf_version_node.rfind('<') - version = protobuf_version_node[version_start_index : version_end_index].strip() + protobuf_version = protobuf_version_node[version_start_index : version_end_index].strip() # This will be something like 'libprotoc 3.6.0' protoc_version_str = check_output(['protoc', '--version']) - if not (version in protoc_version_str): - sys.exit("Local version of protoc is %s. Please use protoc version %s" - " to match the version of protobuf-java used in this repo.") + if not (protobuf_version in protoc_version_str): + sys.exit("ERROR: Local version of protoc is %s" + " (see output of `which protoc`)." + " Please use protoc version %s" + " to match the version of protobuf-java used in this repo." + % (protobuf_version, protoc_version_str)) def main(): From 713a76dd0a52dea43d8c3849b43b7763c5d7a0e7 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Wed, 12 Sep 2018 16:58:47 -0700 Subject: [PATCH 4/6] fixed swap of versions --- utilities/batch_generate_apis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/batch_generate_apis.py b/utilities/batch_generate_apis.py index deedf9b7c780..6cdc4ce6c074 100644 --- a/utilities/batch_generate_apis.py +++ b/utilities/batch_generate_apis.py @@ -111,7 +111,7 @@ def verify_proto_version(): " (see output of `which protoc`)." " Please use protoc version %s" " to match the version of protobuf-java used in this repo." - % (protobuf_version, protoc_version_str)) + % (protoc_version_str, protobuf_version)) def main(): From d4a302135b06de2ceef25b31909ac68e1a2af452 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Wed, 12 Sep 2018 17:01:38 -0700 Subject: [PATCH 5/6] remove comment --- utilities/batch_generate_apis.py | 1 - 1 file changed, 1 deletion(-) diff --git a/utilities/batch_generate_apis.py b/utilities/batch_generate_apis.py index 6cdc4ce6c074..7fb23d80cbe3 100644 --- a/utilities/batch_generate_apis.py +++ b/utilities/batch_generate_apis.py @@ -115,7 +115,6 @@ def verify_proto_version(): def main(): - # Verify user has protoc 3.6.0 verify_proto_version() # TODO Make the docker image the default, add --local option parser = argparse.ArgumentParser(description='Batch generate all APIs.') From c597defeebcd142078fe925f5b425b9daf98f548 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Wed, 12 Sep 2018 17:02:00 -0700 Subject: [PATCH 6/6] proto -> protoc --- utilities/batch_generate_apis.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/batch_generate_apis.py b/utilities/batch_generate_apis.py index 7fb23d80cbe3..08a5f75fe394 100644 --- a/utilities/batch_generate_apis.py +++ b/utilities/batch_generate_apis.py @@ -95,7 +95,7 @@ def generate(artman_yaml): generate('gapic/google/compute/artman_compute.yaml') -def verify_proto_version(): +def verify_protoc_version(): protobuf_version_node = check_output( ['grep', '-zohr', '--include=pom.xml', '.*']) @@ -115,7 +115,7 @@ def verify_proto_version(): def main(): - verify_proto_version() + verify_protoc_version() # TODO Make the docker image the default, add --local option parser = argparse.ArgumentParser(description='Batch generate all APIs.') parser.add_argument('googleapis', help='The path to the googleapis repo')