Releases: rules-proto-grpc/rules_proto_grpc
5.1.0
Changes
- Added support for Bazel 8 and dropped Bazel 6 support
- Replaced deprecated
rules_proto
withprotobuf
- Added support for providing extra plugins to rules at runtime using the
extra_plugins
attribute - Fixed version skew between grpc-gateway protoc plugin and runtime
- Added optional generation of
.pyi
files for Python - Switched Objective-C sources to use
non_arc_srcs
- Dropped C language support, as the μpb API is considered unstable and the C plugin is no longer publicly visible from the
protobuf
workspace - Removed usage of
ctx.resolve_tools
that is deprecated - Added Python 3.13 to supported list
- Replaced custom grpclib plugin with
py_console_script_binary
Version Updates
- Updated Bazel
apple_support
to 1.22.0 - Updated Bazel
buildifier_prebuilt
to 8.0.3 - Updated Bazel
gazelle
to 0.43.0 - Updated Bazel
grpc
to 1.72.0 - Updated Bazel
protobuf
to 30.2 - Updated Bazel
rules_cc
to 0.1.1 - Updated Bazel
rules_go
to 0.54.0 - Updated Bazel
rules_java
to 8.11.0 - Updated Bazel
rules_python
to 1.4.1 - Updated Bazel
rules_shell
to 0.4.1 - Updated Bazel
toolchains_protoc
to 0.4.1 - Updated Buf to 1.54.0
- Updated Go
google.golang.org/protobuf
to v1.36.0 - Updated Go
google.golang.org/grpc
to v1.72.1 - Updated
grpc-gateway
to 2.26.3 - Updated Java
com.google.protobuf:protobuf-java
to 4.30.2 - Updated Java
io.grpc:grpc-api
to 1.72.0 - Updated Python
grpcio
to 1.71.0 - Updated Python
grpclib
to 0.4.8 - Updated Python
protobuf
to 6.30.2
5.0.1
5.0.0
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
- 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
Accept release version number from input
5.0.0-alpha1
Test first release of bzlmod rules for rules_proto_grpc
4.6.0
4.5.0
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
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 publicdefs.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 fromgrpc_ecosystem_grpc_gateway
tocom_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
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
topip_parse
, as advised byrules_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