Skip to content

Releases: rules-proto-grpc/rules_proto_grpc

4.5.0

12 Sep 12:01
Compare
Choose a tag to compare

General

  • Updated grpc to 1.54.1
  • Updated rules_proto to 5.3.0-21.7
  • Fixed passing extra options to the grpc-gateway plugin. #258
  • Removed header files from runfiles of cpp_grpc_library. #262
  • Added a path conversion from snake_case to dashed-case. #274
  • Fixed missing env var in documentation. #279

C++

  • Added support for NO_PREFIX output mode. #276

C#/F#

  • Updated gRPC to 2.53.0

Go

  • Updated rules_go to 0.39.1

Python

  • Added support for passing data attr to Python library rules. #257

Ruby

  • Updated rules_ruby to latest

Rust

  • Major change: Replaced Rust protobuf and gRPC libraries with Prost and Tonic respectively. See the Rust rules documentation for examples of how this change can be adopted. #265

4.4.0

03 May 14:38
298ac1a
Compare
Choose a tag to compare

General

  • Increased minimum supported Bazel version from 5.0.0 to 5.3.0. #230
  • Added support for param file for excess arguments, which allows for longer commands lines without failure
  • Fixed Windows incompatibility due to test workspace containing quote character in path
  • The proto_compile function is now exported in the public defs.bzl for use in external rules
  • Added static release assets generation, which will change the format of the download URL to use in your WORKSPACE. See the sample installation docs for the new URL

Go

  • Updated github.com/envoyproxy/protoc-gen-validate to 1.0.0

grpc-gateway

  • WORKSPACE update needed: Renamed grpc-gateway repository name from grpc_ecosystem_grpc_gateway to com_github_grpc_ecosystem_grpc_gateway_v2, to match the naming used by Gazelle. You may need to update your WORKSPACE file to use the new name

Objective-C

  • Fixed expected naming of output files for proto files containing numbers in file name. #253

4.3.0

04 Dec 23:01
5c27949
Compare
Choose a tag to compare

General

  • Updated protobuf to 21.10
  • Updated grpc to 1.51.0
  • Updated rules_proto to 5.3.0-21.5
  • Updated bazel_skylib to 1.3.0
  • Added support for paths to proto files that contain spaces or other special characters
  • Added forwarding of all standard Bazel rule attributes for library macros
  • Added support for providing plugin-specific environment variables

Buf

  • Updated Buf plugins to v1.9.0

C

  • WORKSPACE update needed: The upb version is now sourced from gRPC dependencies to prevent version skew in mixed C and C++ workspaces. See the example workspaces for the new template

C#/F#

  • Updated gRPC to 2.50.0

Go

  • Updated google.golang.org/protobuf to 1.28.1
  • Updated rules_go to 0.36.0
  • Updated github.com/envoyproxy/protoc-gen-validate to 0.9.0

grpc-gateway

  • Updated grpc-gateway to 2.14.0

gRPC-Web

  • Added support for M1 builds of grpc-web
  • Updated grpc-web to 1.4.2

Java

  • Updated rules_jvm_external to 4.5

JavaScript

  • Updated google-protobuf to 3.21.2
  • Updated @grpc/grpc-js to 1.7.3
  • Updated rules_nodejs to 5.7.1

Python

  • Updated rules_python to 0.15.0
  • Updated grpclib to 0.4.3
  • WORKSPACE update needed: The Python dependencies have moved from pip_install to pip_parse, as advised by rules_python authors. See the example workspaces for the new template, which is only necessary if you are using grpclib
  • Removed subpar dependency

Ruby

  • Updated google-protobuf to 3.21.9
  • Updated grpc to 1.50.0

Rust

  • Updated rules_rust to 0.14.0

Scala

  • Update ScalaPB to 0.11.12
  • Updated rules_scala to latest

Swift

  • Updated rules_swift to 1.4.0

4.2.0

24 Aug 16:54
Compare
Choose a tag to compare

General

  • Updated protobuf to 21.5
  • Updated grpc to 1.48.0
  • Updated zlib to 1.2.12
  • Switched default use_built_in_shell_environment to True . #182
  • Bumped minimum Bazel version to 5.0.0
  • Updated bazel_skylib to 1.2.1
  • Added section to the documentation on overriding dependencies
  • Fixed compilation failure when using a mix of plugins that output directories and files

Buf

  • Updated Buf plugins to v1.7.0
  • Added support for M1/arm64

C++

  • WORKSPACE update needed: You now need to load grpc_extra_deps in your WORKSPACE file. See the example workspaces for the new template

C#/F#

  • Breaking change: The C# and F# rules have switched from using the deprecated Grpc.Core to the new Grpc.Net.Client and Grpc.AspNetCore
  • Updated gRPC to 2.47.0
  • Updated rules_dotnet to latest
  • Updated FSharp.Core to 6.0.5
  • Updated Protobuf.FSharp to 0.2.0
  • Updated grpc-fsharp to 0.2.0

Docs

  • Updated protoc-gen-doc to 1.5.1

Go

  • Updated rules_go to 0.34.0
  • Updated gazelle to 0.26.0
  • Updated protoc-gen-validate to 0.6.7

grpc-gateway

  • Updated grpc-gateway to 2.11.3

gRPC-Web

  • Updated grpc-web to 1.3.1

JavaScript

  • Updated rules_nodejs to 5.5.2
  • Moved to protocolbuffers/protobuf-javascript
  • Updated @grpc/grpc-js to 1.6.7
  • WORKSPACE update needed: The build_bazel_rules_nodejs_dependencies rule needs to be added to your WORKSPACE
  • TypeScript support is currently somewhat broken, see here. This is not a change from 4.1.0

Objective-C

  • Fixed expected naming of output files for proto files containing dash in file name.
    #177
  • WORKSPACE update needed: You now need to load grpc_extra_deps in your WORKSPACE file. See the example workspaces for the new template

Python

  • Updated rules_python to 0.10.2
  • WORKSPACE update needed: You now need to load grpc_extra_deps in your WORKSPACE file. See the example workspaces for the new template

Rust

  • Updated rules_rust to 0.9.0

Scala

  • Updated rules_scala to latest
  • Updated ScalaPB to 0.11.10

Swift

  • Updated rules_swift to 1.1.0

4.1.1

30 Dec 22:37
c618f7f
Compare
Choose a tag to compare

Python

  • Ensured Python dependencies are correctly updated

4.1.0

12 Dec 20:41
Compare
Choose a tag to compare

The 4.1.0 is mostly an incremental update of dependencies. However, users of the Go and grpc-gateway rules should see the note below about a change in WORKSPACE order required to avoid resolving very old versions of dependencies via Gazelle.

General

  • Updated protobuf to 3.19.1
  • Updated grpc to 1.42.0

C#/F#

  • Updated gRPC to 2.42.0
  • Updated rules_dotnet to latest

Go

  • Updated rules_go to 0.29.0
  • Updated gazelle to 0.24.0. Note that Gazelle has added multiple dependencies in 0.24.0 that conflict with our dependencies and are at quite old versions. If you get an error about SupportPackageIsVersion7, you must swap the order you run gazelle_dependencies() in your WORKSPACE to be after rules_proto_grpc_go_repos. See this issue for further details
  • Updated com_github_envoyproxy_protoc_gen_validate to 0.6.2

grpc-gateway

  • See above note about Gazelle

gRPC-Web

  • Updated grpc-web to 1.3.0

JavaScript

  • Updated rules_nodejs to 4.4.6
  • Updated @grpc/grpc-js to 1.4.4

Python

  • Updated rules_python to 0.5.0

Ruby

  • Updated rules_ruby to 0.6.0

Rust

  • Updated rules_rust to latest. Note that new rules_rust commits have moved their rules definitions from /rust/rust.bzl to /rust/defs.bzl, which is now required to be followed by these rules. No backwards compatibility is possible here as the original path has been removed

Scala

  • Updated rules_scala to latest
  • Updated ScalaPB to 0.11.6

Swift

  • Updated rules_swift to 0.24.0
  • Updated grpc-swift to 1.6.0

4.0.1

04 Oct 14:02
b3d57d8
Compare
Choose a tag to compare

General

  • Fixed plugin label specific values in options attr being ignored

4.0.0

21 Sep 23:32
Compare
Choose a tag to compare

The 4.0.0 release brings a number of key improvements to tidy up rules_proto_grpc, along with updates to all of the main dependencies. For most users, 4.0.0 will be a drop-in replacement to the 3.x.x releases and the updates for each language are shown below. Should you have any issues with the new release, please open a new issue or discussion.

The following changes are considered 'breaking', requiring the step to the 4.x.x release cycle:

  • The transitive aspect-based compilation mode using the deps attribute is now completely removed. This mode was deprecated in 3.0.0 and all use of the transitive mode will have shown a warning. If all of your uses of rules_proto_grpc use the protos attribute, 4.0.0 will be no different from 3.x.x. See here for further details. If you have written your own rules for a custom plugin, please see the updated and simplified rule template.

  • The //nodejs aliases for the //js rules have been removed. Again, these were deprecated in the 3.x.x cycle and printed a warning when used. If you are still using these aliases, you can simply change your imports to use the //js prefixed rules.

  • The Rust rules have switched gRPC implementation to grpc. In 3.x.x, we used grpc-rs/grpcio, which wraps the C/C++ implementation of gRPC directly. However, the wrapping process was extremely error prone, with updates of either Rust rules or gRPC causing linker failures and significant maintenance burden. Should you still need grpcio crate support, the 3.1.1 release continues to work but may have issues with newer gRPC versions. The replacement grpc crate is self-described as 'not suitable for production use' but is more readily supportable by these rules in the short term. In the longer term, support for prost and tonic is also on the roadmap, but is waiting for protoc plugins to be available.

  • When using JavaScript library rules, the require path for generated files no longer includes the <target_name>_pb path segment by default. For the previous behaviour, set legacy_path = True on the library. #107

General

  • Updated protobuf to 3.18.0
  • Updated grpc to 1.40.0
  • Updated rules_proto to 4.0.0
  • Documentation has moved to rules-proto-grpc.com. Existing links to the old location will continue to work
  • Transitive aspect-based compilation has been removed
  • The output_files attribute of ProtoCompileInfo has changed from a dict of depsets to a single depset. This is generally an internal implementation detail, so is unlikely to affect any rule users.

C

  • Updated upb to latest

C#/F#

  • Added F# support. #127
  • Updated gRPC to 2.40.0

D

  • Updated rules_d to latest

Doc

  • Updated protoc-gen-doc to 1.5.0
  • Added doc_template_compile to generate output using a custom Go template file.

Go

grpc-gateway

  • Updated grpc-gateway to 2.6.0

Java

  • Updated grpc-java to 1.40.1

JavaScript

  • Breaking change: The require path for generated files no longer includes the <target_name>_pb path segment by default. For the previous behaviour, set legacy_path = True on the library. #107
  • Added package_name attribute to library rules, which allows customising the package name of the generated library. By default if unspecified, the target name will continue to be used as in previous versions.
  • Updated rules_nodejs to 4.2.0
  • Updated @grpc/grpc-js to 1.3.7
  • Updated grpc-tools to 1.11.2
  • Updated ts-protoc-gen to 0.15.0

Python

  • Updated rules_python to 0.4.0
  • Updated six to 1.16.0

Ruby

  • Updated rules_ruby to 0.5.2
  • WORKSPACE update needed: The ruby_bundle call in your workspace needs an extra include attribute for grpc to work as expected. Please see the Ruby examples

Rust

  • Updated rules_rust to latest
  • Breaking change: Replaced grpcio with grpc. Please see above description for full details on why grpcio is no longer supportable and the long term aim to support prost and tonic
  • Updated protobuf and protobuf-codegen to 2.25.1

Scala

  • Updated rules_scala to latest
  • Updated ScalaPB to 0.11.5
  • WORKSPACE update needed: Dependencies are now fetched with maven_install. You will need to update your WORKSPACE to match the current example.

Swift

  • Updated rules_swift to 0.23.0
  • Updated grpc-swift to 1.4.1
  • Updated swift-log to 1.4.2
  • Updated swift-nio to 2.32.3
  • Updated swift-nio-extra to 1.10.2
  • Updated swift-nio-http2 to 1.18.3
  • Updated swift-nio-ssl to 2.15.1
  • Updated swift-nio-transport-services to 1.11.3

TypeScript

  • The default mode for TypeScript gRPC compilation has changed to grpc-js. This means imports should now use @grpc/grpc-js instead of grpc #134

3.1.1

05 Apr 23:52
be97d01
Compare
Choose a tag to compare

Improved documentation is now available at https://rules-proto-grpc.aliddell.com

3.1.0

03 Mar 00:15
616893b
Compare
Choose a tag to compare

This update mostly brings fixes to the JavaScript rules, along with new rules for generating Markdown, JSON, HTML or
DocBook documentation from .proto files using protoc-gen-doc.
Additionally, new buf_proto_lint and buf_proto_breaking rules have been added to support linting .proto files and
checking for breaking changes using Buf.

General

  • Updated protobuf to 3.15.3

Buf

  • Added linting and breaking change detection rules using Buf

Doc

  • Added documentation rules to generate Markdown, JSON, HTML or DocBook files using
    protoc-gen-doc

grpc-gateway

  • Updated grpc-gateway to 2.3.0
  • Fixed issue with mixing .proto files that do and do not contain services
    #72

JavaScript

  • Updated rules_nodejs to 3.2.1
  • WORKSPACE update needed: The dependencies for JavaScript rules must now be loaded into your local packge.json,
    which defaults to the name @npm. The yarn_install for js_modules in your WORKSPACE can now also be removed
  • Updated @grpc/grpc-js to 1.2.8
  • Fixed missing DeclarationInfo when using the js_grpc_node_library or js_grpc_web_library rules
    #113
  • Added a TypeScript test workspace

Objective-C

  • Added the objc_grpc_library experimental rule

Rust

  • Updated rules_rust to latest
  • Updated grpcio to 0.8.0
  • Updated protobuf to 2.22.0