Fix protobuf setup: canonical proto, buf lint, Makefile proto target

- Restored canonical proto from eng-pad-server (PageData, StrokeData
  message names, not Notebook/Page/Stroke)
- Added java_package + java_multiple_files options
- Renamed service to EngPadSyncService (buf STANDARD lint compliance)
- Simplified build.gradle.kts: removed broken custom GenerateProtoTask,
  proto stubs generated via Makefile `make proto` and checked into git
- Generated stubs in app/src/main/java/gen/
- Fixed SyncClient/SyncManager to match canonical proto schema
- Updated dependency versions: protobuf 4.34.1, grpc 1.80.0, grpcKotlin 1.5.0
- Added buf.yaml with STANDARD lint rules and FILE breaking detection

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 21:24:45 -07:00
parent 8147ef2c11
commit bedd3977b8
62 changed files with 8857 additions and 272 deletions

View File

@@ -5,7 +5,11 @@ AVD ?= DC-1
PACKAGE := net.metacircular.engpad
ACTIVITY := $(PACKAGE).MainActivity
.PHONY: build test lint clean run devrun apk all
# Proto generation output directory (checked into git)
PROTO_GEN := app/src/main/java/gen
PROTO_SRC := app/src/main/proto
.PHONY: build test lint clean run devrun apk proto proto-lint all
# Build everything (compile + test + lint)
all: lint test build
@@ -31,6 +35,26 @@ apk:
./gradlew assembleRelease
@echo "APK: app/build/outputs/apk/release/app-release-unsigned.apk"
# Generate Kotlin/gRPC stubs from .proto files
proto:
@rm -rf $(PROTO_GEN)
@mkdir -p $(PROTO_GEN)
protoc \
--proto_path=$(PROTO_SRC) \
--proto_path=$$(protoc --print-proto-path 2>/dev/null || echo /usr/local/include) \
--java_out=lite:$(PROTO_GEN) \
--kotlin_out=lite:$(PROTO_GEN) \
--plugin=protoc-gen-grpc=$$(which protoc-gen-grpc-java 2>/dev/null || echo $(HOME)/bin/protoc-gen-grpc-java) \
--grpc_out=lite:$(PROTO_GEN) \
--plugin=protoc-gen-grpckt=$(HOME)/bin/protoc-gen-grpckt \
--grpckt_out=lite:$(PROTO_GEN) \
$$(find $(PROTO_SRC) -name '*.proto')
# Lint proto files with buf
proto-lint:
buf lint
buf breaking --against '.git#branch=master,subdir=$(PROTO_SRC)'
# Clean build artifacts
clean:
./gradlew clean