Skip to content

Conversation

yordis
Copy link
Member

@yordis yordis commented Sep 29, 2025

Signed-off-by: Yordis Prieto yordis.prieto@gmail.com

Copy link

coderabbitai bot commented Sep 29, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a new Go-based protoc plugin (protoc-gen-elixir-grpc) with tests and README. Updates Taskfile to build both Go and Elixir plugins, generalizes .gitignore patterns for protoc-gen-* binaries, and registers the new plugin in release-please config. No other control flow outside the new plugin.

Changes

Cohort / File(s) Summary
Release config
.github/.release-please-config.json
Adds cmd/protoc-gen-elixir-grpc package entry with component protoc-gen-elixir-grpc.
Build tooling & ignores
.gitignore, Taskfile.yml
Generalizes ignore patterns to protoc-gen-* and protoc-gen-*.wasm. Updates build-plugin description/output; adds build-plugin-go and build-plugin-elixir tasks that build respective binaries.
Elixir gRPC plugin
cmd/protoc-gen-elixir-grpc/README.md, cmd/protoc-gen-elixir-grpc/main.go, cmd/protoc-gen-elixir-grpc/main_test.go
Introduces new protoc plugin generating Elixir gRPC server modules with defdelegate handlers; supports parameters (package_prefix, handler_module_prefix), version/help, error reporting. Adds comprehensive tests and usage docs.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor Dev as Developer
    participant Protoc as protoc
    participant Plugin as protoc-gen-elixir-grpc
    participant FS as File System

    Dev->>Protoc: Run with --elixir-grpc_out and params
    Protoc->>Plugin: CodeGeneratorRequest (proto files, params)
    Plugin->>Plugin: Parse flags (package_prefix, handler_module_prefix)
    alt Invalid parameters
        Plugin-->>Protoc: CodeGeneratorResponse (error)
        Protoc-->>Dev: Exit non-zero, stderr
    else Valid parameters
        Plugin->>Plugin: For each file with services: generate server modules
        Plugin-->>Protoc: CodeGeneratorResponse (files: *.server.pb.ex)
        Protoc->>FS: Write generated Elixir server modules
        Protoc-->>Dev: Success
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • chore: improve ci #5 — Similar updates to release/build tooling (.github/.release-please-config.json, Taskfile.yml, .gitignore) to manage protoc plugin packaging and tasks.

Poem

A rabbit taps keys with a gentle thrum,
New plugin hops in—Elixir, here we come!
Tasks multiply, binaries bloom,
Globs sweep trails with a tidy broom.
Protoc whispers, handlers reply—
Code carrots harvested, outputs fly.
Hippity-hop, ship it high! 🥕🚀

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/elixir-struct-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c526a63 and 6b57283.

📒 Files selected for processing (6)
  • .github/.release-please-config.json (1 hunks)
  • .gitignore (1 hunks)
  • Taskfile.yml (1 hunks)
  • cmd/protoc-gen-elixir-grpc/README.md (1 hunks)
  • cmd/protoc-gen-elixir-grpc/main.go (1 hunks)
  • cmd/protoc-gen-elixir-grpc/main_test.go (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🧪 Early access (Sonnet 4.5): enabled

We are currently testing the Sonnet 4.5 model, which is expected to improve code review quality. However, this model may lead to increased noise levels in the review comments. Please disable the early access features if the noise level causes any inconvenience.

Note:

  • Public repositories are always opted into early access features.
  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.

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

@yordis yordis force-pushed the feat/elixir-struct-service branch 16 times, most recently from ace7524 to 2b4df84 Compare September 29, 2025 20:25
@yordis yordis marked this pull request as ready for review September 29, 2025 20:25
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis yordis force-pushed the feat/elixir-struct-service branch from 2b4df84 to 6b57283 Compare September 29, 2025 20:27
@yordis yordis merged commit 8bcc1c4 into main Sep 29, 2025
2 checks passed
@yordis yordis deleted the feat/elixir-struct-service branch September 29, 2025 20:28
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