Skip to content

feat: bootstrap Go bindings for trogon-proto#1

Merged
yordis merged 1 commit into
mainfrom
yordis/feat-bootstrap-go-bindings
May 6, 2026
Merged

feat: bootstrap Go bindings for trogon-proto#1
yordis merged 1 commit into
mainfrom
yordis/feat-bootstrap-go-bindings

Conversation

@yordis

@yordis yordis commented May 6, 2026

Copy link
Copy Markdown
Member
  • Gives Go consumers (services, libraries like `trogonerror`, internal tooling) a stable import path for the TrogonStack contract without each one having to install `buf`, run codegen, and stay in sync with the proto repo on every bump.
  • Generated code is committed in `gen/` and verified up-to-date in CI, so consumers `go get` and import like any other Go module — no toolchain knowledge required.
  • Mirrors `trogonerror`'s release pipeline (release-please, dependabot, semantic PR titles, DCO) so the Go side has the same release cadence and review story as the rest of the stack.

@coderabbitai

coderabbitai Bot commented May 6, 2026

Copy link
Copy Markdown
ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Free

Run ID: eb8102f7-9a62-4c65-84f4-6d7cccd0e78c

📥 Commits

Reviewing files that changed from the base of the PR and between 8af961e and 7f20352.

⛔ Files ignored due to path filters (14)
  • gen/trogon/consistency/v1alpha1/consistency.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/env/v1alpha1/options.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/env/v1alpha1/visibility.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/error/v1alpha1/code.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/error/v1alpha1/options.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/error/v1alpha1/visibility.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/object_id/v1alpha1/options.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/relay/v1alpha1/cursor_pagination.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/relay/v1alpha1/page_info.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/stream/v1alpha1/options.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/uuid/v1/namespace.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/uuid/v1/options.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • gen/trogon/uuid/v1/uuid.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (11)
  • .gitattributes
  • .github/.release-please-config.json
  • .github/.release-please-manifest.json
  • .github/dependabot.yml
  • .github/semantic.yml
  • .github/workflows/ci.yml
  • .github/workflows/release-please.yml
  • README.md
  • buf.gen.yaml
  • go.mod
  • mise.toml
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/.release-please-config.json
  • .github/.release-please-manifest.json

Walkthrough

Adds project scaffolding for trogonproto: Go module and tool versions, Buf codegen config, GitHub CI and release workflows, Dependabot and semantic config, gitattributes for generated protobufs, and README introductory content.

Changes

Go Project & Protobuf Setup

Layer / File(s) Summary
Module & Dependencies
go.mod
Declares module github.com/TrogonStack/trogonproto, go 1.26, and adds protobuf-related requirements.
Code Generation Config
buf.gen.yaml
Adds Buf v2 generation config: managed mode, file option overrides for Go package prefixes, Go plugin remote, out: gen, and input module.
Development Tools
mise.toml
Specifies tool versions: go = "1.26" and buf = "1.50".
Generated Code Handling
.gitattributes
Adds * text=auto eol=lf, marks gen/** and *.pb.go as linguist-generated=true.
Project Documentation
README.md
Inserts top-level descriptive content about trogonproto and preserves existing anchor heading.

GitHub CI/CD & Release Infrastructure

Layer / File(s) Summary
CI Workflow
.github/workflows/ci.yml
Adds CI with two jobs: regenerate/verify Buf-generated Go bindings and run Go tests/vet/lint via golangci-lint across Go 1.26.x.
Release Configuration
.github/.release-please-config.json
Adds Release Please config for Go (release-type: go, include-v-in-tag true), changelog sections, package mapping to trogonproto, and sentence-case plugin.
Release Manifest
.github/.release-please-manifest.json
Adds manifest mapping . to version 0.0.1.
Release Workflow
.github/workflows/release-please.yml
Adds workflow to run Release Please action on pushes to main with required permissions and config/manifest paths.
Dependency Management
.github/dependabot.yml
Adds Dependabot config for gomod and github-actions, monthly schedule, limit 3 open PRs.
Commit Conventions
.github/semantic.yml
Adds semantic config: titleOnly: true and allowRevertCommits: true.
sequenceDiagram
  actor Developer
  participant Repo
  participant CI as GitHub Actions CI
  participant Buf
  participant ReleasePlease as Release Please Action

  Developer->>Repo: push changes (code + buf.gen.yaml, go.mod)
  Repo->>CI: trigger CI workflow
  CI->>Buf: run `buf generate`
  Buf-->>CI: generated code (gen/, *.pb.go)
  CI->>Repo: verify generated code is up-to-date
  CI->>CI: run tests, vet, golangci-lint
  Developer->>Repo: push to main (release trigger)
  Repo->>ReleasePlease: release-please action runs with config & manifest
  ReleasePlease->>Repo: create release PR / tag
Loading

🎯 3 (Moderate) | ⏱️ ~20 minutes

🐰 Small paws tap keys, configs unfurled,
Buf spins the protobuf into Go-world,
CI hums, releases take their leap,
Dependabot watches while I nap, not sleep,
A rabbit smiles—new infra snug as a curl.


Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands and usage tips.

@yordis yordis force-pushed the yordis/feat-bootstrap-go-bindings branch from 573c118 to 8af961e Compare May 6, 2026 02:17
Gives Go consumers a stable place to import the TrogonStack contract
without forcing every service to wire up its own protoc/buf toolchain
and stay in sync with the proto repo.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis yordis force-pushed the yordis/feat-bootstrap-go-bindings branch from 8af961e to 7f20352 Compare May 6, 2026 02:20
@yordis yordis merged commit 05a9040 into main May 6, 2026
4 checks passed
@yordis yordis deleted the yordis/feat-bootstrap-go-bindings branch May 6, 2026 02:26
@sht-bot sht-bot mentioned this pull request May 6, 2026
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.

1 participant