Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes #1290

Merged
merged 3 commits into from
Feb 1, 2023

Conversation

mpeddada1
Copy link
Contributor

@mpeddada1 mpeddada1 commented Feb 1, 2023

Build initialization of netty causes inconsistent behavior when an application is run locally versus on Cloud Run. One such case as discovered in https://github.com/mutianf/graalvm-test is when a bigtable application works fine with native image compilation locally but times out on Cloud Run.

More details:
Netty System.nanoTime() as a memoized static start_time variable when the native image is being built. System.nanoTime() is an arbitrary value and platform specific so when the start_time is compared against another System.nanoTime() at run time on the container, the comparison may not always be consistent. Netty is initialized at native image build time by default for netty 4.x but we can adjust this by setting --initialize-at-run-time=io.grpc.netty.shaded.io.netty in a META-INF/native-image/native-image.properties file.

Additionally, build time initialization of netty also causes build time issues when third party logging libraries like SLF4J are used:

Fatal error: com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing io.grpc.netty.shaded.io.netty.util.internal.SystemPropertyUtil.getBoolean(java.lang.String, boolean)
Parsing context:
   at io.grpc.netty.shaded.io.netty.util.internal.SystemPropertyUtil.getBoolean(SystemPropertyUtil.java:96)
   at io.grpc.netty.shaded.io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:33)
   at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:153)
...
java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: No instances of org.slf4j.jul.JDK14LoggerAdapter are allowed in the image heap as this class should be initialized at image runtime. To see how this object got instantiated use --trace-object-instantiation=org.slf4j.jul.JDK14LoggerAdapter.

It is important to note that this may result in a performance cost depending on the code path the application follows but given the persistence of these issues as a result of build-time netty initialization, run-time initialization of netty provides a more out-of-the-box experience.

@mpeddada1 mpeddada1 requested a review from a team as a code owner February 1, 2023 19:59
@mpeddada1 mpeddada1 added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Feb 1, 2023
@kokoro-team kokoro-team removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Feb 1, 2023
@mpeddada1
Copy link
Contributor Author

The downstream checks are failing due to:

Failed to execute goal on project google-cloud-kms: Could not resolve dependencies for project com.google.cloud:google-cloud-kms:jar:2.13.0-SNAPSHOT: Could not find artifact com.google.cloud:google-cloud-core:jar:2.9.5-SNAPSHOT in google-maven-central-copy (https://maven-central.storage-download.googleapis.com/maven2) -> [Help 1]
[ERROR] Failed to execute goal on project google-cloud-os-login: Could not resolve dependencies for project com.google.cloud:google-cloud-os-login:jar:2.9.0-SNAPSHOT: com.google.cloud:google-cloud-core:jar:2.9.5-SNAPSHOT was not found in https://maven-central.storage-download.googleapis.com/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of google-maven-central-copy has elapsed or updates are forced -> [Help 1]

@sonarcloud
Copy link

sonarcloud bot commented Feb 1, 2023

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@mpeddada1 mpeddada1 merged commit b7ca95f into main Feb 1, 2023
@mpeddada1 mpeddada1 deleted the fix-netty-issues branch February 1, 2023 22:03
lqiu96 pushed a commit that referenced this pull request Feb 23, 2023
…figurations for netty classes (#1290)

* fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes
lqiu96 added a commit that referenced this pull request Mar 10, 2023
* fix: Allow custom http bindings for LROs

* fix: Update generator and GAX to support custom HTTP Bindings for operations

* fix: Use static Map for custom Operation  REST Http Bindings

* chore: Update golden test cases

* chore: Update showcase tests

* chore: Update golden ITs

* chore: Add back origin HttpJsonOperationStub.create() methods

* fix(deps): update dependency com.google.auth:google-auth-library-bom to v1.15.0 (#1278)

* doc: Update DEVELOPMENT.md for local development. (#1237)

* chore: Create a default mapping in OperationStub

* chore: Do not generate custom bindings if there are none

* chore: Update golden units

* chore: Update all test cases

* chore: Fix format issues

* fix: remove constant operation binding field

* chore: Clean up code

* chore: Resolve sonar comments

* chore: DEVELOPMENT.md formatting fix (#1289)

* ci: use java-shared-dependencies in google-cloud-java repository for downstream test (#1291)

* ci: use java-shared-dependencies in google-cloud-java

* No need to modify google-cloud-jar-parent

* fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes (#1290)

* fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes

* ci(showcase): disable rest_numeric_enum for showcase testing (#1284)

* ci(showcase): disable rest_numeric_enum feature in showcase tests

* chore(main): release 2.15.0 (#1269)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* chore(main): release 2.15.1-SNAPSHOT (#1292)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* chore: Pin Bazel version to 5.2.0 (#1304)

Pin Bazel version to 5.2.0 as googleapis already updated to 5.2.0

* build(deps): bump cryptography from 38.0.3 to 39.0.1 in /.kokoro (#1297)

Bumps [cryptography](https://github.com/pyca/cryptography) from 38.0.3 to 39.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@38.0.3...39.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com>

* chore: (cleanup) removing unused files (#1265)

* chore: (cleanup) removing unused files

* chore: working on comments

* chore: removing unused Gradle files in api-common-java, gax-java, java-common-protos, and java-iam (#1305)

The build is Maven or Bazel. The Gradle files in the recently migrated repositories (api-common-java, gax-java, java-common-protos, and java-iam) are not used.

Note that this pull request is not touching rules_java_gapic/resources/gradle which is still used to generate Gradle files for self-service client libraries.

* chore: updated gax-java contribution doc (#1334)

Removing unnecessary files

* fix: use pkg_tar from rules_pkg (#1303)

* chore: Fix pre-commit. (#1294)

* chore: update CONTRIBUTING.md (#1346)

* fix(deps): update dependency io.grpc:grpc-bom to v1.53.0 (#1345)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [io.grpc:grpc-bom](https://github.com/grpc/grpc-java) | `1.52.1` -> `1.53.0` | [![age](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/compatibility-slim/1.52.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/confidence-slim/1.52.1)](https://docs.renovatebot.com/merge-confidence/) |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-java</summary>

### [`v1.53.0`](https://github.com/grpc/grpc-java/releases/tag/v1.53.0)

[Compare Source](https://github.com/grpc/grpc-java/compare/v1.52.1...v1.53.0)

##### New Features

-   googleapis: Allow user set c2p bootstrap config ([#&#8203;9856](https://github.com/grpc/grpc-java/issues/9856))
-   xds: Add contain and stringMatcher in `RouteConfiguration` ([#&#8203;9845](https://github.com/grpc/grpc-java/issues/9845))
-   core: Add `grpc-previous-rpc-attempts` to the initial response metadata ([#&#8203;9686](https://github.com/grpc/grpc-java/issues/9686))
-   servlet: Implement gRPC server as a Servlet ([#&#8203;8596](https://github.com/grpc/grpc-java/issues/8596))
-   authz: Implement static authorization server interceptor ([#&#8203;8934](https://github.com/grpc/grpc-java/issues/8934))

##### Examples

-   servlet: Add servlet example ([#&#8203;8596](https://github.com/grpc/grpc-java/issues/8596))

##### Bug Fixes

-   xds: Update xds error handling logic.  Specifically:
    -   When the ads stream is closed only send errors to subscribers that haven't yet gotten results
    -   Timers to detect missing resources don’t start until the adsStream is ready ([#&#8203;9745](https://github.com/grpc/grpc-java/issues/9745))
    -   Call subscriber onError callback when xds client fails to connect to server ([#&#8203;9827](https://github.com/grpc/grpc-java/issues/9827))
-   core: Delay retriable stream master listener close until all sub streams are closed. This fixes the call executor lifecycle and prevents potential `RejectedExecutionException`. ([#&#8203;9754](https://github.com/grpc/grpc-java/issues/9754))
-   core: Free unused `MessageProducer` in `RetriableStream` ([#&#8203;9853](https://github.com/grpc/grpc-java/issues/9853)), fixing a Netty buffer memory leak for cancelled RPCs
-   api: Fail with `NullPointerException` when a Metadata.Marshaller returns null bytes ([#&#8203;9781](https://github.com/grpc/grpc-java/issues/9781)). This would previously cause a `NullPointerException` later during the RPC. Now the return value of the Marshaller is checked immediately, to help find the broken Marshaller

##### Behavior Changes

-   xds: Disallow duplicate addresses in the RingHashLB. ([#&#8203;9776](https://github.com/grpc/grpc-java/issues/9776))
-   xds: EDS weight sums are allowed up to max unsigned int (was max signed int) ([#&#8203;9765](https://github.com/grpc/grpc-java/issues/9765))
-   xds: Drop xds v2 support ([#&#8203;9760](https://github.com/grpc/grpc-java/issues/9760))

##### Dependencies

-   JUnit upgraded to 4.13.2
-   bazel: Dropped support for Bazel 4. We track the two most recent major versions of Bazel, Bazel 5 and 6. Bazel 4 may still work, but we are no longer testing it
-   bazel: Include Tomcat annotations dependency for `@Generated` as used by autovalue ([#&#8203;9762](https://github.com/grpc/grpc-java/issues/9762)). Necessary for building xds and rls on Java 9+
-   bazel: Export deps from Maven Central-specific stand-in targets ([#&#8203;9780](https://github.com/grpc/grpc-java/issues/9780)). Some Maven Central artifacts are a combination of multiple Bazel targets, like grpc-core is composed of //core:inprocess, //core:internal, //core:util, //api. There is a “//core:core_maven” target used by maven_install that uses the other targets. Previously the target used `runtime_deps` to discourage their use by Bazel users, but that could cause compilation failures from lack of hjars. These targets now use `exports`

##### Acknowledgement

[@&#8203;cpovirk](https://github.com/cpovirk)
[@&#8203;niloc132](https://github.com/niloc132)
[@&#8203;stephenh](https://github.com/stephenh)
[@&#8203;olderwei](https://github.com/olderwei)
[@&#8203;pandaapo](https://github.com/pandaapo)
[@&#8203;panxuefeng](https://github.com/panxuefeng)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=-->

* chore(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.0 (#1340)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [org.apache.maven.plugins:maven-deploy-plugin](https://maven.apache.org/plugins/) | `3.0.0` -> `3.1.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/compatibility-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/confidence-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=-->

* chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.0.0-m9 (#1350)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/) | `3.0.0-M8` -> `3.0.0-M9` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/compatibility-slim/3.0.0-M8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/confidence-slim/3.0.0-M8)](https://docs.renovatebot.com/merge-confidence/) |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-java).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=-->

* chore: add rules_pkg to renovate bot ignoreDeps (#1349)

Following up on https://github.com/googleapis/gapic-generator-java/pull/1338, suppressing renovate PRs for the `rules_pkg` dependency since it will need to align with version used in googleapis.

* chore: fix renovate bot ignoreDeps (#1353)

Fixes #1352, from missed separator in #1349's changes.

* fix(batcher): exceptions in unaryCaller bubble up (#1166)

Co-authored-by: Blake Li <blakeli@google.com>

* fix(deps): update dependency com.google.auth:google-auth-library-bom to v1.16.0 (#1355)

* chore(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.5.0 (#1356)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [org.apache.maven.plugins:maven-javadoc-plugin](https://maven.apache.org/plugins/) | `3.4.1` -> `3.5.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/compatibility-slim/3.4.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/confidence-slim/3.4.1)](https://docs.renovatebot.com/merge-confidence/) |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-java).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=-->

* chore(main): release 2.15.1 (#1339)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Emily Wang <emmwang@google.com>

* chore: refactoring README and DEVELOPMENT.md (#1351)

Thank you for opening a Pull Request! For general contributing guidelines, please refer to [contributing guide](https://github.com/googleapis/gapic-generator-java/blob/main/CONTRIBUTING.md)


- The old file https://github.com/googleapis/gapic-generator-java/blob/main/gapic-generator-java/DEVELOPMENT.md was last touched in mid December. I'm replacing the content with the latest at the root.
- Removing the root DEVELOPMENT.md in favor of the file above.
- Adding index of the modules at the root README.md
- Moving showcase testing guide to showcase/README.md.

* chore(main): release 2.15.2-SNAPSHOT (#1358)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* chore: renovate to group Protobuf artifacts (#1362)

Copying packageGroup configuration from https://github.com/googleapis/synthtool/blob/master/synthtool/gcp/templates/java_library/renovate.json

This should avoid separate pull requests for Protobuf: https://github.com/googleapis/gapic-generator-java/pull/1155 and https://github.com/googleapis/gapic-generator-java/pull/1154

* chore: README.md to explain service_config.proto (#1361)

* chore: README.md to explain service_config.proto

* add link

* chore: Telling owlbot to ignore these files & it's a monorepo (#1372)

* chore: Telling owlbot to ignore these files & it's a monorepo

* fix: Change the default scope of gax from implementation to api in auto-generated gradle files for self-service client libraries. (#1374)

* chore: Update variable name

* chore: Fix format issues

* fix: Use HttpRule as Value for Custom Bindings

* fix: Use HttpRule as Value for Custom Bindings

* chore: Add comments

* chore: Update tests

* fix(deps): update dependency com.google.auth:google-auth-library-bom to v1.15.0 (#1278)

* doc: Update DEVELOPMENT.md for local development. (#1237)

* chore: Add tests

* chore: Cleanup files

* chore: Format the files

* chore: Add NoCredentialsProvider

* chore: Fix sonar comments

* chore: Add serviceyaml file for parsing for rest showcase tests

* chore: Use service yaml file in test

* chore: Fix Echo showcase test

* chore: Clean up tests

* chore: Sort the map entry to get a consistent ordering for the test

* chore: Update showcase and integration tests

* chore: Resolve sonar comments

* chore: Update comments

* chore: Remove a few public constructors

* chore: test ci

* chore: Remove the cache for java 8

* chore: Update from PR feedback

* chore: Update comments

* chore: Fix sonar issue

* chore: Fix comment

* chore: Update to have multiple additional_bindings

* chore: Update grpcrest golden test to include httprule

* chore: HttpJsonOperationsStub's MethodDescriptors are not static

* chore: Add unit tests for HttpJson Operations logic

* chore: Resolve lint issues

* chore: Clean up test code

* chore: Resolve pr comments

* chore: Add VisibleForTesting annotation

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: Blake Li <blakeli@google.com>
Co-authored-by: Mike Eltsufin <meltsufin@google.com>
Co-authored-by: Tomo Suzuki <suztomo@gmail.com>
Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Deepankar Dixit <90280028+ddixit14@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Co-authored-by: Joe Wang <106995533+JoeWang1127@users.noreply.github.com>
Co-authored-by: Emily Wang <emmwang@google.com>
Co-authored-by: Diego Alonso Marquez Palacios <diegomarquezp@google.com>
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.

4 participants