All notable changes to this project are documented here.

v0.4.0

Regenerated from the latest googleapis definitions and modernized the toolchain. Minor breaking change: consumers must move to grpc ~> 1.0.

Dependencies & tooling

  • protobuf ~> 0.15~> 0.17
  • grpc ~> 0.11.5~> 1.0
  • ex_doc ~> 0.39~> 0.40
  • Minimum Elixir raised to ~> 1.15

Shared types now inherited from dependencies (no longer generated here)

This fixes duplicate-module collisions in apps that also depend on these packages:

  • Google.Protobuf.* — provided by :protobuf
  • Google.Api.*, Google.Rpc.*, Google.Type.*, Google.Longrunning.*, Google.Bytestream.*, Google.Geo.* — provided by :googleapis (pulled in transitively by grpc)
  • Exception: the google.api monitoring types :googleapis omits (MetricDescriptor, MonitoredResource, Distribution, LabelDescriptor) are still generated locally.

Module names are unchanged, so application code referencing Google.Rpc.Status, Google.Type.*, etc. keeps working — those types just resolve to the dependency.

Added

  • Google IAM v1 (google.iam.v1) — policy / SetIamPolicy / GetIamPolicy types
  • Long-Running Operations (google.longrunning)
  • Cloud Logging v2 (google.logging)
  • Confirmed BigQuery Storage v1 coverage

Internal

  • update-protos.sh: prefer system protoc (pinned download fallback via PROTOC_VERSION), resolve protoc-gen-elixir past asdf/rtx shims, and flatten the duplicated package directories emitted by protobuf >= 0.16.
  • .formatter.exs: import :protobuf formatter rules so generated *.pb.ex files pass mix format --check-formatted.
  • Added smoke tests guarding against collision and coverage regressions.