grpc / grpc/grpc

[Bzlmod] Support non-bazel builds while enabling bzlmod.

Open
#41,703 0 comments 0 reactions 1 assignee Claimed by @yuanweiz View on GitHub
Dominant language
C++
Stars
45.3k
Forks
11.4k
Avg merge
2d 12h
Merged PRs (30d)
47

Description

Parent issue: https://github.com/grpc/grpc/issues/41487

The `generate_projects.sh` scripts (together with other programs such as artifact_gen/ etc) draw information from bazel and generate project files using inja+YAML files.

Most of our C core sources/tests already works fine with bzlmod. For non-bazel build things are a bit trickier because of a few changes that comes along with bzlmod:

* Different repo name mapping. Each repo now has 2 names: canonical and immediate names. An analogy would be the python `import lib as my_lib`. We need to manually provide mapping info for the driver program to properly construct dependency graph. (affects cmake and wrapper languages)
* `//external` is deprecated and can't be used to query `http_archive` rules anymore. This means we need to find some workaround to retrieve metadata on package URL and patches (needed by cmake builds)
* Slight version mismatch: git submodules in `third_party/` may not always match a bcr version and requires manual patching.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.