Skip to content

fix(urma): address review feedback on Bazel docs and mock builds - #14

Open
cw20050111-prog wants to merge 5 commits into
LinQuickDev:urma_transportfrom
cw20050111-prog:urma_transport_review_fixes
Open

fix(urma): address review feedback on Bazel docs and mock builds#14
cw20050111-prog wants to merge 5 commits into
LinQuickDev:urma_transportfrom
cw20050111-prog:urma_transport_review_fixes

Conversation

@cw20050111-prog

@cw20050111-prog cw20050111-prog commented Aug 20, 2026

Copy link
Copy Markdown

What problem does this PR solve?

Follow-up for apache#3428. This PR applies the effective fixes made after the reviewed urma_transport branch state, targeting the reviewer feedback on URMA Bazel documentation/build behavior and mock usage.

Reviewer feedback addressed:

  • Add Bazel-specific URMA build instructions.
  • Clarify that DOWNLOAD_URMA_HEADERS is a CMake-only option and document the Bazel behavior for UMDK headers.
  • Add an independent opt-in switch for the URMA link-time mock so normal URMA builds do not silently fall back to mock mode.

Issue Number: Related to apache#3401 and apache#3428

What is changed and the side effects?

Changed:

  • Document Bazel URMA build support and its current limitations in both English and Chinese docs.
  • Keep Bazel/Bzlmod UMDK resolution reproducible by using the pinned UMDK commit already introduced for feat: add URMA transport support apache/brpc#3428, and strip UMDK's upstream src/urma/BUILD.bazel so the exported header glob works as intended.
  • Add WITH_URMA_MOCK / --with-urma-mock as an explicit opt-in for the link-time mock when liburma is unavailable.
  • Make example CMake dependency discovery link liburma by best effort from the shared example helper, avoiding duplicate lookup in urma_performance.
  • Add Linux CI coverage for WITH_URMA=ON with the explicit mock path and fix the mock for the C++14 build baseline.
  • Let the Linux/Mac build workflows run for urma_transport PRs so this review branch shows the full CI signal.

Side effects:

  • Existing builds keep URMA disabled by default.
  • WITH_URMA=ON without liburma now fails fast unless WITH_URMA_MOCK=ON is explicitly set. This avoids producing a binary that appears URMA-capable but only links the mock.
  • The mock path remains available for CI and no-hardware test environments.

Verification

  • git diff --check origin/urma_transport..HEAD passed.
  • Parsed .github/workflows/ci-linux.yml and .github/workflows/ci-macos.yml successfully with Ruby YAML.
  • CMake configured successfully with WITH_URMA=ON, WITH_URMA_MOCK=ON, cached UMDK headers, and local OpenSSL.
  • A local macOS build reached URMA compilation and stopped at sys/eventfd.h, which is Linux-only; the added Linux workflow covers this path on Ubuntu.
  • GitHub Actions are now attached to this PR: Linux build/test, macOS build, and License Check.

Check List:

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