Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
5c30370
chore(main): release 1.85.0-SNAPSHOT (#12786)
diegomarquezp Apr 13, 2026
d40a85b
ci: replace java-logging with java-pubsub in downstream check (#12783)
blakeli0 Apr 14, 2026
4a427ea
ci: remove redundant sdk-platform-java from split-units (#12784)
blakeli0 Apr 14, 2026
fabe31c
chore(main): release 1.85.0 (#12788)
diegomarquezp Apr 14, 2026
f4ddb3c
ci: trigger split repo tests on auth, gax, and shared-deps changes (#…
lqiu96 Apr 14, 2026
ac69c8d
fix(bqjdbc): Revert DatabaseMetaData field to be non-static in BigQue…
Neenu1995 Apr 14, 2026
c3f13a6
chore(deps): update upper bound dependencies file (#12706)
renovate-bot Apr 14, 2026
8e6ba36
fix: correct build directory paths in graalvm cloudbuild.yaml (#12794)
diegomarquezp Apr 14, 2026
463c68e
ci: skip bulk tests for isolated handwritten library changes (#12793)
lqiu96 Apr 14, 2026
4bed8fd
fix(datastore): Create a plaintext gRPC transport channel when using …
mw-ship-it Apr 14, 2026
7f2ad61
test(bigquery): Fix flaky ITBigQueryTest#testOpenTelemetryTracingQuer…
jinseopkim0 Apr 14, 2026
fb0f133
chore(main): release 1.86.0-SNAPSHOT (#12799)
diegomarquezp Apr 14, 2026
1b0a9a0
Revert "chore(main): release 1.86.0-SNAPSHOT" (#12800)
diegomarquezp Apr 14, 2026
531942b
chore: Update generation configuration at Tue Apr 14 03:00:42 UTC 202…
cloud-java-bot Apr 14, 2026
b4c109a
build(appoptimize): fix owlbot.py format (#12802)
chingor13 Apr 14, 2026
5208fc9
fix: bump vectorsearch to 0.13.0 for partial release (#12805)
diegomarquezp Apr 14, 2026
dce372c
chore: Add a Java development skill for the monorepo (#12797)
lqiu96 Apr 15, 2026
f62742c
ci: fix library generation presubmit (#12803)
chingor13 Apr 15, 2026
16312ec
ci: restore sdk-platform-java jobs (#12813)
diegomarquezp Apr 15, 2026
d44fe7a
build: create additional tags on release (#12811)
chingor13 Apr 15, 2026
bea5acd
ci: fix unmanaged_dependency_check module install (#12812)
chingor13 Apr 15, 2026
7c0bfa4
chore: rm template from issue_tracker in config and repometadata (#12…
zhumin8 Apr 15, 2026
3167347
build: use local google-auth-library in bazel tests (#12814)
chingor13 Apr 15, 2026
502b807
chore: downgrade gapic-libraries-bom to 1.85.0 (#12808)
blakeli0 Apr 15, 2026
4e3fef1
test(spanner): add a mock server test using key-aware routing (#12755)
olavloite Apr 16, 2026
5c821a3
perf(spanner): use StringBuilder for generating RequestId (#12809)
olavloite Apr 16, 2026
3750661
chore: replace non-ASCII characters in api_description (#12795)
zhumin8 Apr 16, 2026
8095342
ci: stop using Google's Maven mirror in downstream checks (#12826)
suztomo Apr 16, 2026
64e7c9e
ci: update sdk-platform-java templates and tests for monorepo migrati…
suztomo Apr 17, 2026
11bebcf
ci: fix dependency-compatibility check (#12837)
chingor13 Apr 17, 2026
4f2e50a
refactor: move iam-policy code to java-iam-policy folder (#12834)
chingor13 Apr 17, 2026
3a352fe
build: update Sonar tokens and project keys in workflow (#12835)
meltsufin Apr 18, 2026
2e59776
build: add cab-token-generator to always install deps (#12851)
meltsufin Apr 20, 2026
351c57a
test: prevent root versions.txt from affecting postprocessor test fix…
meltsufin Apr 20, 2026
dea45de
build: add missing install step to Java 8 CI job (#12852)
meltsufin Apr 20, 2026
decbfcf
ci: hermetic build action version to use shared-dependencies verson (…
suztomo Apr 20, 2026
f5f273b
feat(spanner): add shared endpoint cooldowns for location-aware rerou…
rahul2393 Apr 20, 2026
e7acf44
ci: fix dorny/paths-filter to a revision (#12857)
suztomo Apr 20, 2026
4e566af
ci(generation): skip files inheriting coordinates in release check (#…
meltsufin Apr 20, 2026
0b6a924
test(bigquery): improve assertion in testLocationFastSQLQueryWithJobI…
jinseopkim0 Apr 20, 2026
b974740
fix: Update renovate config check template to use npx (#12865)
suztomo Apr 20, 2026
c9fcb6b
feat(auth): Introduce Regional Access Boundaries for GoogleCredential…
vverman Apr 19, 2026
4f2ea77
Regional Access Boundaries
vverman Apr 10, 2026
064dad0
chore: Migrate Regional Access Boundaries.
vverman Apr 13, 2026
753cbbb
Lint fixes.
vverman Apr 14, 2026
94b613e
Compilation error fixes.
vverman Apr 14, 2026
2e1ca52
Lint fixes.
vverman Apr 14, 2026
b447eb9
Using executor; RAB refresh not gated by env var; other fixes.
vverman Apr 20, 2026
9d85619
Removed duplicates tests.
vverman Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
67 changes: 67 additions & 0 deletions .agents/skills/java-development/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
name: java-development
description: General guidance on Java development practices, building, testing, and style in the monorepo. Use this skill when working on Java code across the repository.
---

# Java Development Guide

This skill provides general guidelines for Java development inside the monorepo. It covers building, formatting, testing, and style conventions to ensure consistency across modules.

## Workflow

### 1. Building the Project

The repository uses Maven as its primary build system.

* **Build All Modules**: To build all modules from the root of the repository, run:
```bash
mvn install -T 1C -P quick-build
```
> [!TIP]
> Use `-T 1C` to build modules in parallel (one thread per CPU core) and `-P quick-build` to skip unnecessary plugins for faster builds.
* **Build a Specific Module**: You can also run Maven commands within a specific module directory (e.g., `java-bigquery`) to build only that module.

### 2. Code Formatting

Code formatting is enforced using the `fmt-maven-plugin`.

* **Check Formatting**: To check for formatting issues without modifying files, run:
```bash
mvn fmt:check -T 1C
```
* **Apply Formatting**: To automatically format the code according to the project style, run:
```bash
mvn fmt:format -T 1C
```
> [!TIP]
> To save time, run `mvn fmt:format` within the specific module directory you are working on, rather than at the root.
> [!NOTE]
> Always run `mvn fmt:format` before committing changes to avoid build failures due to formatting.

### 3. Testing Strategy

* **Unit Tests**: Traditional unit tests should be added for individual classes and methods. Run them using:
```bash
mvn test -T 1C
```
* **Integration Tests**: Many modules have integration tests that run against live services or emulators. These may require specific profiles or environment variables. Refer to the specific module's README for details.

### 4. Style Guide

Follow these general rules to maintain code quality and consistency:

1. **Minimize Visibility**: Default to the most restrictive access level possible. Avoid using `public` unless the class or method is intended to be part of the public API.
2. Avoid Fully Qualified Names: Use imports to keep class names short and readable, rather than using fully qualified names in the code.
3. **Avoid Obsolete APIs**: Do not call methods marked with `@ObsoleteApi` or `@Deprecated` unless there are no viable alternatives.
4. **Clean Diffs**: Avoid unnecessary formatting changes or whitespace modifications to keep diffs clean and easy to review.

### 5. Dependency Management

* **Version Bumps**: Try not to bump any external dependency versions unless there is a known security vulnerability (CVE) or a critical bug fix.
* **New Dependencies**: Avoid introducing new external dependencies. If a new dependency is required, provide a strong justification in the pull request.
* **Standard Library First**: Prefer to use features from the Java standard library, followed by existing dependencies in the project (preferably Google-managed dependencies).

### 6. Contribution Guidelines

* **Commit Messages**: Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification. Include the module as the scope (e.g., `feat(spanner): ...`, `fix(bigquery): ...`).
* **Pull Requests**: All code changes must be submitted via a pull request and require review. Ensure you pull the latest changes from `main` and resolve any conflicts before submitting.
68 changes: 58 additions & 10 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
ci: ${{ steps.filter.outputs.ci }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
# we want to run tests if source code is changed or the scripts
Expand All @@ -40,6 +40,14 @@ jobs:
src:
- '**/*.java'
- '**/pom.xml'
- '!java-bigquery/**'
- '!java-bigquerystorage/**'
- '!java-datastore/**'
- '!java-logging-logback/**'
- '!java-logging/**'
- '!java-spanner/**'
- '!java-storage/**'
- '!google-auth-library-java/**'
ci:
- '.github/workflows/ci.yaml'
- '.kokoro/**'
Expand Down Expand Up @@ -113,18 +121,58 @@ jobs:
outputs:
packages: ${{ steps.filter.outputs.changes }}
steps:
- uses: dorny/paths-filter@v4
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
# For each library, run CI in split repos where there are changes in:
# 1. Changes inside the split repo's module
# 2. Java code changes in upstream modules: Auth Library and Sdk-Platform-Java
# 3. Upstream dependency version changes: Shared-Deps and Gapic-Generator-Pom-Parent
filters: |
java-bigquery: java-bigquery/**
java-bigquerystorage: java-bigquerystorage/**
java-datastore: java-datastore/**
java-logging-logback: java-logging-logback/**
java-logging: java-logging/**
java-spanner: java-spanner/**
java-storage: java-storage/**
sdk-platform-java: sdk-platform-java/**
google-auth-library-java:
- 'google-auth-library-java/**'
java-bigquery:
- 'java-bigquery/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
java-bigquerystorage:
- 'java-bigquerystorage/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
java-datastore:
- 'java-datastore/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
java-logging-logback:
- 'java-logging-logback/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
java-logging:
- 'java-logging/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
java-spanner:
- 'java-spanner/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
java-storage:
- 'java-storage/**'
- 'google-auth-library-java/**/*.java'
- 'sdk-platform-java/**/*.java'
- 'sdk-platform-java/java-shared-dependencies/**/pom.xml'
- 'sdk-platform-java/gapic-generator-java-pom-parent/pom.xml'
split-units:
runs-on: ubuntu-latest
needs: changes
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,11 @@
name: sdk-platform-java Create additional tags for each release
name: Create additional tags for each release

on:
release:
types: [published]
workflow_dispatch:

env:
BUILD_SUBDIR: sdk-platform-java
jobs:
filter:
runs-on: ubuntu-latest
outputs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
library:
- 'sdk-platform-java/**'
build:
needs: filter
if: ${{ needs.filter.outputs.library == 'true' }}
runs-on: ubuntu-latest
permissions:
# Permission to create tag
Expand All @@ -32,7 +15,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }}
- name: Set up Git
run: |
git config --local user.email "action@github.com"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generated_files_sync.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
pull_request:
name: generation diff
env:
library_generation_image_tag: 2.70.0 # {x-version-update:gapic-generator-java:current}
library_generation_image_tag: 2.71.0 # {x-version-update:gapic-generator-java:current}
jobs:
root-pom:
# root pom.xml does not have diff from generated one
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/google-auth-library-java-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hermetic_library_generation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ jobs:
head_ref: ${{ github.head_ref }}
token: ${{ secrets.CLOUD_JAVA_BOT_GITHUB_TOKEN }}
force_regenerate_all: ${{ github.event.pull_request.head.ref == 'generate-libraries-main' }}
image_tag: 2.70.0 # {x-version-update:gapic-generator-java:current}
image_tag: 2.71.0 # {x-version-update:gapic-generator-java:current}
2 changes: 1 addition & 1 deletion .github/workflows/java-bigquery-scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/java-spanner-jdbc-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/java-spanner-jdbc-quickperf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/java-spanner-jdbc-sample-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/java-storage-nio-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
13 changes: 10 additions & 3 deletions .github/workflows/sdk-platform-java-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
library:
- 'sdk-platform-java/**'
- 'google-auth-library-java/**'
- '.github/workflows/ci.yaml'
build:
needs: filter
if: ${{ needs.filter.outputs.library == 'true' }}
Expand Down Expand Up @@ -179,7 +180,13 @@ jobs:
with:
java-version: 17
distribution: temurin
- name: Compile with Java 17 and run tests with Java 8
- name: Install all modules using Java 17
shell: bash
run: .kokoro/build.sh
env:
BUILD_SUBDIR: sdk-platform-java
JOB_TYPE: install
- name: Run tests with Java 8
shell: bash
run: |
set -x
Expand All @@ -191,7 +198,7 @@ jobs:
-Djvm="${JAVA8_HOME}/bin/java"
working-directory: sdk-platform-java
# The `envVarTest` profile runs tests that require an environment variable
- name: Compile with Java 17 and run tests with Java 8 (Env Var Tests)
- name: Run tests with Java 8 (Env Var Tests)
shell: bash
run: |
set -x
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/sdk-platform-java-downstream.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
library:
- 'sdk-platform-java/**'
- .kokoro/downstream-compatibility.sh
downstream-compatibility:
needs: filter
if: ${{ needs.filter.outputs.library == 'true' }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
library: ${{ steps.filter.outputs.library }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
Expand All @@ -33,7 +33,7 @@ jobs:
repo:
- java-bigtable
- java-firestore
- java-logging
- java-pubsub
steps:
- name: Checkout sdk-platform-java
uses: actions/checkout@v3
Expand Down
Loading