|
1 | 1 | # gRPC-Kotlin/JVM - An RPC library and framework |
2 | 2 |
|
| 3 | +## Overview |
| 4 | + |
3 | 5 | [![Gradle Build Status][]](https://github.com/grpc/grpc-kotlin/actions?query=workflow%3A%22Gradle+Build%22) |
4 | 6 | [![Bazel Build Status][]](https://github.com/grpc/grpc-kotlin/actions?query=workflow%3A%22Bazel+Build%22) |
5 | 7 |
|
@@ -52,3 +54,73 @@ Note that [official releases][] are [published to Maven Central][]. |
52 | 54 | [published to Maven Central]: https://search.maven.org/search?q=g:io.grpc%20AND%20grpc-kotlin |
53 | 55 | [Quick start]: https://grpc.io/docs/languages/kotlin/quickstart/ |
54 | 56 | [Maven / Gradle Plugin instructions]: compiler/README.md |
| 57 | + |
| 58 | +## Developer |
| 59 | + |
| 60 | +### Bazel 8+ |
| 61 | + |
| 62 | +Add the following to your `MODULE.bazel` with a suitable [version](https://registry.bazel.build/modules/grpc_kotlin). |
| 63 | + |
| 64 | +```starlark |
| 65 | +bazel_dep(name = "grpc_kotlin", version = "VERSION") |
| 66 | +``` |
| 67 | + |
| 68 | +### Bazel 7 |
| 69 | + |
| 70 | +In addition to `bazel_dep`, create a patch to remove `ignore_directories` from `REPO.bazel` (**check content of the correct version**) and apply it using: |
| 71 | + |
| 72 | +```starlark |
| 73 | +bazel_dep(name = "grpc_kotlin", version = "VERSION") |
| 74 | + |
| 75 | +single_version_override( |
| 76 | + module_name = "grpc_kotlin", |
| 77 | + version = "VERSION", |
| 78 | + patches = [":remove_ignore_directories.patch"], |
| 79 | + patch_strip = 1, |
| 80 | +) |
| 81 | +``` |
| 82 | + |
| 83 | +An example of `remove_ignore_directories.patch`: |
| 84 | + |
| 85 | +```patch |
| 86 | +--- a/REPO.bazel |
| 87 | ++++ b/REPO.bazel |
| 88 | +@@ -1 +0,0 @@ |
| 89 | +-ignore_directories(["bzl-examples", "formatter", "**/bin"]) |
| 90 | +``` |
| 91 | + |
| 92 | +### Legacy WORKSPACE |
| 93 | + |
| 94 | +No longer supported. |
| 95 | + |
| 96 | +## Maintainer |
| 97 | + |
| 98 | +### Test |
| 99 | + |
| 100 | +Please note that the max version of JAVA supported is 22. If you use a newer version, first set your `PATH`: |
| 101 | + |
| 102 | +```bash |
| 103 | +$ PATH="$YOUR_JDK_PATH/bin:$PATH" |
| 104 | +``` |
| 105 | + |
| 106 | +Then run the following command to test your local changes before committing: |
| 107 | + |
| 108 | +```bash |
| 109 | +$ bazelisk clean && ./gradlew clean build --parallel && ./gradlew publishToMavenLocal && bazelisk test ... && cd bzl-examples/bzlmod && bazelisk clean && bazelisk test ... && cd - |
| 110 | +``` |
| 111 | + |
| 112 | +### Release: Sonatype |
| 113 | + |
| 114 | +Make sure that [Release Github Action](/.github/workflows/release.yaml) succeeds and artifacts are uploaded to Maven. |
| 115 | + |
| 116 | +If not, contact @bshaffer. |
| 117 | + |
| 118 | +### Publish to BCR |
| 119 | + |
| 120 | +Publishing to BCR requires manual operation on the PR and hence can't be fully automated in [release.yaml](/.github/workflows/release.yaml): |
| 121 | + |
| 122 | +1. Run the Publish to BCR Github Action: [publish.yaml](/.github/workflows/publish.yaml). |
| 123 | +2. Check logs for link to the PR. |
| 124 | +3. Manually comment `@bazel-io skip_check unstable_url` on the generated PR. |
| 125 | + |
| 126 | +After the PR is merged, make sure the new version is visible in [BCR](https://registry.bazel.build/modules/grpc_kotlin). |
0 commit comments