From 43f031b2e9e4f4203702d6524b6203d98d76f1c8 Mon Sep 17 00:00:00 2001
From: "app-token-plugins[bot]"
<116026991+app-token-plugins[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 10:39:18 -0500
Subject: [PATCH] Update protocolbuffers, grpc and bufbuild/es (#1620)
---
plugins/bufbuild/es/v2.2.3/.dockerignore | 3 +
plugins/bufbuild/es/v2.2.3/Dockerfile | 21 +
plugins/bufbuild/es/v2.2.3/buf.plugin.yaml | 20 +
plugins/bufbuild/es/v2.2.3/package-lock.json | 555 ++++++++++++++++++
plugins/bufbuild/es/v2.2.3/package.json | 10 +
plugins/grpc/cpp/v1.68.2/.dockerignore | 2 +
plugins/grpc/cpp/v1.68.2/Dockerfile | 29 +
plugins/grpc/cpp/v1.68.2/buf.plugin.yaml | 13 +
plugins/grpc/csharp/v1.68.2/.dockerignore | 3 +
plugins/grpc/csharp/v1.68.2/Dockerfile | 35 ++
plugins/grpc/csharp/v1.68.2/buf.plugin.yaml | 20 +
plugins/grpc/csharp/v1.68.2/build.csproj | 9 +
plugins/grpc/objc/v1.68.2/.dockerignore | 2 +
plugins/grpc/objc/v1.68.2/Dockerfile | 29 +
plugins/grpc/objc/v1.68.2/buf.plugin.yaml | 11 +
plugins/grpc/php/v1.68.2/.dockerignore | 2 +
plugins/grpc/php/v1.68.2/Dockerfile | 29 +
plugins/grpc/php/v1.68.2/buf.plugin.yaml | 11 +
plugins/grpc/python/v1.68.2/.dockerignore | 2 +
plugins/grpc/python/v1.68.2/Dockerfile | 29 +
plugins/grpc/python/v1.68.2/buf.plugin.yaml | 19 +
plugins/grpc/ruby/v1.68.2/.dockerignore | 2 +
plugins/grpc/ruby/v1.68.2/Dockerfile | 29 +
plugins/grpc/ruby/v1.68.2/buf.plugin.yaml | 11 +
.../protocolbuffers/cpp/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/cpp/v29.1/BUILD | 7 +
plugins/protocolbuffers/cpp/v29.1/Dockerfile | 30 +
.../protocolbuffers/cpp/v29.1/buf.plugin.yaml | 11 +
plugins/protocolbuffers/cpp/v29.1/cpp.cc | 7 +
.../csharp/v29.1/.dockerignore | 5 +
plugins/protocolbuffers/csharp/v29.1/BUILD | 7 +
.../protocolbuffers/csharp/v29.1/Dockerfile | 36 ++
.../csharp/v29.1/buf.plugin.yaml | 18 +
.../protocolbuffers/csharp/v29.1/build.csproj | 8 +
.../protocolbuffers/csharp/v29.1/csharp.cc | 7 +
.../protocolbuffers/java/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/java/v29.1/BUILD | 7 +
plugins/protocolbuffers/java/v29.1/Dockerfile | 30 +
.../java/v29.1/buf.plugin.yaml | 19 +
plugins/protocolbuffers/java/v29.1/java.cc | 7 +
.../kotlin/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/kotlin/v29.1/BUILD | 7 +
.../protocolbuffers/kotlin/v29.1/Dockerfile | 30 +
.../kotlin/v29.1/buf.plugin.yaml | 27 +
.../protocolbuffers/kotlin/v29.1/kotlin.cc | 7 +
.../protocolbuffers/objc/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/objc/v29.1/BUILD | 7 +
plugins/protocolbuffers/objc/v29.1/Dockerfile | 30 +
.../objc/v29.1/buf.plugin.yaml | 9 +
.../protocolbuffers/objc/v29.1/objectivec.cc | 7 +
.../protocolbuffers/php/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/php/v29.1/BUILD | 7 +
plugins/protocolbuffers/php/v29.1/Dockerfile | 30 +
.../protocolbuffers/php/v29.1/buf.plugin.yaml | 9 +
plugins/protocolbuffers/php/v29.1/php.cc | 7 +
.../protocolbuffers/pyi/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/pyi/v29.1/BUILD | 8 +
plugins/protocolbuffers/pyi/v29.1/Dockerfile | 30 +
.../protocolbuffers/pyi/v29.1/buf.plugin.yaml | 18 +
plugins/protocolbuffers/pyi/v29.1/pyi.cc | 8 +
.../python/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/python/v29.1/BUILD | 7 +
.../protocolbuffers/python/v29.1/Dockerfile | 30 +
.../python/v29.1/buf.plugin.yaml | 19 +
.../protocolbuffers/python/v29.1/python.cc | 7 +
.../protocolbuffers/ruby/v29.1/.dockerignore | 4 +
plugins/protocolbuffers/ruby/v29.1/BUILD | 7 +
plugins/protocolbuffers/ruby/v29.1/Dockerfile | 30 +
.../ruby/v29.1/buf.plugin.yaml | 9 +
plugins/protocolbuffers/ruby/v29.1/ruby.cc | 7 +
.../bufbuild/es/v2.2.3/eliza/plugin.sum | 1 +
.../bufbuild/es/v2.2.3/petapis/plugin.sum | 1 +
.../grpc/cpp/v1.68.2/eliza/plugin.sum | 1 +
.../grpc/cpp/v1.68.2/petapis/plugin.sum | 1 +
.../grpc/csharp/v1.68.2/eliza/plugin.sum | 1 +
.../grpc/csharp/v1.68.2/petapis/plugin.sum | 1 +
.../grpc/objc/v1.68.2/eliza/plugin.sum | 1 +
.../grpc/objc/v1.68.2/petapis/plugin.sum | 1 +
.../grpc/php/v1.68.2/eliza/plugin.sum | 1 +
.../grpc/php/v1.68.2/petapis/plugin.sum | 1 +
.../grpc/python/v1.68.2/eliza/plugin.sum | 1 +
.../grpc/python/v1.68.2/petapis/plugin.sum | 1 +
.../grpc/ruby/v1.68.2/eliza/plugin.sum | 1 +
.../grpc/ruby/v1.68.2/petapis/plugin.sum | 1 +
.../cpp/v29.1/eliza/plugin.sum | 1 +
.../cpp/v29.1/petapis/plugin.sum | 1 +
.../csharp/v29.1/eliza/plugin.sum | 1 +
.../csharp/v29.1/petapis/plugin.sum | 1 +
.../java/v29.1/eliza/plugin.sum | 1 +
.../java/v29.1/petapis/plugin.sum | 1 +
.../kotlin/v29.1/eliza/plugin.sum | 1 +
.../kotlin/v29.1/petapis/plugin.sum | 1 +
.../objc/v29.1/eliza/plugin.sum | 1 +
.../objc/v29.1/petapis/plugin.sum | 1 +
.../php/v29.1/eliza/plugin.sum | 1 +
.../php/v29.1/petapis/plugin.sum | 1 +
.../pyi/v29.1/eliza/plugin.sum | 1 +
.../pyi/v29.1/petapis/plugin.sum | 1 +
.../python/v29.1/eliza/plugin.sum | 1 +
.../python/v29.1/petapis/plugin.sum | 1 +
.../ruby/v29.1/eliza/plugin.sum | 1 +
.../ruby/v29.1/petapis/plugin.sum | 1 +
102 files changed, 1516 insertions(+)
create mode 100644 plugins/bufbuild/es/v2.2.3/.dockerignore
create mode 100644 plugins/bufbuild/es/v2.2.3/Dockerfile
create mode 100644 plugins/bufbuild/es/v2.2.3/buf.plugin.yaml
create mode 100644 plugins/bufbuild/es/v2.2.3/package-lock.json
create mode 100644 plugins/bufbuild/es/v2.2.3/package.json
create mode 100644 plugins/grpc/cpp/v1.68.2/.dockerignore
create mode 100644 plugins/grpc/cpp/v1.68.2/Dockerfile
create mode 100644 plugins/grpc/cpp/v1.68.2/buf.plugin.yaml
create mode 100644 plugins/grpc/csharp/v1.68.2/.dockerignore
create mode 100644 plugins/grpc/csharp/v1.68.2/Dockerfile
create mode 100644 plugins/grpc/csharp/v1.68.2/buf.plugin.yaml
create mode 100644 plugins/grpc/csharp/v1.68.2/build.csproj
create mode 100644 plugins/grpc/objc/v1.68.2/.dockerignore
create mode 100644 plugins/grpc/objc/v1.68.2/Dockerfile
create mode 100644 plugins/grpc/objc/v1.68.2/buf.plugin.yaml
create mode 100644 plugins/grpc/php/v1.68.2/.dockerignore
create mode 100644 plugins/grpc/php/v1.68.2/Dockerfile
create mode 100644 plugins/grpc/php/v1.68.2/buf.plugin.yaml
create mode 100644 plugins/grpc/python/v1.68.2/.dockerignore
create mode 100644 plugins/grpc/python/v1.68.2/Dockerfile
create mode 100644 plugins/grpc/python/v1.68.2/buf.plugin.yaml
create mode 100644 plugins/grpc/ruby/v1.68.2/.dockerignore
create mode 100644 plugins/grpc/ruby/v1.68.2/Dockerfile
create mode 100644 plugins/grpc/ruby/v1.68.2/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/cpp/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/cpp/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/cpp/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/cpp/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/cpp/v29.1/cpp.cc
create mode 100644 plugins/protocolbuffers/csharp/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/csharp/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/csharp/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/csharp/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/csharp/v29.1/build.csproj
create mode 100644 plugins/protocolbuffers/csharp/v29.1/csharp.cc
create mode 100644 plugins/protocolbuffers/java/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/java/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/java/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/java/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/java/v29.1/java.cc
create mode 100644 plugins/protocolbuffers/kotlin/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/kotlin/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/kotlin/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/kotlin/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/kotlin/v29.1/kotlin.cc
create mode 100644 plugins/protocolbuffers/objc/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/objc/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/objc/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/objc/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/objc/v29.1/objectivec.cc
create mode 100644 plugins/protocolbuffers/php/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/php/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/php/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/php/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/php/v29.1/php.cc
create mode 100644 plugins/protocolbuffers/pyi/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/pyi/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/pyi/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/pyi/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/pyi/v29.1/pyi.cc
create mode 100644 plugins/protocolbuffers/python/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/python/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/python/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/python/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/python/v29.1/python.cc
create mode 100644 plugins/protocolbuffers/ruby/v29.1/.dockerignore
create mode 100644 plugins/protocolbuffers/ruby/v29.1/BUILD
create mode 100644 plugins/protocolbuffers/ruby/v29.1/Dockerfile
create mode 100644 plugins/protocolbuffers/ruby/v29.1/buf.plugin.yaml
create mode 100644 plugins/protocolbuffers/ruby/v29.1/ruby.cc
create mode 100644 tests/testdata/buf.build/bufbuild/es/v2.2.3/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/bufbuild/es/v2.2.3/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/cpp/v1.68.2/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/cpp/v1.68.2/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/csharp/v1.68.2/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/csharp/v1.68.2/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/objc/v1.68.2/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/objc/v1.68.2/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/php/v1.68.2/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/php/v1.68.2/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/python/v1.68.2/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/python/v1.68.2/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/ruby/v1.68.2/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/grpc/ruby/v1.68.2/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/cpp/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/cpp/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/csharp/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/csharp/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/java/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/java/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/objc/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/objc/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/php/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/php/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/pyi/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/pyi/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/python/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/python/v29.1/petapis/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/ruby/v29.1/eliza/plugin.sum
create mode 100644 tests/testdata/buf.build/protocolbuffers/ruby/v29.1/petapis/plugin.sum
diff --git a/plugins/bufbuild/es/v2.2.3/.dockerignore b/plugins/bufbuild/es/v2.2.3/.dockerignore
new file mode 100644
index 000000000..771bbbaa9
--- /dev/null
+++ b/plugins/bufbuild/es/v2.2.3/.dockerignore
@@ -0,0 +1,3 @@
+*
+!Dockerfile
+!package*.json
diff --git a/plugins/bufbuild/es/v2.2.3/Dockerfile b/plugins/bufbuild/es/v2.2.3/Dockerfile
new file mode 100644
index 000000000..d1f88c641
--- /dev/null
+++ b/plugins/bufbuild/es/v2.2.3/Dockerfile
@@ -0,0 +1,21 @@
+# syntax=docker/dockerfile:1.12
+FROM node:22.12.0-bookworm AS build
+WORKDIR /app
+COPY --link package*.json .
+RUN npm ci \
+ && find node_modules/typescript ! -name 'typescript.js' ! -name 'package.json' -type f -exec rm -f {} + \
+ && find node_modules/typescript -depth -type d -empty -delete \
+ && ./node_modules/.bin/esbuild ./node_modules/.bin/protoc-gen-es --bundle --external:typescript --platform=node --outfile=protoc-gen-es.js
+
+FROM gcr.io/distroless/nodejs22-debian12:latest@sha256:d2bf966afe785153974fdd2663c7181dbfdf407d229b5df4adef185ca134da04 AS node
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=node --chmod=0755 /nodejs/bin/node /nodejs/bin/node
+COPY --link --from=build --chmod=0755 /app/protoc-gen-es.js /app/protoc-gen-es.js
+COPY --link --from=build /app/node_modules/typescript /app/node_modules/typescript
+USER nobody
+ENTRYPOINT ["/nodejs/bin/node"]
+CMD [ "/app/protoc-gen-es.js" ]
diff --git a/plugins/bufbuild/es/v2.2.3/buf.plugin.yaml b/plugins/bufbuild/es/v2.2.3/buf.plugin.yaml
new file mode 100644
index 000000000..e5ae3ff75
--- /dev/null
+++ b/plugins/bufbuild/es/v2.2.3/buf.plugin.yaml
@@ -0,0 +1,20 @@
+version: v1
+name: buf.build/bufbuild/es
+plugin_version: v2.2.3
+source_url: https://github.com/bufbuild/protobuf-es
+integration_guide_url: https://github.com/bufbuild/protobuf-es#quickstart
+description: Types for TypeScript/JavaScript for use in web browsers and Node.js. Generates message and enum types, but also services for use with Connect v2.
+output_languages:
+ - javascript
+ - typescript
+registry:
+ opts:
+ - import_extension=js
+ npm:
+ import_style: module
+ rewrite_import_path_suffix: pb.js
+ deps:
+ - package: '@bufbuild/protobuf'
+ version: ^2.2.3
+spdx_license_id: Apache-2.0
+license_url: https://github.com/bufbuild/protobuf-es/blob/v2.2.3/LICENSE
diff --git a/plugins/bufbuild/es/v2.2.3/package-lock.json b/plugins/bufbuild/es/v2.2.3/package-lock.json
new file mode 100644
index 000000000..ef81a5ca3
--- /dev/null
+++ b/plugins/bufbuild/es/v2.2.3/package-lock.json
@@ -0,0 +1,555 @@
+{
+ "name": "plugins-bufbuild-protobuf-es",
+ "version": "2.2.3",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "plugins-bufbuild-protobuf-es",
+ "version": "2.2.3",
+ "dependencies": {
+ "@bufbuild/protoc-gen-es": "2.2.3"
+ },
+ "devDependencies": {
+ "esbuild": "^0.24.0"
+ }
+ },
+ "node_modules/@bufbuild/protobuf": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.3.tgz",
+ "integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==",
+ "license": "(Apache-2.0 AND BSD-3-Clause)"
+ },
+ "node_modules/@bufbuild/protoc-gen-es": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protoc-gen-es/-/protoc-gen-es-2.2.3.tgz",
+ "integrity": "sha512-hdhIV9NmwXXy24DcbnArauv6L5Dv2PjkO9gz2DUhiZ9HPRpP+rmpT8zo5LohjJiuA7YIQGGKKWSKpRg+xcdLSQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@bufbuild/protobuf": "^2.2.3",
+ "@bufbuild/protoplugin": "2.2.3"
+ },
+ "bin": {
+ "protoc-gen-es": "bin/protoc-gen-es"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@bufbuild/protobuf": "2.2.3"
+ },
+ "peerDependenciesMeta": {
+ "@bufbuild/protobuf": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@bufbuild/protoplugin": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protoplugin/-/protoplugin-2.2.3.tgz",
+ "integrity": "sha512-UsV7mj6NJTZrqIYJK+jNFnnj5tOS7wgNXKyMjebFEpf+OX6pfXE+nx+QPjumOfu4GxdVPfEDnKuwISgqlXSQqw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@bufbuild/protobuf": "2.2.3",
+ "@typescript/vfs": "^1.5.2",
+ "typescript": "5.4.5"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
+ "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
+ "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
+ "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
+ "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
+ "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
+ "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
+ "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
+ "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
+ "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
+ "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
+ "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
+ "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
+ "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
+ "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
+ "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
+ "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
+ "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
+ "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
+ "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
+ "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
+ "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
+ "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
+ "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
+ "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@typescript/vfs": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.0.tgz",
+ "integrity": "sha512-hvJUjNVeBMp77qPINuUvYXj4FyWeeMMKZkxEATEU3hqBAQ7qdTBCUFT7Sp0Zu0faeEtFf+ldXxMEDr/bk73ISg==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz",
+ "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.24.0",
+ "@esbuild/android-arm": "0.24.0",
+ "@esbuild/android-arm64": "0.24.0",
+ "@esbuild/android-x64": "0.24.0",
+ "@esbuild/darwin-arm64": "0.24.0",
+ "@esbuild/darwin-x64": "0.24.0",
+ "@esbuild/freebsd-arm64": "0.24.0",
+ "@esbuild/freebsd-x64": "0.24.0",
+ "@esbuild/linux-arm": "0.24.0",
+ "@esbuild/linux-arm64": "0.24.0",
+ "@esbuild/linux-ia32": "0.24.0",
+ "@esbuild/linux-loong64": "0.24.0",
+ "@esbuild/linux-mips64el": "0.24.0",
+ "@esbuild/linux-ppc64": "0.24.0",
+ "@esbuild/linux-riscv64": "0.24.0",
+ "@esbuild/linux-s390x": "0.24.0",
+ "@esbuild/linux-x64": "0.24.0",
+ "@esbuild/netbsd-x64": "0.24.0",
+ "@esbuild/openbsd-arm64": "0.24.0",
+ "@esbuild/openbsd-x64": "0.24.0",
+ "@esbuild/sunos-x64": "0.24.0",
+ "@esbuild/win32-arm64": "0.24.0",
+ "@esbuild/win32-ia32": "0.24.0",
+ "@esbuild/win32-x64": "0.24.0"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/typescript": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ }
+ }
+}
diff --git a/plugins/bufbuild/es/v2.2.3/package.json b/plugins/bufbuild/es/v2.2.3/package.json
new file mode 100644
index 000000000..d5d6072fc
--- /dev/null
+++ b/plugins/bufbuild/es/v2.2.3/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "plugins-bufbuild-protobuf-es",
+ "version": "2.2.3",
+ "dependencies": {
+ "@bufbuild/protoc-gen-es": "2.2.3"
+ },
+ "devDependencies": {
+ "esbuild": "^0.24.0"
+ }
+}
diff --git a/plugins/grpc/cpp/v1.68.2/.dockerignore b/plugins/grpc/cpp/v1.68.2/.dockerignore
new file mode 100644
index 000000000..5d0f124ff
--- /dev/null
+++ b/plugins/grpc/cpp/v1.68.2/.dockerignore
@@ -0,0 +1,2 @@
+*
+!Dockerfile
diff --git a/plugins/grpc/cpp/v1.68.2/Dockerfile b/plugins/grpc/cpp/v1.68.2/Dockerfile
new file mode 100644
index 000000000..520d0db82
--- /dev/null
+++ b/plugins/grpc/cpp/v1.68.2/Dockerfile
@@ -0,0 +1,29 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+
+RUN git clone --depth 1 --branch v1.68.2 https://github.com/grpc/grpc
+WORKDIR /build/grpc
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_plugin_support
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_cpp_plugin.stripped
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=build --chmod=0755 /build/grpc/bazel-bin/src/compiler/grpc_cpp_plugin .
+USER nobody
+ENTRYPOINT ["/grpc_cpp_plugin"]
diff --git a/plugins/grpc/cpp/v1.68.2/buf.plugin.yaml b/plugins/grpc/cpp/v1.68.2/buf.plugin.yaml
new file mode 100644
index 000000000..de3d3df79
--- /dev/null
+++ b/plugins/grpc/cpp/v1.68.2/buf.plugin.yaml
@@ -0,0 +1,13 @@
+version: v1
+name: buf.build/grpc/cpp
+plugin_version: v1.68.2
+source_url: https://github.com/grpc/grpc
+description: Generates C++ client and server stubs for the gRPC framework.
+deps:
+ - plugin: buf.build/protocolbuffers/cpp:v29.0
+output_languages:
+ - cpp
+spdx_license_id: Apache-2.0
+license_url: https://github.com/grpc/grpc/blob/v1.68.2/LICENSE
+registry:
+ cmake: {}
diff --git a/plugins/grpc/csharp/v1.68.2/.dockerignore b/plugins/grpc/csharp/v1.68.2/.dockerignore
new file mode 100644
index 000000000..b2a42ae1e
--- /dev/null
+++ b/plugins/grpc/csharp/v1.68.2/.dockerignore
@@ -0,0 +1,3 @@
+*
+!Dockerfile
+!build.csproj
diff --git a/plugins/grpc/csharp/v1.68.2/Dockerfile b/plugins/grpc/csharp/v1.68.2/Dockerfile
new file mode 100644
index 000000000..95f4db86b
--- /dev/null
+++ b/plugins/grpc/csharp/v1.68.2/Dockerfile
@@ -0,0 +1,35 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+
+RUN git clone --depth 1 --branch v1.68.2 https://github.com/grpc/grpc
+WORKDIR /build/grpc
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_plugin_support
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_csharp_plugin.stripped
+
+FROM mcr.microsoft.com/dotnet/sdk:8.0.404-bookworm-slim@sha256:032381bcea86fa0a408af5df63a930f1ff5b03116c940a7cd744d3b648e66749 AS dotnetrestore
+WORKDIR /build
+COPY --link ./build.csproj /build/build.csproj
+RUN mkdir /nuget && dotnet restore --packages /nuget
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=dotnetrestore /nuget /nuget
+COPY --link --from=build --chmod=0755 /build/grpc/bazel-bin/src/compiler/grpc_csharp_plugin .
+USER nobody
+ENTRYPOINT ["/grpc_csharp_plugin"]
diff --git a/plugins/grpc/csharp/v1.68.2/buf.plugin.yaml b/plugins/grpc/csharp/v1.68.2/buf.plugin.yaml
new file mode 100644
index 000000000..4bc5c26ae
--- /dev/null
+++ b/plugins/grpc/csharp/v1.68.2/buf.plugin.yaml
@@ -0,0 +1,20 @@
+version: v1
+name: buf.build/grpc/csharp
+plugin_version: v1.68.2
+source_url: https://github.com/grpc/grpc
+description: Generates C# client and server stubs for the gRPC framework.
+deps:
+ - plugin: buf.build/protocolbuffers/csharp:v29.0
+output_languages:
+ - csharp
+spdx_license_id: Apache-2.0
+license_url: https://github.com/grpc/grpc/blob/v1.68.2/LICENSE
+registry:
+ opts:
+ - base_namespace=
+ nuget:
+ target_frameworks:
+ - netstandard2.0
+ deps:
+ - name: Grpc.Net.Common
+ version: 2.67.0
diff --git a/plugins/grpc/csharp/v1.68.2/build.csproj b/plugins/grpc/csharp/v1.68.2/build.csproj
new file mode 100644
index 000000000..144ec4a3a
--- /dev/null
+++ b/plugins/grpc/csharp/v1.68.2/build.csproj
@@ -0,0 +1,9 @@
+
+
+ netstandard2.0
+
+
+
+
+
+
diff --git a/plugins/grpc/objc/v1.68.2/.dockerignore b/plugins/grpc/objc/v1.68.2/.dockerignore
new file mode 100644
index 000000000..5d0f124ff
--- /dev/null
+++ b/plugins/grpc/objc/v1.68.2/.dockerignore
@@ -0,0 +1,2 @@
+*
+!Dockerfile
diff --git a/plugins/grpc/objc/v1.68.2/Dockerfile b/plugins/grpc/objc/v1.68.2/Dockerfile
new file mode 100644
index 000000000..004825730
--- /dev/null
+++ b/plugins/grpc/objc/v1.68.2/Dockerfile
@@ -0,0 +1,29 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+
+RUN git clone --depth 1 --branch v1.68.2 https://github.com/grpc/grpc
+WORKDIR /build/grpc
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_plugin_support
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_objective_c_plugin.stripped
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=build --chmod=0755 /build/grpc/bazel-bin/src/compiler/grpc_objective_c_plugin .
+USER nobody
+ENTRYPOINT ["/grpc_objective_c_plugin"]
diff --git a/plugins/grpc/objc/v1.68.2/buf.plugin.yaml b/plugins/grpc/objc/v1.68.2/buf.plugin.yaml
new file mode 100644
index 000000000..1dccaf3f3
--- /dev/null
+++ b/plugins/grpc/objc/v1.68.2/buf.plugin.yaml
@@ -0,0 +1,11 @@
+version: v1
+name: buf.build/grpc/objc
+plugin_version: v1.68.2
+source_url: https://github.com/grpc/grpc
+description: Generates Objective-C client and server stubs for the gRPC framework.
+deps:
+ - plugin: buf.build/protocolbuffers/objc:v29.0
+output_languages:
+ - objective_c
+spdx_license_id: Apache-2.0
+license_url: https://github.com/grpc/grpc/blob/v1.68.2/LICENSE
diff --git a/plugins/grpc/php/v1.68.2/.dockerignore b/plugins/grpc/php/v1.68.2/.dockerignore
new file mode 100644
index 000000000..5d0f124ff
--- /dev/null
+++ b/plugins/grpc/php/v1.68.2/.dockerignore
@@ -0,0 +1,2 @@
+*
+!Dockerfile
diff --git a/plugins/grpc/php/v1.68.2/Dockerfile b/plugins/grpc/php/v1.68.2/Dockerfile
new file mode 100644
index 000000000..f6f427947
--- /dev/null
+++ b/plugins/grpc/php/v1.68.2/Dockerfile
@@ -0,0 +1,29 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+
+RUN git clone --depth 1 --branch v1.68.2 https://github.com/grpc/grpc
+WORKDIR /build/grpc
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_plugin_support
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_php_plugin.stripped
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=build --chmod=0755 /build/grpc/bazel-bin/src/compiler/grpc_php_plugin .
+USER nobody
+ENTRYPOINT ["/grpc_php_plugin"]
diff --git a/plugins/grpc/php/v1.68.2/buf.plugin.yaml b/plugins/grpc/php/v1.68.2/buf.plugin.yaml
new file mode 100644
index 000000000..a8143d306
--- /dev/null
+++ b/plugins/grpc/php/v1.68.2/buf.plugin.yaml
@@ -0,0 +1,11 @@
+version: v1
+name: buf.build/grpc/php
+plugin_version: v1.68.2
+source_url: https://github.com/grpc/grpc
+description: Generates PHP client and server stubs for the gRPC framework.
+deps:
+ - plugin: buf.build/protocolbuffers/php:v29.0
+output_languages:
+ - php
+spdx_license_id: Apache-2.0
+license_url: https://github.com/grpc/grpc/blob/v1.68.2/LICENSE
diff --git a/plugins/grpc/python/v1.68.2/.dockerignore b/plugins/grpc/python/v1.68.2/.dockerignore
new file mode 100644
index 000000000..5d0f124ff
--- /dev/null
+++ b/plugins/grpc/python/v1.68.2/.dockerignore
@@ -0,0 +1,2 @@
+*
+!Dockerfile
diff --git a/plugins/grpc/python/v1.68.2/Dockerfile b/plugins/grpc/python/v1.68.2/Dockerfile
new file mode 100644
index 000000000..228fc7024
--- /dev/null
+++ b/plugins/grpc/python/v1.68.2/Dockerfile
@@ -0,0 +1,29 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+
+RUN git clone --depth 1 --branch v1.68.2 https://github.com/grpc/grpc
+WORKDIR /build/grpc
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_plugin_support
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_python_plugin.stripped
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=build --chmod=0755 /build/grpc/bazel-bin/src/compiler/grpc_python_plugin .
+USER nobody
+ENTRYPOINT ["/grpc_python_plugin"]
diff --git a/plugins/grpc/python/v1.68.2/buf.plugin.yaml b/plugins/grpc/python/v1.68.2/buf.plugin.yaml
new file mode 100644
index 000000000..9d7e223a4
--- /dev/null
+++ b/plugins/grpc/python/v1.68.2/buf.plugin.yaml
@@ -0,0 +1,19 @@
+version: v1
+name: buf.build/grpc/python
+plugin_version: v1.68.2
+source_url: https://github.com/grpc/grpc
+description: Generates Python client and server stubs for the gRPC framework.
+deps:
+ - plugin: buf.build/protocolbuffers/python:v29.0
+output_languages:
+ - python
+spdx_license_id: Apache-2.0
+license_url: https://github.com/grpc/grpc/blob/v1.68.2/LICENSE
+registry:
+ python:
+ package_type: "runtime"
+ # https://github.com/grpc/grpc/blob/v1.68.2/src/python/grpcio/python_version.py#L19
+ requires_python: ">=3.8"
+ deps:
+ # https://pypi.org/project/grpcio/
+ - "grpcio"
diff --git a/plugins/grpc/ruby/v1.68.2/.dockerignore b/plugins/grpc/ruby/v1.68.2/.dockerignore
new file mode 100644
index 000000000..5d0f124ff
--- /dev/null
+++ b/plugins/grpc/ruby/v1.68.2/.dockerignore
@@ -0,0 +1,2 @@
+*
+!Dockerfile
diff --git a/plugins/grpc/ruby/v1.68.2/Dockerfile b/plugins/grpc/ruby/v1.68.2/Dockerfile
new file mode 100644
index 000000000..ef11f474e
--- /dev/null
+++ b/plugins/grpc/ruby/v1.68.2/Dockerfile
@@ -0,0 +1,29 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+
+RUN git clone --depth 1 --branch v1.68.2 https://github.com/grpc/grpc
+WORKDIR /build/grpc
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_plugin_support
+RUN bazelisk ${BAZEL_OPTS} build //src/compiler:grpc_ruby_plugin.stripped
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --link --from=base / /
+COPY --link --from=build --chmod=0755 /build/grpc/bazel-bin/src/compiler/grpc_ruby_plugin .
+USER nobody
+ENTRYPOINT ["/grpc_ruby_plugin"]
diff --git a/plugins/grpc/ruby/v1.68.2/buf.plugin.yaml b/plugins/grpc/ruby/v1.68.2/buf.plugin.yaml
new file mode 100644
index 000000000..d67d16606
--- /dev/null
+++ b/plugins/grpc/ruby/v1.68.2/buf.plugin.yaml
@@ -0,0 +1,11 @@
+version: v1
+name: buf.build/grpc/ruby
+plugin_version: v1.68.2
+source_url: https://github.com/grpc/grpc
+description: Generates Ruby client and server stubs for the gRPC framework.
+deps:
+ - plugin: buf.build/protocolbuffers/ruby:v29.0
+output_languages:
+ - ruby
+spdx_license_id: Apache-2.0
+license_url: https://github.com/grpc/grpc/blob/v1.68.2/LICENSE
diff --git a/plugins/protocolbuffers/cpp/v29.1/.dockerignore b/plugins/protocolbuffers/cpp/v29.1/.dockerignore
new file mode 100644
index 000000000..c80455688
--- /dev/null
+++ b/plugins/protocolbuffers/cpp/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!cpp.cc
+!Dockerfile
diff --git a/plugins/protocolbuffers/cpp/v29.1/BUILD b/plugins/protocolbuffers/cpp/v29.1/BUILD
new file mode 100644
index 000000000..3cacc9e33
--- /dev/null
+++ b/plugins/protocolbuffers/cpp/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-cpp",
+ srcs = ["cpp.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/cpp/v29.1/Dockerfile b/plugins/protocolbuffers/cpp/v29.1/Dockerfile
new file mode 100644
index 000000000..28ec5a027
--- /dev/null
+++ b/plugins/protocolbuffers/cpp/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD cpp.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-cpp.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-cpp .
+USER nobody
+ENTRYPOINT ["/protoc-gen-cpp"]
diff --git a/plugins/protocolbuffers/cpp/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/cpp/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..fc9e76efc
--- /dev/null
+++ b/plugins/protocolbuffers/cpp/v29.1/buf.plugin.yaml
@@ -0,0 +1,11 @@
+version: v1
+name: buf.build/protocolbuffers/cpp
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for C++. Generates message and enum types.
+output_languages:
+ - cpp
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
+registry:
+ cmake: {}
diff --git a/plugins/protocolbuffers/cpp/v29.1/cpp.cc b/plugins/protocolbuffers/cpp/v29.1/cpp.cc
new file mode 100644
index 000000000..a3c5da56f
--- /dev/null
+++ b/plugins/protocolbuffers/cpp/v29.1/cpp.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::cpp::CppGenerator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/csharp/v29.1/.dockerignore b/plugins/protocolbuffers/csharp/v29.1/.dockerignore
new file mode 100644
index 000000000..71e50a495
--- /dev/null
+++ b/plugins/protocolbuffers/csharp/v29.1/.dockerignore
@@ -0,0 +1,5 @@
+*
+!BUILD
+!csharp.cc
+!Dockerfile
+!build.csproj
diff --git a/plugins/protocolbuffers/csharp/v29.1/BUILD b/plugins/protocolbuffers/csharp/v29.1/BUILD
new file mode 100644
index 000000000..c68d051e0
--- /dev/null
+++ b/plugins/protocolbuffers/csharp/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-csharp",
+ srcs = ["csharp.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/csharp/v29.1/Dockerfile b/plugins/protocolbuffers/csharp/v29.1/Dockerfile
new file mode 100644
index 000000000..8bd748a17
--- /dev/null
+++ b/plugins/protocolbuffers/csharp/v29.1/Dockerfile
@@ -0,0 +1,36 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD csharp.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-csharp.stripped'
+
+FROM mcr.microsoft.com/dotnet/sdk:8.0.404-bookworm-slim@sha256:032381bcea86fa0a408af5df63a930f1ff5b03116c940a7cd744d3b648e66749 AS dotnetrestore
+WORKDIR /build
+COPY --link ./build.csproj /build/build.csproj
+RUN mkdir /nuget && dotnet restore --packages /nuget
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --link --from=dotnetrestore /nuget /nuget
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-csharp .
+USER nobody
+ENTRYPOINT ["/protoc-gen-csharp"]
diff --git a/plugins/protocolbuffers/csharp/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/csharp/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..098dd6839
--- /dev/null
+++ b/plugins/protocolbuffers/csharp/v29.1/buf.plugin.yaml
@@ -0,0 +1,18 @@
+version: v1
+name: buf.build/protocolbuffers/csharp
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for C#. Generates message and enum types.
+output_languages:
+ - csharp
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
+registry:
+ opts:
+ - base_namespace=
+ nuget:
+ target_frameworks:
+ - netstandard2.0
+ deps:
+ - name: Google.Protobuf
+ version: 3.29.1
diff --git a/plugins/protocolbuffers/csharp/v29.1/build.csproj b/plugins/protocolbuffers/csharp/v29.1/build.csproj
new file mode 100644
index 000000000..967896093
--- /dev/null
+++ b/plugins/protocolbuffers/csharp/v29.1/build.csproj
@@ -0,0 +1,8 @@
+
+
+ netstandard2.0
+
+
+
+
+
diff --git a/plugins/protocolbuffers/csharp/v29.1/csharp.cc b/plugins/protocolbuffers/csharp/v29.1/csharp.cc
new file mode 100644
index 000000000..a82366018
--- /dev/null
+++ b/plugins/protocolbuffers/csharp/v29.1/csharp.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::csharp::Generator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/java/v29.1/.dockerignore b/plugins/protocolbuffers/java/v29.1/.dockerignore
new file mode 100644
index 000000000..9612bcbe0
--- /dev/null
+++ b/plugins/protocolbuffers/java/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!java.cc
diff --git a/plugins/protocolbuffers/java/v29.1/BUILD b/plugins/protocolbuffers/java/v29.1/BUILD
new file mode 100644
index 000000000..34a738a84
--- /dev/null
+++ b/plugins/protocolbuffers/java/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-java",
+ srcs = ["java.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/java/v29.1/Dockerfile b/plugins/protocolbuffers/java/v29.1/Dockerfile
new file mode 100644
index 000000000..6e51a9515
--- /dev/null
+++ b/plugins/protocolbuffers/java/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD java.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-java.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-java .
+USER nobody
+ENTRYPOINT ["/protoc-gen-java"]
diff --git a/plugins/protocolbuffers/java/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/java/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..9c75510ab
--- /dev/null
+++ b/plugins/protocolbuffers/java/v29.1/buf.plugin.yaml
@@ -0,0 +1,19 @@
+version: v1
+name: buf.build/protocolbuffers/java
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for Java. Generates message and enum types.
+output_languages:
+ - java
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
+registry:
+ maven:
+ deps:
+ - com.google.protobuf:protobuf-java:4.29.1
+ additional_runtimes:
+ - name: lite
+ deps:
+ - com.google.protobuf:protobuf-javalite:4.29.1
+ - build.buf:protobuf-javalite:4.29.1
+ opts: [lite]
diff --git a/plugins/protocolbuffers/java/v29.1/java.cc b/plugins/protocolbuffers/java/v29.1/java.cc
new file mode 100644
index 000000000..bd5cb1386
--- /dev/null
+++ b/plugins/protocolbuffers/java/v29.1/java.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::java::JavaGenerator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/kotlin/v29.1/.dockerignore b/plugins/protocolbuffers/kotlin/v29.1/.dockerignore
new file mode 100644
index 000000000..d02a40d82
--- /dev/null
+++ b/plugins/protocolbuffers/kotlin/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!kotlin.cc
diff --git a/plugins/protocolbuffers/kotlin/v29.1/BUILD b/plugins/protocolbuffers/kotlin/v29.1/BUILD
new file mode 100644
index 000000000..340328b4c
--- /dev/null
+++ b/plugins/protocolbuffers/kotlin/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-kotlin",
+ srcs = ["kotlin.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/kotlin/v29.1/Dockerfile b/plugins/protocolbuffers/kotlin/v29.1/Dockerfile
new file mode 100644
index 000000000..11aed0c4a
--- /dev/null
+++ b/plugins/protocolbuffers/kotlin/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD kotlin.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-kotlin.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-kotlin .
+USER nobody
+ENTRYPOINT ["/protoc-gen-kotlin"]
diff --git a/plugins/protocolbuffers/kotlin/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/kotlin/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..cf071fa12
--- /dev/null
+++ b/plugins/protocolbuffers/kotlin/v29.1/buf.plugin.yaml
@@ -0,0 +1,27 @@
+version: v1
+name: buf.build/protocolbuffers/kotlin
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+integration_guide_url: https://protobuf.dev/getting-started/kotlintutorial
+description: Base types for Kotlin. Generates message and enum types.
+deps:
+ - plugin: buf.build/protocolbuffers/java:v29.1
+output_languages:
+ - kotlin
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
+registry:
+ maven:
+ compiler:
+ kotlin:
+ version: 1.8.22
+ deps:
+ - com.google.protobuf:protobuf-kotlin:4.29.1
+ - org.jetbrains.kotlin:kotlin-stdlib:1.8.22
+ - org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22
+ additional_runtimes:
+ - name: lite
+ deps:
+ - com.google.protobuf:protobuf-kotlin-lite:4.29.1
+ - org.jetbrains.kotlin:kotlin-stdlib:1.8.22
+ opts: [lite]
diff --git a/plugins/protocolbuffers/kotlin/v29.1/kotlin.cc b/plugins/protocolbuffers/kotlin/v29.1/kotlin.cc
new file mode 100644
index 000000000..b43851764
--- /dev/null
+++ b/plugins/protocolbuffers/kotlin/v29.1/kotlin.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::kotlin::KotlinGenerator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/objc/v29.1/.dockerignore b/plugins/protocolbuffers/objc/v29.1/.dockerignore
new file mode 100644
index 000000000..28438c51d
--- /dev/null
+++ b/plugins/protocolbuffers/objc/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!objectivec.cc
diff --git a/plugins/protocolbuffers/objc/v29.1/BUILD b/plugins/protocolbuffers/objc/v29.1/BUILD
new file mode 100644
index 000000000..cc22935a3
--- /dev/null
+++ b/plugins/protocolbuffers/objc/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-objectivec",
+ srcs = ["objectivec.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/objc/v29.1/Dockerfile b/plugins/protocolbuffers/objc/v29.1/Dockerfile
new file mode 100644
index 000000000..a9ccd0e6a
--- /dev/null
+++ b/plugins/protocolbuffers/objc/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD objectivec.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-objectivec.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-objectivec .
+USER nobody
+ENTRYPOINT ["/protoc-gen-objectivec"]
diff --git a/plugins/protocolbuffers/objc/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/objc/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..113ee1be9
--- /dev/null
+++ b/plugins/protocolbuffers/objc/v29.1/buf.plugin.yaml
@@ -0,0 +1,9 @@
+version: v1
+name: buf.build/protocolbuffers/objc
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for Objective-C. Generates message and enum types.
+output_languages:
+ - objective_c
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
diff --git a/plugins/protocolbuffers/objc/v29.1/objectivec.cc b/plugins/protocolbuffers/objc/v29.1/objectivec.cc
new file mode 100644
index 000000000..1fda20829
--- /dev/null
+++ b/plugins/protocolbuffers/objc/v29.1/objectivec.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::objectivec::ObjectiveCGenerator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/php/v29.1/.dockerignore b/plugins/protocolbuffers/php/v29.1/.dockerignore
new file mode 100644
index 000000000..1cc459074
--- /dev/null
+++ b/plugins/protocolbuffers/php/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!php.cc
diff --git a/plugins/protocolbuffers/php/v29.1/BUILD b/plugins/protocolbuffers/php/v29.1/BUILD
new file mode 100644
index 000000000..a813f9104
--- /dev/null
+++ b/plugins/protocolbuffers/php/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-php",
+ srcs = ["php.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/php/v29.1/Dockerfile b/plugins/protocolbuffers/php/v29.1/Dockerfile
new file mode 100644
index 000000000..1deb2f0b6
--- /dev/null
+++ b/plugins/protocolbuffers/php/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD php.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-php.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-php .
+USER nobody
+ENTRYPOINT ["/protoc-gen-php"]
diff --git a/plugins/protocolbuffers/php/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/php/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..3741b85fd
--- /dev/null
+++ b/plugins/protocolbuffers/php/v29.1/buf.plugin.yaml
@@ -0,0 +1,9 @@
+version: v1
+name: buf.build/protocolbuffers/php
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for PHP. Generates message and enum types.
+output_languages:
+ - php
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
diff --git a/plugins/protocolbuffers/php/v29.1/php.cc b/plugins/protocolbuffers/php/v29.1/php.cc
new file mode 100644
index 000000000..107efe882
--- /dev/null
+++ b/plugins/protocolbuffers/php/v29.1/php.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::php::Generator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/pyi/v29.1/.dockerignore b/plugins/protocolbuffers/pyi/v29.1/.dockerignore
new file mode 100644
index 000000000..54ca5b118
--- /dev/null
+++ b/plugins/protocolbuffers/pyi/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!pyi.cc
diff --git a/plugins/protocolbuffers/pyi/v29.1/BUILD b/plugins/protocolbuffers/pyi/v29.1/BUILD
new file mode 100644
index 000000000..89eebd092
--- /dev/null
+++ b/plugins/protocolbuffers/pyi/v29.1/BUILD
@@ -0,0 +1,8 @@
+# Create a standalone binary to generate Python .pyi files
+cc_binary(
+ name = "protoc-gen-pyi",
+ srcs = ["pyi.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/pyi/v29.1/Dockerfile b/plugins/protocolbuffers/pyi/v29.1/Dockerfile
new file mode 100644
index 000000000..b9556ece1
--- /dev/null
+++ b/plugins/protocolbuffers/pyi/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY BUILD pyi.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-pyi.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-pyi .
+USER nobody
+ENTRYPOINT ["/protoc-gen-pyi"]
diff --git a/plugins/protocolbuffers/pyi/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/pyi/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..2eb68d40a
--- /dev/null
+++ b/plugins/protocolbuffers/pyi/v29.1/buf.plugin.yaml
@@ -0,0 +1,18 @@
+version: v1
+name: buf.build/protocolbuffers/pyi
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for Python Stubs. Generates stub files for message and enum types.
+output_languages:
+ - python
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
+registry:
+ python:
+ package_type: "stub-only"
+ # https://github.com/protocolbuffers/protobuf/blob/v29.1/python/dist/setup.py#L77
+ requires_python: ">=3.8"
+ deps:
+ # https://pypi.org/project/protobuf/
+ - "protobuf~=5.29.1"
+ - "types-protobuf~=5.28"
diff --git a/plugins/protocolbuffers/pyi/v29.1/pyi.cc b/plugins/protocolbuffers/pyi/v29.1/pyi.cc
new file mode 100644
index 000000000..4d32abebf
--- /dev/null
+++ b/plugins/protocolbuffers/pyi/v29.1/pyi.cc
@@ -0,0 +1,8 @@
+#include
+#include
+
+// Standalone binary to generate Python .pyi files
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::python::PyiGenerator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/python/v29.1/.dockerignore b/plugins/protocolbuffers/python/v29.1/.dockerignore
new file mode 100644
index 000000000..ee7c3bab2
--- /dev/null
+++ b/plugins/protocolbuffers/python/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!python.cc
diff --git a/plugins/protocolbuffers/python/v29.1/BUILD b/plugins/protocolbuffers/python/v29.1/BUILD
new file mode 100644
index 000000000..013f4312b
--- /dev/null
+++ b/plugins/protocolbuffers/python/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-python",
+ srcs = ["python.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/python/v29.1/Dockerfile b/plugins/protocolbuffers/python/v29.1/Dockerfile
new file mode 100644
index 000000000..1e68fe2c7
--- /dev/null
+++ b/plugins/protocolbuffers/python/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD python.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-python.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-python .
+USER nobody
+ENTRYPOINT ["/protoc-gen-python"]
diff --git a/plugins/protocolbuffers/python/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/python/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..fcc9bd6cc
--- /dev/null
+++ b/plugins/protocolbuffers/python/v29.1/buf.plugin.yaml
@@ -0,0 +1,19 @@
+version: v1
+name: buf.build/protocolbuffers/python
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for Python. Generates message and enum types.
+deps:
+ - plugin: buf.build/protocolbuffers/pyi:v29.1
+output_languages:
+ - python
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
+registry:
+ python:
+ package_type: "runtime"
+ # https://github.com/protocolbuffers/protobuf/blob/v29.1/python/dist/setup.py#L77
+ requires_python: ">=3.8"
+ deps:
+ # https://pypi.org/project/protobuf/
+ - "protobuf~=5.29.1"
diff --git a/plugins/protocolbuffers/python/v29.1/python.cc b/plugins/protocolbuffers/python/v29.1/python.cc
new file mode 100644
index 000000000..f8a9f636d
--- /dev/null
+++ b/plugins/protocolbuffers/python/v29.1/python.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::python::Generator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/plugins/protocolbuffers/ruby/v29.1/.dockerignore b/plugins/protocolbuffers/ruby/v29.1/.dockerignore
new file mode 100644
index 000000000..2bdb552e6
--- /dev/null
+++ b/plugins/protocolbuffers/ruby/v29.1/.dockerignore
@@ -0,0 +1,4 @@
+*
+!BUILD
+!Dockerfile
+!ruby.cc
diff --git a/plugins/protocolbuffers/ruby/v29.1/BUILD b/plugins/protocolbuffers/ruby/v29.1/BUILD
new file mode 100644
index 000000000..8bd93e181
--- /dev/null
+++ b/plugins/protocolbuffers/ruby/v29.1/BUILD
@@ -0,0 +1,7 @@
+cc_binary(
+ name = "protoc-gen-ruby",
+ srcs = ["ruby.cc"],
+ deps = [
+ "//:protoc_lib",
+ ],
+)
diff --git a/plugins/protocolbuffers/ruby/v29.1/Dockerfile b/plugins/protocolbuffers/ruby/v29.1/Dockerfile
new file mode 100644
index 000000000..1e63279f9
--- /dev/null
+++ b/plugins/protocolbuffers/ruby/v29.1/Dockerfile
@@ -0,0 +1,30 @@
+# syntax=docker/dockerfile:1.12
+FROM debian:bookworm-20241202 AS build
+
+ARG TARGETARCH
+ARG BAZEL_OPTS="--host_jvm_args=-Djava.net.preferIPv4Stack=true"
+
+RUN apt-get update \
+ && apt-get install -y curl git cmake build-essential autoconf clang libc++-dev libtool pkg-config unzip zip
+RUN curl -fsSL -o /usr/local/bin/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.24.1/bazelisk-linux-${TARGETARCH} \
+ && chmod +x /usr/local/bin/bazelisk \
+ && mkdir /build \
+ && chown nobody:nogroup /build \
+ && usermod --home /build nobody
+
+USER nobody
+WORKDIR /build
+RUN curl -fsSL -o protoc.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v29.1/protobuf-29.1.tar.gz \
+ && tar --strip-components=1 -zxf protoc.tar.gz \
+ && rm protoc.tar.gz
+RUN bazelisk ${BAZEL_OPTS} build '//:protoc_lib'
+COPY --link BUILD ruby.cc plugins/
+RUN bazelisk ${BAZEL_OPTS} build '//plugins:protoc-gen-ruby.stripped'
+
+FROM gcr.io/distroless/cc-debian12:latest@sha256:f913198471738d9eedcd00c0ca812bf663e8959eebff3a3cbadb027ed9da0c38 AS base
+
+FROM scratch
+COPY --from=base --link / /
+COPY --from=build --link --chmod=0755 /build/bazel-bin/plugins/protoc-gen-ruby .
+USER nobody
+ENTRYPOINT ["/protoc-gen-ruby"]
diff --git a/plugins/protocolbuffers/ruby/v29.1/buf.plugin.yaml b/plugins/protocolbuffers/ruby/v29.1/buf.plugin.yaml
new file mode 100644
index 000000000..0b78eeb45
--- /dev/null
+++ b/plugins/protocolbuffers/ruby/v29.1/buf.plugin.yaml
@@ -0,0 +1,9 @@
+version: v1
+name: buf.build/protocolbuffers/ruby
+plugin_version: v29.1
+source_url: https://github.com/protocolbuffers/protobuf
+description: Base types for Ruby. Generates message and enum types.
+output_languages:
+ - ruby
+spdx_license_id: BSD-3-Clause
+license_url: https://github.com/protocolbuffers/protobuf/blob/v29.1/LICENSE
diff --git a/plugins/protocolbuffers/ruby/v29.1/ruby.cc b/plugins/protocolbuffers/ruby/v29.1/ruby.cc
new file mode 100644
index 000000000..73ba6a6ae
--- /dev/null
+++ b/plugins/protocolbuffers/ruby/v29.1/ruby.cc
@@ -0,0 +1,7 @@
+#include
+#include
+
+int main(int argc, char *argv[]) {
+ google::protobuf::compiler::ruby::Generator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/tests/testdata/buf.build/bufbuild/es/v2.2.3/eliza/plugin.sum b/tests/testdata/buf.build/bufbuild/es/v2.2.3/eliza/plugin.sum
new file mode 100644
index 000000000..25ed7c4a6
--- /dev/null
+++ b/tests/testdata/buf.build/bufbuild/es/v2.2.3/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:RVv3owVTVHQo/X78ydNy9M4yQruSebMwz1cp/dunRjA=
diff --git a/tests/testdata/buf.build/bufbuild/es/v2.2.3/petapis/plugin.sum b/tests/testdata/buf.build/bufbuild/es/v2.2.3/petapis/plugin.sum
new file mode 100644
index 000000000..321f67049
--- /dev/null
+++ b/tests/testdata/buf.build/bufbuild/es/v2.2.3/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:GjmrwNbkxLZJtVblhisZnMJhZDJ9gIrsMWZ59SRMXEI=
diff --git a/tests/testdata/buf.build/grpc/cpp/v1.68.2/eliza/plugin.sum b/tests/testdata/buf.build/grpc/cpp/v1.68.2/eliza/plugin.sum
new file mode 100644
index 000000000..11d7bae9c
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/cpp/v1.68.2/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:+TEOhXAY3kEbot+Yi4zMrlVqpygzcZGd8rNsYRm1K/c=
diff --git a/tests/testdata/buf.build/grpc/cpp/v1.68.2/petapis/plugin.sum b/tests/testdata/buf.build/grpc/cpp/v1.68.2/petapis/plugin.sum
new file mode 100644
index 000000000..d1fd57a3e
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/cpp/v1.68.2/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:QNggIsJlvPRCdsT8EEOrIhD3r6tTDrD6KOna3Fue4JE=
diff --git a/tests/testdata/buf.build/grpc/csharp/v1.68.2/eliza/plugin.sum b/tests/testdata/buf.build/grpc/csharp/v1.68.2/eliza/plugin.sum
new file mode 100644
index 000000000..956a52d4b
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/csharp/v1.68.2/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:4waUym8vI0ZEOq/TtnJRKRUPmHk4QL8zPXRwJhywvI0=
diff --git a/tests/testdata/buf.build/grpc/csharp/v1.68.2/petapis/plugin.sum b/tests/testdata/buf.build/grpc/csharp/v1.68.2/petapis/plugin.sum
new file mode 100644
index 000000000..481fcb91a
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/csharp/v1.68.2/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:kxBF97RNEQQiB/oEduqOgDZAxiXauyz+6hguxnCyP7I=
diff --git a/tests/testdata/buf.build/grpc/objc/v1.68.2/eliza/plugin.sum b/tests/testdata/buf.build/grpc/objc/v1.68.2/eliza/plugin.sum
new file mode 100644
index 000000000..4a8ce4e1b
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/objc/v1.68.2/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:xH0+e+UVLoU5KFcWSB5RfrGIxbyztCgFOquLQjg2/ps=
diff --git a/tests/testdata/buf.build/grpc/objc/v1.68.2/petapis/plugin.sum b/tests/testdata/buf.build/grpc/objc/v1.68.2/petapis/plugin.sum
new file mode 100644
index 000000000..7a01cb23f
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/objc/v1.68.2/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:P+OQBrxyTpehogGY3ZUlcIQ2pRq1iA9xpxjKXSN7u2E=
diff --git a/tests/testdata/buf.build/grpc/php/v1.68.2/eliza/plugin.sum b/tests/testdata/buf.build/grpc/php/v1.68.2/eliza/plugin.sum
new file mode 100644
index 000000000..350cc30e3
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/php/v1.68.2/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:gCX+94Y87fKbGc7nBkZ5sqxwMypA12/rrOdVb9YaOkY=
diff --git a/tests/testdata/buf.build/grpc/php/v1.68.2/petapis/plugin.sum b/tests/testdata/buf.build/grpc/php/v1.68.2/petapis/plugin.sum
new file mode 100644
index 000000000..2f2d65d31
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/php/v1.68.2/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:0h6mmZ/IPFQQD8Mq95Adum4ekVPiiZy05xjy3uqhI48=
diff --git a/tests/testdata/buf.build/grpc/python/v1.68.2/eliza/plugin.sum b/tests/testdata/buf.build/grpc/python/v1.68.2/eliza/plugin.sum
new file mode 100644
index 000000000..0208ffc62
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/python/v1.68.2/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:tzSa6/8xdKOIrF60gIktE2W8FbyoVb782wtuyK8wYcY=
diff --git a/tests/testdata/buf.build/grpc/python/v1.68.2/petapis/plugin.sum b/tests/testdata/buf.build/grpc/python/v1.68.2/petapis/plugin.sum
new file mode 100644
index 000000000..ca968829a
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/python/v1.68.2/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:/bm8y8KHZ5OaVGv2GDuXQc1ADOO5BrN+KJXEJO4iMy0=
diff --git a/tests/testdata/buf.build/grpc/ruby/v1.68.2/eliza/plugin.sum b/tests/testdata/buf.build/grpc/ruby/v1.68.2/eliza/plugin.sum
new file mode 100644
index 000000000..d04ee7f9b
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/ruby/v1.68.2/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:y47G0y23L+GoClu0Kfl4ZgiV++TIrlmPeBxw0sKANjA=
diff --git a/tests/testdata/buf.build/grpc/ruby/v1.68.2/petapis/plugin.sum b/tests/testdata/buf.build/grpc/ruby/v1.68.2/petapis/plugin.sum
new file mode 100644
index 000000000..7e7dee7f8
--- /dev/null
+++ b/tests/testdata/buf.build/grpc/ruby/v1.68.2/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:jT5MBhIRa08sICxgjVvNAQgauC2GnD8G9OZ64P+N5gY=
diff --git a/tests/testdata/buf.build/protocolbuffers/cpp/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/cpp/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..f9c3e1f1b
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/cpp/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:8Mu0VYwvuEiyqVMFmwlQyCL+4mxBAVAI0oHU8bevhsE=
diff --git a/tests/testdata/buf.build/protocolbuffers/cpp/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/cpp/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..d61772a0f
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/cpp/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:bneBRo3p4yjTSTcV4QoKb2C/NGrQ0Qo9Ejftiu0c+yE=
diff --git a/tests/testdata/buf.build/protocolbuffers/csharp/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/csharp/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..7ce484537
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/csharp/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:DkwuBVPi0d23QGFSabB3Xtmk+70VRNgm9M3HLZEHuoA=
diff --git a/tests/testdata/buf.build/protocolbuffers/csharp/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/csharp/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..496f4399e
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/csharp/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:MkwMeoPPud7IULSQ4evKWu/or1M6c7Izxx5ieDjPV90=
diff --git a/tests/testdata/buf.build/protocolbuffers/java/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/java/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..4f253c6ee
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/java/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:97cyDFkjvyyKyFKoSltl7qc8mZNsGa5dCNM17o4HIq4=
diff --git a/tests/testdata/buf.build/protocolbuffers/java/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/java/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..65167e163
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/java/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:on9MlUvqnxIuwQBrocqRIm8WhTgeCUNI/vR9aF0dYeg=
diff --git a/tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..d75a15c48
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:8+2pH1Kv91e+x5uG5Ngka8LmD2SQ87i5KzokSvL3B5w=
diff --git a/tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..ee19e4132
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/kotlin/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:ffOKplQJme4HfTT3qo1/c259jLxDWJ/mMhb9FeiP5R4=
diff --git a/tests/testdata/buf.build/protocolbuffers/objc/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/objc/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..7abdb2fe2
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/objc/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:HfvkwqqGUPXgyC9l37RZTYdlI1kS57CxtpstA9Be6bY=
diff --git a/tests/testdata/buf.build/protocolbuffers/objc/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/objc/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..364644b86
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/objc/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:geYGzbm7oeicvukn5UwTZRI8pGeT5C845yFCkFrdeoM=
diff --git a/tests/testdata/buf.build/protocolbuffers/php/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/php/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..0aa8e4a79
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/php/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:QPzrHiVqsKch2vJglfhENTiriA0ABNl6Lc9w1JsO/V4=
diff --git a/tests/testdata/buf.build/protocolbuffers/php/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/php/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..f79558f09
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/php/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:+GG6Adj0BzYv7HYczwo99yo0zPmoV42aukDGOgfG8oI=
diff --git a/tests/testdata/buf.build/protocolbuffers/pyi/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/pyi/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..196fe700f
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/pyi/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:G5FqoiiggweB/wzLjL0N+pmAmS9MVvZ0r88nEeOKuWg=
diff --git a/tests/testdata/buf.build/protocolbuffers/pyi/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/pyi/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..4d6c0bdb4
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/pyi/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:yGQNs1uA0Kxe7D26svDauCkaVnqJKw60EztlQUbbxlo=
diff --git a/tests/testdata/buf.build/protocolbuffers/python/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/python/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..211670d16
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/python/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:qt64c+u5Nz0bgHQ16Oq7YjgKQVxK1S3INxi7VINpyio=
diff --git a/tests/testdata/buf.build/protocolbuffers/python/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/python/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..54392abd3
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/python/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:XLcTGFVgMryLtB7Uefj5tVFXk7D3bnu+8xdhJeSp1Eo=
diff --git a/tests/testdata/buf.build/protocolbuffers/ruby/v29.1/eliza/plugin.sum b/tests/testdata/buf.build/protocolbuffers/ruby/v29.1/eliza/plugin.sum
new file mode 100644
index 000000000..154470232
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/ruby/v29.1/eliza/plugin.sum
@@ -0,0 +1 @@
+h1:wL1Q3+8iavxHmdyq5u83vd727a1AWCxrMG95KTx7C+Y=
diff --git a/tests/testdata/buf.build/protocolbuffers/ruby/v29.1/petapis/plugin.sum b/tests/testdata/buf.build/protocolbuffers/ruby/v29.1/petapis/plugin.sum
new file mode 100644
index 000000000..e3e7d09f4
--- /dev/null
+++ b/tests/testdata/buf.build/protocolbuffers/ruby/v29.1/petapis/plugin.sum
@@ -0,0 +1 @@
+h1:MGkHm05RCCLhPfU20vGzQ4ZpJgM9pJ1Zehn2jZyCzVA=