Skip to content

Releases: rules-proto-grpc/rules_proto_grpc

5.0.1

30 Sep 19:27
Compare
Choose a tag to compare

Fixed gRPC-Gateway OpenAPI plugin on Linux ARM64 #360

5.0.0

31 Jul 14:57
Compare
Choose a tag to compare

The 5.0.0 release introduces support for Bzlmod and drops support for WORKSPACE. This has required a large restructure of the repo, with the code being split into multiple modules. A 'core' module provides common types and compilation support, whilst per-language modules provide the integration with each language's specific third-party modules and tools. Moving to Bzlmod provides a huge improvement in the stability and maintainability of these rules, as third-party transitive dependency management has been handed off to Bazel and new versions of gRPC and Protobuf should hopefully be able to be supported more rapidly.

At present, a limited number of languages have been migrated from the 4.x.x releases, with support for the remaining languages being tracked here. For these unsupported languages - or for WORKSPACE repos - it is recommended you continue using the 4.x.x releases.

The way you use these rules is largely unchanged, but unfortunately the paths used for load of the rules will have changed due to the splitting into language-specific modules. For example, the following load:

load("@rules_proto_grpc//go:defs.bzl", "go_proto_library")

Will become:

load("@rules_proto_grpc_go//:defs.bzl", "go_proto_library")

Details on the new rule loads can, as always, be found on each language's page in the documentation. Examples for each language are also provided in the repo's examples directory.

Some key other changes include:

  • The versions of gRPC and Protobuf are updated to the latest available in
    Bazel Central Registry
  • Python now pulls gRPC and Protobuf from pip wheels
  • Buf rules now work on Windows (requires the --enable_runfiles flag to be set)

Should you have any issues with the new release, please open a new issue or discussion.

5.0.0-alpha3

17 Jan 13:49
Compare
Choose a tag to compare
5.0.0-alpha3 Pre-release
Pre-release
  • Fixing the generated python path with dot
  • Set cfg = exec on plugins label list template
  • Correctly forward test attrs for buf test rules

5.0.0-alpha2

20 Dec 11:58
Compare
Choose a tag to compare
5.0.0-alpha2 Pre-release
Pre-release
Accept release version number from input

5.0.0-alpha1

14 Dec 19:47
Compare
Choose a tag to compare
5.0.0-alpha1 Pre-release
Pre-release

Test first release of bzlmod rules for rules_proto_grpc

4.6.0

14 Dec 17:24
Compare
Choose a tag to compare

General

  • Fixed incompatibility with Bazel 7 for the C, C++ and Objective-C rules. #298

Rust

  • Breaking change: The preserve_proto_field_names option is no longer set on the Serde plugin by default, as it cannot then be disabled. If you need this option, set if manually with the options attr. #297
  • Disabled Clippy lints in generated code. #296

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