Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
18d73a3
CONTRIBUTING.md: Update commit guidelines
ejona86 Aug 7, 2024
40e2b16
Make once-set fields of `AbstractClientStream` `final` (#11389)
JarvisCraft Aug 8, 2024
72a977b
Dualstack example (#11451)
larry-safran Aug 8, 2024
f866c80
util: SocketAddress.toString() cannot be used for equality
ejona86 Jul 26, 2024
2f4f7f0
util: Delete unused MultiChildLB.ChildLbState.getSubchannels()
ejona86 Jul 26, 2024
d1dcfb0
xds: Replace WrrHelper with a per-child Helper
ejona86 Jul 27, 2024
043ba55
otel tracing: add binary format, grpcTraceBinContextPropagator (#11409)
YifeiZhuang Aug 12, 2024
0d2ad89
xds: Remove useless ExperimentalApi for WRR
ejona86 Aug 8, 2024
0d47f5b
xds: WRRPicker must not access unsynchronized data in ChildLbState
ejona86 Aug 12, 2024
4ab3422
netty: Use DefaultELG with LocalChannel in test
ejona86 Aug 9, 2024
a6f8ebf
Remove implicit requestConnection() on IDLE from MultiChildLB
ejona86 Jul 25, 2024
b5989a5
util: MultiChildLb children should always start with a NoResult picker
ejona86 Jul 25, 2024
fd8734f
xds: Delegate more RingHashLB address updates to MultiChildLB
ejona86 Jul 26, 2024
c2eccca
cronet: Add internal API to specify Network
ejona86 Aug 13, 2024
d584044
Update README etc to reference 1.66.0 (#11472)
kannanjgithub Aug 13, 2024
75012a5
examples: Upgrade Maven plugin versions
ejona86 Aug 13, 2024
909c4bc
util: Remove minor convenience functions from MultiChildLB
ejona86 Jul 27, 2024
ff8e413
Remove direct dependency on j2objc
ejona86 Aug 14, 2024
6a9bc3b
example: delete duplicate and unused code in KeepAliveClient.java
sunpe Aug 13, 2024
6dbd1b9
Add newAttachMetadataServerInterceptor() MetadataUtil (#11458)
jdcormie Aug 14, 2024
c120e36
core: PF Index.size() should be number of addresses
ejona86 Aug 15, 2024
778a00b
util: Remove MultiChildLB.getImmutableChildMap()
ejona86 Jul 29, 2024
8bd9795
core: Never have null PF Index
ejona86 Aug 16, 2024
33687d3
core: Remove useless NPE check for syncContext in PF
ejona86 Aug 17, 2024
4914ffc
core: Avoid exception handling in PF for invalid index
ejona86 Aug 17, 2024
2c93791
core: PF.requestConnection() is possible when READY
ejona86 Aug 17, 2024
82a8d57
core: In PF, remove useless requestConnection for CONNECTING subchannel
ejona86 Aug 17, 2024
9762945
core: In PF, remove extraneous index.reset()
ejona86 Aug 17, 2024
66075ea
.github/workflows: Bump action major versions from Node16 to Node20 (…
Juneezee Aug 22, 2024
2fe1a13
Migrate from `Charsets` to `StandardCharsets`. (#11482)
kluever Aug 22, 2024
6c9f92a
interop-testing: Move interop tests only used by test client to the t…
ejona86 Apr 2, 2024
f20167d
util: Replace RR.EmptyPicker with FixedResultPicker
ejona86 Jul 25, 2024
ee3ffef
core: In PF, disjoint update while READY should transition to IDLE
ejona86 Aug 17, 2024
d034a56
Xds client split (#11484)
larry-safran Aug 23, 2024
10d6002
xds: ClusterManagerLB must update child configuration
ejona86 Jul 26, 2024
0138977
util: Remove child policy config from MultiChildLB state
ejona86 Jul 26, 2024
4cb6465
util: MultiChildLB children know if they are active
ejona86 Jul 29, 2024
cfecc47
Focus MultiChildLB updates around ResolvedAddresses of children
ejona86 Jul 26, 2024
c63e354
rls: Fix log statements incorrectly referring to "LRS" (#11497)
temawi Aug 29, 2024
421e237
add OpenTelemetryTracingModule (#11477)
YifeiZhuang Aug 30, 2024
1dae144
xds: Fix load reporting when pick first is used for locality-routing.…
DNVindhya Aug 31, 2024
8adfbf9
Start 1.68.0 development cycle (#11507)
shivaspeaks Sep 4, 2024
721d063
core: touch() buffer when detach()ing
ejona86 Sep 5, 2024
f6d2f20
Fix assertion to resolve flakiness in upstreamLocalityStatsList order…
DNVindhya Sep 6, 2024
5de65a6
use an attribute from resolved addresses IS_PETIOLE_POLICY to control…
larry-safran Sep 6, 2024
15cd2f9
buildscripts: OS X env should be in macos.sh
ejona86 Jul 11, 2024
f3cf7c3
xds: Add xDS node ID in few control plane errors (#11519)
DNVindhya Sep 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ jobs:
name: "Gradle wrapper validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v4
2 changes: 1 addition & 1 deletion .github/workflows/lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4
- uses: dessant/lock-threads@v5
with:
github-token: ${{ github.token }}
issue-inactive-days: 90
Expand Down
20 changes: 11 additions & 9 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ jobs:
fail-fast: false # Should swap to true if we grow a large matrix

steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: ${{ matrix.jre }}
distribution: 'temurin'

- name: Gradle cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
Expand All @@ -37,7 +37,7 @@ jobs:
restore-keys: |
${{ runner.os }}-gradle-
- name: Maven cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.m2/repository
Expand All @@ -46,7 +46,7 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
- name: Protobuf cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: /tmp/protobuf-cache
key: ${{ runner.os }}-maven-${{ hashFiles('buildscripts/make_dependencies.sh') }}
Expand All @@ -55,7 +55,7 @@ jobs:
run: buildscripts/kokoro/unix.sh
- name: Post Failure Upload Test Reports to Artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Test Reports (JRE ${{ matrix.jre }})
path: |
Expand All @@ -71,23 +71,25 @@ jobs:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: ./gradlew :grpc-all:coveralls -PskipAndroid=true -x compileJava
- name: Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}

bazel:
runs-on: ubuntu-latest
env:
USE_BAZEL_VERSION: 6.0.0

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Check versions match in MODULE.bazel and repositories.bzl
run: |
diff -u <(sed -n '/GRPC_DEPS_START/,/GRPC_DEPS_END/ {/GRPC_DEPS_/! p}' MODULE.bazel) \
<(sed -n '/GRPC_DEPS_START/,/GRPC_DEPS_END/ {/GRPC_DEPS_/! p}' repositories.bzl)

- name: Bazel cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.cache/bazel/*/cache
Expand Down
57 changes: 25 additions & 32 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,43 +30,36 @@ style configurations are commonly useful. For IntelliJ 14, copy the style to
`~/.IdeaIC14/config/codestyles/`, start IntelliJ, go to File > Settings > Code
Style, and set the Scheme to `GoogleStyle`.

## Maintaining clean commit history

We have few conventions for keeping history clean and making code reviews easier
for reviewers:

* First line of commit messages should be in format of

`package-name: summary of change`

where the summary finishes the sentence: `This commit improves gRPC to ____________.`

for example:

`core,netty,interop-testing: add capacitive duractance to turbo encabulators`

* Every time you receive a feedback on your pull request, push changes that
address it as a separate one or multiple commits with a descriptive commit
message (try avoid using vauge `addressed pr feedback` type of messages).

Project maintainers are obligated to squash those commits into one when
merging.

## Guidelines for Pull Requests
How to get your contributions merged smoothly and quickly.

- Create **small PRs** that are narrowly focused on **addressing a single concern**. We often times receive PRs that are trying to fix several things at a time, but only one fix is considered acceptable, nothing gets merged and both author's & review's time is wasted. Create more PRs to address different concerns and everyone will be happy.

- For speculative changes, consider opening an issue and discussing it first. If you are suggesting a behavioral or API change, consider starting with a [gRFC proposal](https://github.com/grpc/proposal).

- Provide a good **PR description** as a record of **what** change is being made and **why** it was made. Link to a github issue if it exists.

- Don't fix code style and formatting unless you are already changing that line to address an issue. PRs with irrelevant changes won't be merged. If you do want to fix formatting or style, do that in a separate PR.

- Unless your PR is trivial, you should expect there will be reviewer comments that you'll need to address before merging. We expect you to be reasonably responsive to those comments, otherwise the PR will be closed after 2-3 weeks of inactivity.

- Maintain **clean commit history** and use **meaningful commit messages**. See [maintaining clean commit history](#maintaining-clean-commit-history) for details.

- For speculative changes, consider opening an issue and discussing it to avoid
wasting time on an inappropriate approach. If you are suggesting a behavioral
or API change, consider starting with a [gRFC
proposal](https://github.com/grpc/proposal).

- Follow [typical Git commit message](https://cbea.ms/git-commit/#seven-rules)
structure. Have a good **commit description** as a record of **what** and
**why** the change is being made. Link to a GitHub issue if it exists. The
commit description makes a good PR description and is auto-copied by GitHub if
you have a single commit when creating the PR.

If your change is mostly for a single module (e.g., other module changes are
trivial), prefix your commit summary with the module name changed. Instead of
"Add HTTP/2 faster-than-light support to gRPC Netty" it is more terse as
"netty: Add faster-than-light support".

- Don't fix code style and formatting unless you are already changing that line
to address an issue. If you do want to fix formatting or style, do that in a
separate PR.

- Unless your PR is trivial, you should expect there will be reviewer comments
that you'll need to address before merging. Address comments with additional
commits so the reviewer can review just the changes; do not squash reviewed
commits unless the reviewer agrees. PRs are squashed when merging.

- Keep your PR up to date with upstream/master (if there are merge conflicts, we can't really merge your change).

- **All tests need to be passing** before your change can be merged. We recommend you **run tests locally** before creating your PR to catch breakages early on. Also, `./gradlew build` (`gradlew build` on Windows) **must not introduce any new warnings**.
Expand Down
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module(
name = "grpc-java",
compatibility_level = 0,
repo_name = "io_grpc_grpc_java",
version = "1.67.0-SNAPSHOT", # CURRENT_GRPC_VERSION
version = "1.68.0-SNAPSHOT", # CURRENT_GRPC_VERSION
)

# GRPC_DEPS_START
Expand Down
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ For a guided tour, take a look at the [quick start
guide](https://grpc.io/docs/languages/java/quickstart) or the more explanatory [gRPC
basics](https://grpc.io/docs/languages/java/basics).

The [examples](https://github.com/grpc/grpc-java/tree/v1.65.0/examples) and the
[Android example](https://github.com/grpc/grpc-java/tree/v1.65.0/examples/android)
The [examples](https://github.com/grpc/grpc-java/tree/v1.66.0/examples) and the
[Android example](https://github.com/grpc/grpc-java/tree/v1.66.0/examples/android)
are standalone projects that showcase the usage of gRPC.

Download
Expand All @@ -56,18 +56,18 @@ Download [the JARs][]. Or for Maven with non-Android, add to your `pom.xml`:
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>1.65.0</version>
<version>1.66.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.65.0</version>
<version>1.66.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>1.65.0</version>
<version>1.66.0</version>
</dependency>
<dependency> <!-- necessary for Java 9+ -->
<groupId>org.apache.tomcat</groupId>
Expand All @@ -79,18 +79,18 @@ Download [the JARs][]. Or for Maven with non-Android, add to your `pom.xml`:

Or for Gradle with non-Android, add to your dependencies:
```gradle
runtimeOnly 'io.grpc:grpc-netty-shaded:1.65.0'
implementation 'io.grpc:grpc-protobuf:1.65.0'
implementation 'io.grpc:grpc-stub:1.65.0'
runtimeOnly 'io.grpc:grpc-netty-shaded:1.66.0'
implementation 'io.grpc:grpc-protobuf:1.66.0'
implementation 'io.grpc:grpc-stub:1.66.0'
compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+
```

For Android client, use `grpc-okhttp` instead of `grpc-netty-shaded` and
`grpc-protobuf-lite` instead of `grpc-protobuf`:
```gradle
implementation 'io.grpc:grpc-okhttp:1.65.0'
implementation 'io.grpc:grpc-protobuf-lite:1.65.0'
implementation 'io.grpc:grpc-stub:1.65.0'
implementation 'io.grpc:grpc-okhttp:1.66.0'
implementation 'io.grpc:grpc-protobuf-lite:1.66.0'
implementation 'io.grpc:grpc-stub:1.66.0'
compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+
```

Expand All @@ -99,7 +99,7 @@ For [Bazel](https://bazel.build), you can either
(with the GAVs from above), or use `@io_grpc_grpc_java//api` et al (see below).

[the JARs]:
https://search.maven.org/search?q=g:io.grpc%20AND%20v:1.65.0
https://search.maven.org/search?q=g:io.grpc%20AND%20v:1.66.0

Development snapshots are available in [Sonatypes's snapshot
repository](https://oss.sonatype.org/content/repositories/snapshots/).
Expand Down Expand Up @@ -129,9 +129,9 @@ For protobuf-based codegen integrated with the Maven build system, you can use
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.25.1:exe:${os.detected.classifier}</protocArtifact>
<protocArtifact>com.google.protobuf:protoc:3.25.3:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.65.0:exe:${os.detected.classifier}</pluginArtifact>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.66.0:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
Expand All @@ -157,11 +157,11 @@ plugins {

protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.25.1"
artifact = "com.google.protobuf:protoc:3.25.3"
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.65.0'
artifact = 'io.grpc:protoc-gen-grpc-java:1.66.0'
}
}
generateProtoTasks {
Expand Down Expand Up @@ -190,11 +190,11 @@ plugins {

protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.25.1"
artifact = "com.google.protobuf:protoc:3.25.3"
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.65.0'
artifact = 'io.grpc:protoc-gen-grpc-java:1.66.0'
}
}
generateProtoTasks {
Expand Down
2 changes: 0 additions & 2 deletions alts/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ java_library(
"@com_google_protobuf//:protobuf_java_util",
artifact("com.google.code.findbugs:jsr305"),
artifact("com.google.guava:guava"),
artifact("com.google.j2objc:j2objc-annotations"),
artifact("io.netty:netty-buffer"),
artifact("io.netty:netty-codec"),
artifact("io.netty:netty-common"),
Expand All @@ -45,7 +44,6 @@ java_library(
artifact("com.google.auth:google-auth-library-oauth2-http"),
artifact("com.google.code.findbugs:jsr305"),
artifact("com.google.guava:guava"),
artifact("com.google.j2objc:j2objc-annotations"),
artifact("io.netty:netty-common"),
artifact("io.netty:netty-handler"),
artifact("io.netty:netty-transport"),
Expand Down
5 changes: 0 additions & 5 deletions android-interop-testing/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ dependencies {

implementation project(':grpc-android'),
project(':grpc-core'),
project(':grpc-auth'),
project(':grpc-census'),
project(':grpc-okhttp'),
project(':grpc-protobuf-lite'),
Expand All @@ -81,10 +80,6 @@ dependencies {
libraries.androidx.test.rules,
libraries.opencensus.contrib.grpc.metrics

implementation (libraries.google.auth.oauth2Http) {
exclude group: 'org.apache.httpcomponents'
}

implementation (project(':grpc-services')) {
exclude group: 'com.google.protobuf'
exclude group: 'com.google.guava'
Expand Down
1 change: 0 additions & 1 deletion api/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,5 @@ java_library(
artifact("com.google.errorprone:error_prone_annotations"),
artifact("com.google.guava:failureaccess"), # future transitive dep of Guava. See #5214
artifact("com.google.guava:guava"),
artifact("com.google.j2objc:j2objc-annotations"),
],
)
31 changes: 31 additions & 0 deletions api/src/main/java/io/grpc/InternalSubchannelAddressAttributes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Copyright 2024 The gRPC Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package io.grpc;

/**
* An internal class. Do not use.
*
* <p>An interface to provide the attributes for address connected by subchannel.
*/
@Internal
public interface InternalSubchannelAddressAttributes {

/**
* Return attributes of the server address connected by sub channel.
*/
public Attributes getConnectedAddressAttributes();
}
12 changes: 12 additions & 0 deletions api/src/main/java/io/grpc/LoadBalancer.java
Original file line number Diff line number Diff line change
Expand Up @@ -1428,6 +1428,18 @@ public void updateAddresses(List<EquivalentAddressGroup> addrs) {
public Object getInternalSubchannel() {
throw new UnsupportedOperationException();
}

/**
* (Internal use only) returns attributes of the address subchannel is connected to.
*
* <p>Warning: this is INTERNAL API, is not supposed to be used by external users, and may
* change without notice. If you think you must use it, please file an issue and we can consider
* removing its "internal" status.
*/
@Internal
public Attributes getConnectedAddressAttributes() {
throw new UnsupportedOperationException();
}
}

/**
Expand Down
1 change: 0 additions & 1 deletion auth/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ java_library(
artifact("com.google.auth:google-auth-library-credentials"),
artifact("com.google.code.findbugs:jsr305"),
artifact("com.google.guava:guava"),
artifact("com.google.j2objc:j2objc-annotations"),
],
)
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ subprojects {
apply plugin: "net.ltgt.errorprone"

group = "io.grpc"
version = "1.67.0-SNAPSHOT" // CURRENT_GRPC_VERSION
version = "1.68.0-SNAPSHOT" // CURRENT_GRPC_VERSION

repositories {
maven { // The google mirror is less flaky than mavenCentral()
Expand Down
4 changes: 2 additions & 2 deletions buildscripts/grpc-java-artifacts/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ RUN mkdir -p "$ANDROID_HOME/cmdline-tools" && \
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses

# Install Maven
RUN curl -Ls https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.tar.gz | \
RUN curl -Ls https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz | \
tar xz -C /var/local
ENV PATH /var/local/apache-maven-3.3.9/bin:$PATH
ENV PATH /var/local/apache-maven-3.8.8/bin:$PATH
Loading