33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# kmsvc-proto
|
|
|
|
Shared `kafkamgmt.v1` proto contract and generated Go code for the Kafka Management Service ecosystem (`kafaka_management_service`, `kmsvc-sdk`, `kmsvc-cli`).
|
|
|
|
This repo ships **`.proto` source + pre-generated, committed Go code** (`gen/kafkamgmt/v1`). Generation happens once here, in this repo, not in every consumer. Consumers never install `buf`/`protoc` plugins — they just `go get` this module like any other Go dependency.
|
|
|
|
## Consuming this repo
|
|
|
|
```bash
|
|
export GOPRIVATE=forgejo.riotpiao.homelab.com # skip public proxy/sumdb for this host
|
|
go get forgejo.riotpiao.homelab.com/rock/[email protected]
|
|
```
|
|
|
|
```go
|
|
import kafkamgmtv1 "forgejo.riotpiao.homelab.com/rock/kmsvc-proto/gen/kafkamgmt/v1"
|
|
```
|
|
|
|
## Updating the contract
|
|
|
|
```bash
|
|
# edit proto/kafkamgmt/v1/queue_service.proto
|
|
buf lint
|
|
buf generate # regenerates gen/ in place
|
|
go build ./...
|
|
git add -A && git commit -m "..." && git tag vX.Y.Z && git push --tags
|
|
```
|
|
|
|
CI (`buf-lint-and-breaking`) gates lint + breaking-change checks. CI (`codegen-check`) re-runs `buf generate` and fails if `gen/` doesn't match what's committed — never hand-edit `gen/`.
|
|
|
|
See `PLAN.md` for the full rollout plan (tagging convention, server/SDK/CLI migration).
|
|
# Final test - clean cache removal
|
|
# Test kmsvc-proto with Forgejo URLs
|