Releases: rules-proto-grpc/rules_proto_grpc
5.3.0
5.2.1
Changes
No major changes, only version updates
Version Updates
- Updated Bazel
buildifier_prebuilt
to 8.2.0.2 - Updated Bazel
gazelle
to 0.44.0 - Updated Bazel
rules_cc
to 0.1.2 - Updated Bazel
rules_go
to 0.55.1 - Updated Bazel
rules_shell
to 0.5.0 - Updated Bazel
rules_swift
to 3.0.2 - Updated Bazel
rules_swift_package_manager
to 1.0.0 - Updated Swift
grpc/grpc-swift
to 2.2.3 - Updated Swift
grpc/grpc-swift-protobuf
to 1.3.1
5.2.0
Changes
- Restored Scala language support
- Restored Swift langauge support
- Fixed usage of
options
attr on Bazel 8, where the Label canonicalisation has changed - Fixed loading of Buf protoc lint plugin
- Fixed loading of Buf protoc breaking plugin on linux/arm64
- Switched gRPC-Gateway to be loaded directly from Bazel bzlmod dependency rather than via Go/Gazelle
- The
gateway_openapiv2_compile()
rule now uses a directory as output, to allow creating a combined output file. #382 - Fixed
bzl_library
referencing incorrect dependency in@protobuf
- Switched from
@bazel_tool//platforms
to@platforms
- The Python dependencies for Protobuf and gRPC are now loaded from the
@protobuf
and@grpc
bzlmod workspaces respectively, rather than from PyPI wheels. This is necessary to prevent version skew between the protoc version and the runtime version, but unfortunately may result in longer uncached build times - Added CI testing on MacOS (x64 and arm)
Version Updates
- Updated Bazel
protobuf
to 31.1 - Updated Bazel
rules_go
to 0.55.0 - Updated Bazel
rules_java
to 8.11.0 - Updated Bazel
toolchains_protoc
to 0.4.2 - Updated Java
com.google.protobuf:protobuf-java
to 4.31.1
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