From 67da0976dd355059d60472f7f855c52ffc5ce500 Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Thu, 28 Apr 2022 22:45:41 +0200 Subject: [PATCH 1/9] Add header with protoc and grpcweb version info --- .../net/grpc/web/generator/grpc_generator.cc | 27 +++++++++++++++++-- javascript/net/grpc/web/generator/version.h | 3 +++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 javascript/net/grpc/web/generator/version.h diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index 498f3e09..90b921c1 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -16,8 +16,11 @@ * */ +#include "version.h" + #include #include +#include #include #include #include @@ -40,6 +43,7 @@ using google::protobuf::compiler::CodeGenerator; using google::protobuf::compiler::GeneratorContext; using google::protobuf::compiler::ParseGeneratorParameter; using google::protobuf::compiler::PluginMain; +using google::protobuf::compiler::Version; using google::protobuf::io::Printer; using google::protobuf::io::ZeroCopyOutputStream; @@ -77,6 +81,17 @@ const char* kKeyword[] = { "volatile", "while", "with", }; +string GetVersion() { return grpc_web_version; } + +string GetProtocVersion(GeneratorContext* context) { + Version compiler_version; + context->GetCompilerVersion(&compiler_version); + return std::to_string(compiler_version.major()) + "." + + std::to_string(compiler_version.minor()) + "." + + std::to_string(compiler_version.patch()) + + compiler_version.suffix(); +} + bool IsReserved(const string& ident) { for (size_t i = 0; i < sizeof(kKeyword) / sizeof(kKeyword[0]); i++) { if (ident == kKeyword[i]) { @@ -944,12 +959,16 @@ void PrintProtoDtsFile(Printer* printer, const FileDescriptor* file) { void PrintFileHeader(Printer* printer, const std::map& vars) { printer->Print( vars, + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n" "/**\n" " * @fileoverview gRPC-Web generated client stub for $package$\n" " * @enhanceable\n" " * @public\n" - " */\n\n" - "// GENERATED CODE -- DO NOT EDIT!\n\n\n" + " */\n\n\n" "/* eslint-disable */\n" "// @ts-nocheck\n\n\n"); } @@ -1549,6 +1568,10 @@ class GrpcCodeGenerator : public CodeGenerator { return true; } + vars["version"] = GetVersion(); + vars["protoc_version"] = GetProtocVersion(context); + vars["source_file"] = file->name(); + string file_name = generator_options.OutputFile(file->name()); if (generator_options.multiple_files() && ImportStyle::CLOSURE == generator_options.import_style()) { diff --git a/javascript/net/grpc/web/generator/version.h b/javascript/net/grpc/web/generator/version.h new file mode 100644 index 00000000..39f849d1 --- /dev/null +++ b/javascript/net/grpc/web/generator/version.h @@ -0,0 +1,3 @@ +#include + +const std::string grpc_web_version = "3.1.3"; From c91e785cebc4b24a19cf789579414e9a627212c6 Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Thu, 28 Apr 2022 23:33:30 +0200 Subject: [PATCH 2/9] Add --version flag to main --- javascript/net/grpc/web/generator/grpc_generator.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index 90b921c1..4b70d012 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -1735,6 +1735,10 @@ class GrpcCodeGenerator : public CodeGenerator { } // namespace grpc int main(int argc, char* argv[]) { + if (argc == 2 && std::string(argv[1]) == "--version") { + std::cout << argv[0] << " " << grpc::web::GetVersion() << std::endl; + return 0; + } grpc::web::GrpcCodeGenerator generator; PluginMain(argc, argv, &generator); return 0; From 84fb688b1f111075dbe3e10312d89e93a7145342 Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Fri, 29 Apr 2022 00:22:17 +0200 Subject: [PATCH 3/9] Updated BUILD.bazel with version.h --- javascript/net/grpc/web/generator/BUILD.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/net/grpc/web/generator/BUILD.bazel b/javascript/net/grpc/web/generator/BUILD.bazel index 758c11fc..2a5cc97f 100644 --- a/javascript/net/grpc/web/generator/BUILD.bazel +++ b/javascript/net/grpc/web/generator/BUILD.bazel @@ -3,6 +3,7 @@ load("@rules_cc//cc:defs.bzl", "cc_binary") cc_binary( name = "protoc-gen-grpc-web", srcs = [ + "version.h", "grpc_generator.cc", ], visibility = ["//visibility:public"], From 4cb353e400ac19d9a37172ba8c4a7d5f6a830a0c Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Fri, 29 Apr 2022 00:48:05 +0200 Subject: [PATCH 4/9] Fixed typo in version.h --- javascript/net/grpc/web/generator/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/net/grpc/web/generator/version.h b/javascript/net/grpc/web/generator/version.h index 39f849d1..8c638a23 100644 --- a/javascript/net/grpc/web/generator/version.h +++ b/javascript/net/grpc/web/generator/version.h @@ -1,3 +1,3 @@ #include -const std::string grpc_web_version = "3.1.3"; +const std::string grpc_web_version = "1.3.1"; From afd0b8b5d5105a529b9082d622a56edda82f9fc9 Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Fri, 29 Apr 2022 01:47:28 +0200 Subject: [PATCH 5/9] Moved version info into grpc_generator.cc --- javascript/net/grpc/web/generator/BUILD.bazel | 1 - javascript/net/grpc/web/generator/grpc_generator.cc | 6 ++++-- javascript/net/grpc/web/generator/version.h | 3 --- 3 files changed, 4 insertions(+), 6 deletions(-) delete mode 100644 javascript/net/grpc/web/generator/version.h diff --git a/javascript/net/grpc/web/generator/BUILD.bazel b/javascript/net/grpc/web/generator/BUILD.bazel index 2a5cc97f..758c11fc 100644 --- a/javascript/net/grpc/web/generator/BUILD.bazel +++ b/javascript/net/grpc/web/generator/BUILD.bazel @@ -3,7 +3,6 @@ load("@rules_cc//cc:defs.bzl", "cc_binary") cc_binary( name = "protoc-gen-grpc-web", srcs = [ - "version.h", "grpc_generator.cc", ], visibility = ["//visibility:public"], diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index 4b70d012..5ef09acc 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -16,8 +16,6 @@ * */ -#include "version.h" - #include #include #include @@ -81,6 +79,9 @@ const char* kKeyword[] = { "volatile", "while", "with", }; +// Edit the version here prior to release +const std::string grpc_web_version = "1.3.1"; + string GetVersion() { return grpc_web_version; } string GetProtocVersion(GeneratorContext* context) { @@ -1739,6 +1740,7 @@ int main(int argc, char* argv[]) { std::cout << argv[0] << " " << grpc::web::GetVersion() << std::endl; return 0; } + grpc::web::GrpcCodeGenerator generator; PluginMain(argc, argv, &generator); return 0; diff --git a/javascript/net/grpc/web/generator/version.h b/javascript/net/grpc/web/generator/version.h deleted file mode 100644 index 8c638a23..00000000 --- a/javascript/net/grpc/web/generator/version.h +++ /dev/null @@ -1,3 +0,0 @@ -#include - -const std::string grpc_web_version = "1.3.1"; From f209b00ac356718c065cac10b524699ee0636a7a Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Fri, 29 Apr 2022 01:50:35 +0200 Subject: [PATCH 6/9] Moved version details below @fileoverview section --- javascript/net/grpc/web/generator/grpc_generator.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index 5ef09acc..276d169d 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -960,16 +960,16 @@ void PrintProtoDtsFile(Printer* printer, const FileDescriptor* file) { void PrintFileHeader(Printer* printer, const std::map& vars) { printer->Print( vars, - "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" - "// versions:\n" - "// \tprotoc-gen-grpc-web v$version$\n" - "// \tprotoc v$protoc_version$\n" - "// source: $source_file$\n" "/**\n" " * @fileoverview gRPC-Web generated client stub for $package$\n" " * @enhanceable\n" " * @public\n" - " */\n\n\n" + " */\n\n" + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n\n\n" "/* eslint-disable */\n" "// @ts-nocheck\n\n\n"); } From 18b9db4755be9dffe86068ad21eb0c52f0dea65f Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Fri, 29 Apr 2022 21:46:10 +0200 Subject: [PATCH 7/9] Add generated comment for method desc and es6 file --- javascript/net/grpc/web/generator/grpc_generator.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index 276d169d..9d358543 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -986,7 +986,11 @@ void PrintMethodDescriptorFile(Printer* printer, printer->Print( " * @public\n" " */\n\n" - "// GENERATED CODE -- DO NOT EDIT!\n\n\n" + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n\n\n" "/* eslint-disable */\n" "// @ts-nocheck\n\n\n"); @@ -1381,7 +1385,11 @@ void PrintGrpcWebClosureES6File(Printer* printer, const FileDescriptor* file) { string package_dot = file->package().empty() ? "" : file->package() + "."; printer->Print( - "// GENERATED CODE -- DO NOT EDIT!\n" + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n" "\n" "/**\n" " * @fileoverview gRPC-Web generated client stub for '$file$'\n" From 1a4d1e37614120e3d40da8105e0d1887f9cfaa2d Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Fri, 29 Apr 2022 22:03:25 +0200 Subject: [PATCH 8/9] Replace GetVersion() with GRPC_WEB_VERSION const --- javascript/net/grpc/web/generator/grpc_generator.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index 9d358543..cb634f1f 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -80,9 +80,7 @@ const char* kKeyword[] = { }; // Edit the version here prior to release -const std::string grpc_web_version = "1.3.1"; - -string GetVersion() { return grpc_web_version; } +static const std::string GRPC_WEB_VERSION = "1.3.1"; string GetProtocVersion(GeneratorContext* context) { Version compiler_version; @@ -1577,7 +1575,7 @@ class GrpcCodeGenerator : public CodeGenerator { return true; } - vars["version"] = GetVersion(); + vars["version"] = GRPC_WEB_VERSION; vars["protoc_version"] = GetProtocVersion(context); vars["source_file"] = file->name(); @@ -1745,7 +1743,7 @@ class GrpcCodeGenerator : public CodeGenerator { int main(int argc, char* argv[]) { if (argc == 2 && std::string(argv[1]) == "--version") { - std::cout << argv[0] << " " << grpc::web::GetVersion() << std::endl; + std::cout << argv[0] << " " << grpc::web::GRPC_WEB_VERSION << std::endl; return 0; } From 0789abbbf5b520ab6fa450d8d5f970b922f5d7d2 Mon Sep 17 00:00:00 2001 From: Hein Meling Date: Sat, 30 Apr 2022 00:57:06 +0200 Subject: [PATCH 9/9] Moved @fileoverview above Code generated comment --- javascript/net/grpc/web/generator/grpc_generator.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/javascript/net/grpc/web/generator/grpc_generator.cc b/javascript/net/grpc/web/generator/grpc_generator.cc index cb634f1f..2255629b 100644 --- a/javascript/net/grpc/web/generator/grpc_generator.cc +++ b/javascript/net/grpc/web/generator/grpc_generator.cc @@ -1383,16 +1383,16 @@ void PrintGrpcWebClosureES6File(Printer* printer, const FileDescriptor* file) { string package_dot = file->package().empty() ? "" : file->package() + "."; printer->Print( + "/**\n" + " * @fileoverview gRPC-Web generated client stub for '$file$'\n" + " */\n" + "\n" "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" "// versions:\n" "// \tprotoc-gen-grpc-web v$version$\n" "// \tprotoc v$protoc_version$\n" "// source: $source_file$\n" "\n" - "/**\n" - " * @fileoverview gRPC-Web generated client stub for '$file$'\n" - " */\n" - "\n" "\n", "file", file->name());