Skip to content

fix(ci): scope backend codegen to the Python stubs so Test Backend has a buf-free path - #189

Merged
vovinacci merged 2 commits into
mainfrom
fix/backend-ci-generate-scope
Jul 27, 2026
Merged

fix(ci): scope backend codegen to the Python stubs so Test Backend has a buf-free path#189
vovinacci merged 2 commits into
mainfrom
fix/backend-ci-generate-scope

Conversation

@vovinacci

Copy link
Copy Markdown
Owner

Root make generate ends with $(MAKE) -C services/analytics generate, and that target runs cd ../../proto && buf generate. The backend test job installs only Python, so its make generate step failed with /bin/sh: 1: buf: not found. It went unnoticed because backend.yml is path-filtered on services/backend/** plus itself, and no PR had touched either since the analytics tail landed.

Split the root target by language: generate-backend (grpcio-tools' bundled protoc) and generate-analytics (buf). generate keeps calling both, so the documented local regenerate-everything entry point is unchanged.

Both the CI job and make test-backend now depend on generate-backend. Moving only the CI side would have broken the local-equals-CI invariant (Makefile ci target, AGENTS.md, docs/ci.md) in the opposite direction: local backend tests would still require buf where CI no longer does.

The backend never consumed the Go stubs - it imports app/proto_gen only. Docs that walk a reader through the Python-only path (backend README, running-tests, the gRPC exercise's Python fallback) now name the target that matches what they describe.

vovinacci and others added 2 commits July 27, 2026 13:02
…s a buf-free path

Root `make generate` ends with `$(MAKE) -C services/analytics generate`, and
that target runs `cd ../../proto && buf generate`. The backend test job
installs only Python, so its `make generate` step failed with
`/bin/sh: 1: buf: not found`. It went unnoticed because backend.yml is
path-filtered on `services/backend/**` plus itself, and no PR had touched
either since the analytics tail landed.

Split the root target by language: `generate-backend` (grpcio-tools' bundled
protoc) and `generate-analytics` (buf). `generate` keeps calling both, so the
documented local regenerate-everything entry point is unchanged.

Both the CI job and `make test-backend` now depend on `generate-backend`.
Moving only the CI side would have broken the local-equals-CI invariant
(Makefile `ci` target, AGENTS.md, docs/ci.md) in the opposite direction:
local backend tests would still require buf where CI no longer does.

The backend never consumed the Go stubs - it imports `app/proto_gen` only.
Docs that walk a reader through the Python-only path (backend README,
running-tests, the gRPC exercise's Python fallback) now name the target that
matches what they describe.
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@vovinacci, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 29 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3414ff97-e94d-4fb2-a806-ff7c0bb676b9

📥 Commits

Reviewing files that changed from the base of the PR and between 58e8562 and b2f18c9.

📒 Files selected for processing (8)
  • .github/workflows/backend.yml
  • AGENTS.md
  • Makefile
  • docs/ci.md
  • docs/exercises/02-grpc-contract.md
  • docs/prerequisites.md
  • docs/running-tests.md
  • services/backend/README.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/backend-ci-generate-scope

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

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

@vovinacci
vovinacci merged commit b2303dc into main Jul 27, 2026
15 of 16 checks passed
@vovinacci
vovinacci deleted the fix/backend-ci-generate-scope branch July 27, 2026 10:22
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