[ENH] Establish pinned `protoc` version across CI
Is your feature request related to a problem? Please describe. In the past few months, protocolbuffers/protobuf changed their version scheme such that the major version is now language dependent, and the compiler itself is now versioned by the minor version.
This has impacted some of the ways we install protoc throughout the codebase; for example, it looks like the setup-protoc action has been broken for some and is now essentially capped to protoc=3.20.1, while in conda-forge the latest releases of the compiler are now published under libprotobuf=4.
Though it hasn't caused any issues yet, having different versions of this compiler getting pulled across conda, Python, and Rust testing could eventually create some difficulty in reproducing failures locally.
Describe the solution you'd like
I think it would be worthwhile to establish a pinned protoc version across CI, and make sure that it's being picked up properly by all tests; this would entail:
- Finding a version compatible with the CI / conda dependencies and pinning to it in environments and recipes
- Replacing
setup-protocwith our own action to install the compiler, ideally allowing us to parametrize the release version