googleapis / googleapis/google-cloud-cpp
Investigate Redundant `@com_google_benchmark//:benchmark` Dependency in Bazel Builds
- Ngôn ngữ chính
- C++
- Star
- 659
- Fork
- 462
- Merge trung bình
- 1 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 89
Mô tả
Pull request #15543 fixed build failures in several benchmark targets on the macOS Bazel CI. The builds were failing because they were missing a direct dependency on `@com_google_benchmark//:benchmark`, even though they already depended on `@com_google_benchmark//:benchmark_main`.
While adding the explicit dependency resolves the build errors, it's not clear why this is necessary. According to the `google/benchmark` [BUILD.bazel file](https://github.com/google/benchmark/blob/d65c35c406858939084ef96c72663ec382f75d37/BUILD.bazel#L95), the `:benchmark_main` target depends on `:benchmark` and should export the necessary headers and symbols.
This issue affects the macOS Bazel CI builds.
This issue is to track the investigation into the root cause of this behavior:
1. Why is a direct dependency on `@com_google_benchmark//:benchmark` required when a dependency on `@com_google_benchmark//:benchmark_main` already exists?
2. Why does this issue appear to be specific to the macOS Bazel CI build environment?
3. Is there a more fundamental issue in how dependencies are being resolved or in the toolchain configuration?
**Acceptance Criteria:**
* Understand and document the reason for the seemingly redundant dependency.
* Determine if a configuration change can remove the need for the explicit dependency on `@com_google_benchmark//:benchmark` in the benchmark targets.
**Reference:**
* PR #15543: fix(bazel): Add missing dependency to benchmark targets
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với PR #15543 và các target benchmark bị ảnh hưởng trong các bản build Bazel CI trên macOS. So sánh các khai báo dependency của chúng với tệp BUILD.bazel được google/benchmark tham chiếu và điều tra cách toolchain macOS phân giải benchmark và benchmark_main. Được xem là hoàn tất khi đã ghi lại nguyên nhân và xác định liệu một thay đổi cấu hình có thể loại bỏ dependency tường minh hay không.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- build-system, ci-cd
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100