Skip to content

(CHORE)[EX-3143] Upgrade protoc to 1.15.0 and protoc-go to 3.26.0 - #187

Merged
Michael Gunawan (scmichaelg) merged 8 commits into
mainfrom
EX-3143-protoc-cpp-updates
Apr 7, 2026
Merged

(CHORE)[EX-3143] Upgrade protoc to 1.15.0 and protoc-go to 3.26.0#187
Michael Gunawan (scmichaelg) merged 8 commits into
mainfrom
EX-3143-protoc-cpp-updates

Conversation

@scmichaelg

@scmichaelg Michael Gunawan (scmichaelg) commented Mar 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • protoc 1.14.2 → 1.15.0: Alpine 3.15 → 3.21, buf 1.8.0 → 1.66.0, added grpc-plugins package, install protoc 26.1 from GitHub release (Alpine's protoc 24.4 kept as protoc-system for plugin compilation)
  • protoc-go 3.25.6 → 3.26.0: Go 1.23.0 → 1.24.0

Note: protoc-cpp 1.13.0 changes will be in a follow-up PR after this merges, since protoc-cpp depends on the protoc:1.15.0 base image being published first.

Key design decisions

  • Dual protoc setup: Alpine 3.21 ships protoc 24.4, but crux's bundled protobuf is v26.1. Generated .pb.h from protoc 24.4 is incompatible with v26.1 headers. Solution: install protoc 26.1 from official GitHub release as /usr/bin/protoc (used by buf for codegen), keep Alpine's as /usr/bin/protoc-system (needed for compiling plugins against protobuf-dev headers).

Companion changes (crux repo)

See migration notes for the full list of 17 issues found and fixed during validation.

Follow-up PRs

  • protoc-cpp 1.13.0: base image bump, s12-proto 1.38.0, abseil-cpp-dev/pkgconf deps, wire_options regeneration, proto3 optional patch
  • Bump protoc-java grpc-java version (proto3 optional support)

Test plan

  • Desktop crux build: cmake configure + build + all tests passing
  • Proto regeneration: s12-apis-crux regenerated with protoc 26.1, no version mismatch errors
  • CI: verify protoc and protoc-go images build and push successfully

🤖 Generated with Claude Code

- Alpine 3.15 → 3.21
- buf 1.8.0 → 1.66.0
- protoc/grpc from Alpine 3.21 community repo (protobuf v24.4, grpc 1.62.1)

Split from upgrade/alpine-3.21-protobuf-v24 to unblock protoc-cpp build.
protoc-gen-workato@latest now requires go >= 1.24.0.
Bump protoc-go version to 3.26.0.
- protoc base image: Alpine 3.15 -> 3.21, buf 1.8.0 -> 1.66.0
  - protoc 3.18.1 -> 24.4, grpc 1.62.1 (from community repo)
- protoc-cpp image: base protoc 1.14.2 -> 1.15.0
  - Add abseil-cpp-dev and pkgconf build deps (required by protobuf v22+)
  - Regenerate wire_options.pb.cc/h during build to match container protobuf
  - Bump version to 1.13.0
- Fix legacy ENV format warning in Dockerfile

Note: CRUX_CLIENT_RELEASE needs updating to a new s12-proto tag
that includes the protobuf v24 string_view compatibility changes
(see SafetyCulture/s12-proto PR upgrade/protobuf-v33-compatibility).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
In Alpine 3.21, grpc_cpp_plugin is in a separate grpc-plugins package.
- protoc/Dockerfile: install protoc 26.1 from official GitHub release
  for code generation; keep Alpine's protoc 24.4 as protoc-system for
  plugin compilation against protobuf-dev headers
- protoc-cpp/build.sh: use protoc-system for wire_options regeneration;
  add temporary sed patch for proto3 optional support (remove once
  s12-proto PR #155 is merged)
- publish.sh: revert -pre tag bypass for protoc/protoc-cpp images
- docs: add migration notes for protoc 1.15.0 and protoc-cpp 1.13.0
protoc-cpp depends on the protoc base image being published first.
Split into a follow-up PR after protoc:1.15.0 is merged and available.
@scmichaelg Michael Gunawan (scmichaelg) changed the title feat: upgrade protoc to 1.15.0 and protoc-cpp to 1.13.0 feat: upgrade protoc to 1.15.0 and protoc-go to 3.26.0 Mar 29, 2026
@scmichaelg Michael Gunawan (scmichaelg) changed the title feat: upgrade protoc to 1.15.0 and protoc-go to 3.26.0 (CHORE)[EX-3143] Upgrade protoc to 1.15.0 and protoc-go to 3.26.0 Mar 29, 2026
@scmichaelg
Michael Gunawan (scmichaelg) merged commit 3f75c77 into main Apr 7, 2026
10 checks passed
@scmichaelg
Michael Gunawan (scmichaelg) deleted the EX-3143-protoc-cpp-updates branch April 7, 2026 05:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants