Skip to content

fix(internal/serviceconfig): enable Firestore library generation for Java#5967

Merged
sofisl merged 41 commits into
mainfrom
addGapicArtifactId
May 14, 2026
Merged

fix(internal/serviceconfig): enable Firestore library generation for Java#5967
sofisl merged 41 commits into
mainfrom
addGapicArtifactId

Conversation

@sofisl
Copy link
Copy Markdown
Contributor

@sofisl sofisl commented May 12, 2026

Support for generating the Cloud Firestore client library in Java is added by allowing Java generation for the google/firestore/bundle API path in the SDK service configuration.

Fixes #5958

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enables Java support for Firestore bundles and admin APIs within the migration tool. Key changes include updating the SDK configuration to include Java for Firestore bundles, adding specific artifact ID overrides for Firestore admin and bundle paths, and introducing a samples field to the Java artifact override structure. Additionally, Firestore is added to the list of services for which POM updates are skipped. I have no feedback to provide as there were no review comments.

@sofisl sofisl marked this pull request as ready for review May 12, 2026 02:38
@sofisl sofisl requested a review from a team as a code owner May 12, 2026 02:38
@sofisl sofisl changed the title feat(internal/serviceconfig): enable Firestore library generation for Java fix(internal/serviceconfig): enable Firestore library generation for Java May 12, 2026
Comment thread tool/cmd/migrate/java_module.go Outdated
noahdietz and others added 22 commits May 14, 2026 18:58
…ackage subdirectories (#5965)

When running `librarian generate --all` or concurrent generations in
parallel async threads, the Go engine's Node.js post-processor executed
a
 sweeping `os.RemoveAll` cleanup on the shared top-level `owl-bot-
 staging/` folder. This pulled the directory out from underneath other
active parallel compilation processes, leading to random `No such file
or
 directory` crashes.

 This patch isolates the post-processor cleanup to package-specific
 subdirectories (`owl-bot-staging/<package_name>`), eliminating the
 parallel staging deletion race condition.


Closes #5957
#5966)

This pull request updates the central allowed-languages configuration
  to authorize Node.js generation natively for the following released
  packages:
    1. `google-maps-geocode`
    2. `google-cloud-databasecenter`

 Both packages have released versions inside the monorepo, but code
 generation was previously blocked because `nodejs` was omitted from the
 allowed languages list inside `internal/serviceconfig/sdk.yaml`.

Closes #5951
Dockerfile does not need args for versions of python packages. These
were removed in #5694 but only from the top-level; they are now removed
from the python stage as well.
… proto module and copy (#5903)

Introduce a config `additional_protos_to_generate_and_copy` to fulfill
generation of os-login. This is different from the existing
`additional_protos` used for mixed-ins, in additional to be included in
gapic generation phase, this needs to be included in proto generation
phase and proto copy.

Fix #5685
…5973)

The version of gapic-generator in the embedded librarian.yaml (used by
librarian install) is updated to v1.32.0. This will update the generated
code and documentation in terms of supported Python versions, and will
unblock dialogflow generation.
We want every method to have an overload consuming the `RequestOptions`
parameter. That parameter will be used to override the default retry
policies, timeouts, and other configuration set at the client level.
…gtable (#5977)

Set artifact id overrides for "google/bigtable/admin/v2" and no sample
for bigtable.
These are inferred from copy rules in
[java-bigtable/.OwlBot-hermetic.yaml](https://github.com/googleapis/google-cloud-java/blob/main/java-bigtable/.OwlBot-hermetic.yaml).

For #5740
…t transport to grpc (#5978)

Add java to allowed languages for API path google/bigtable/v2, and set
transport to grpc to match existing code in google-cloud-java code.

For #5740
…_pom_updates (#5948)

When skip_pom_updates is true, identify missing modules step should
return nil, so that no new entries to versions.txt are added. This was
missed in original #5660. This check centralized inside
`discoverModules`.

`IdentifyMissingModules` takes in srcs instead of googleapisDir to
correctly process showcase.

For #5731
…s in excluded_poms (#5950)

Module discovery filters out artifacts in excluded_poms, so they are
excluded in update pom.xml and identifying new modules. Updated
`excluded_poms` from comma separated string to list of strings and
updated doc comments.

Fix #5277
…try (#5976)

The config is restructured to embed Java-specific API settings directly
inside each API entry. Previously, the configuration required
duplicating the same API path in both the general APIs list and the
Java-specific APIs list. Moving the Java configuration under the API
struct eliminates this duplication and prevents configuration drift.

Additionally, the configuration tidy logic now automatically cleans up
any empty Java configurations to maintain a minimal file output.

Fix #5974
The bump, tag, and publish commands are not supported, except for some
cases for Rust. Hide them from the help text to avoid confusion.
…arian.yaml (#5975)

This PR restructures Go configuration in `librarian.yaml` to support
nesting `API.Go` under `apis` entries.

Fixes #5471

---------

Signed-off-by: Tomo Suzuki <suztomo@gmail.com>
…e names (#5980)

This pull request refactors the Node.js migration engine in
`tool/cmd/migrate/nodejs.go` to stop inferring API paths from npm
package names.

Updates #5970
noahdietz and others added 13 commits May 14, 2026 18:58
…5986)

Bumps
[github.com/go-git/go-billy/v5](https://github.com/go-git/go-billy) from
5.8.0 to 5.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-git/go-billy/releases">github.com/go-git/go-billy/v5's
releases</a>.</em></p>
<blockquote>
<h2>v5.9.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Use path.Clean instead of filepath.Clean in iofs.Open by <a
href="https://github.com/puerco"><code>@​puerco</code></a> in <a
href="https://redirect.github.com/go-git/go-billy/pull/197">go-git/go-billy#197</a></li>
<li>Deprecate ChrootOS in favour of BoundOS by <a
href="https://github.com/pjbgf"><code>@​pjbgf</code></a> in <a
href="https://redirect.github.com/go-git/go-billy/pull/201">go-git/go-billy#201</a></li>
<li>General Improvements by <a
href="https://github.com/pjbgf"><code>@​pjbgf</code></a> in <a
href="https://redirect.github.com/go-git/go-billy/pull/203">go-git/go-billy#203</a></li>
<li>osfs: ChrootOS eval baseDir on creation by <a
href="https://github.com/pjbgf"><code>@​pjbgf</code></a> in <a
href="https://redirect.github.com/go-git/go-billy/pull/205">go-git/go-billy#205</a></li>
<li>Run go-git tests as part of integration tests by <a
href="https://github.com/pjbgf"><code>@​pjbgf</code></a> in <a
href="https://redirect.github.com/go-git/go-billy/pull/206">go-git/go-billy#206</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-git/go-billy/compare/v5.8.0...v5.9.0">https://github.com/go-git/go-billy/compare/v5.8.0...v5.9.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-git/go-billy/commit/237e529bb8de61704047f71a5ab1c8e6676492f1"><code>237e529</code></a>
Merge pull request <a
href="https://redirect.github.com/go-git/go-billy/issues/206">#206</a>
from pjbgf/v5-improvements</li>
<li><a
href="https://github.com/go-git/go-billy/commit/04edb394b39979b5cbdec30ded6abdcb9f7786c5"><code>04edb39</code></a>
build: Add go-git integration test</li>
<li><a
href="https://github.com/go-git/go-billy/commit/d8efefd33b2e8eeea1030e317bb0d71c5e918270"><code>d8efefd</code></a>
osfs: preserve empty ChrootOS base</li>
<li><a
href="https://github.com/go-git/go-billy/commit/07f2a0bf50e42d438d1d9d263c3c8a22598985b8"><code>07f2a0b</code></a>
Merge pull request <a
href="https://redirect.github.com/go-git/go-billy/issues/205">#205</a>
from pjbgf/v5-improvements</li>
<li><a
href="https://github.com/go-git/go-billy/commit/25207c8468f1af656953cb5db7030aad5df1fe99"><code>25207c8</code></a>
build: Bump Go versions in workflows</li>
<li><a
href="https://github.com/go-git/go-billy/commit/2fda229d9ac0cb5ba654ebc824cfbb90248f82d9"><code>2fda229</code></a>
osfs: ChrootOS eval baseDir on creation</li>
<li><a
href="https://github.com/go-git/go-billy/commit/427b27f32f22de11498a682c65cd5060a01ec168"><code>427b27f</code></a>
Merge pull request <a
href="https://redirect.github.com/go-git/go-billy/issues/203">#203</a>
from pjbgf/v5-improvements</li>
<li><a
href="https://github.com/go-git/go-billy/commit/7d5a23ece03edc171c1f63c8fa73f84c8428bf17"><code>7d5a23e</code></a>
chroot: Reject symlink loops</li>
<li><a
href="https://github.com/go-git/go-billy/commit/2c2287a233d2ee1e6cdce8956141f6d10505f3bf"><code>2c2287a</code></a>
util: avoid following symlinks in RemoveAll fallback</li>
<li><a
href="https://github.com/go-git/go-billy/commit/cbd88e9a9a2d7fe1065bbe083d8bf0c5fd7290de"><code>cbd88e9</code></a>
Fix mount path handling</li>
<li>Additional commits viewable in <a
href="https://github.com/go-git/go-billy/compare/v5.8.0...v5.9.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-git/go-billy/v5&package-manager=go_modules&previous-version=5.8.0&new-version=5.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/googleapis/librarian/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Julie Qiu <julieqiu@google.com>
…5947)

[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git)
from 5.18.0 to 5.19.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v5's
releases</a>.</em></p>
<blockquote>
<h2>v5.19.0</h2>
<h2>What's Changed</h2>
<ul>
<li>build: Update module github.com/go-git/go-git/v5 to v5.18.0
[SECURITY] (releases/v5.x) by <a
href="https://github.com/go-git-renovate"><code>@​go-git-renovate</code></a>[bot]
in <a
href="https://redirect.github.com/go-git/go-git/pull/2010">go-git/go-git#2010</a></li>
<li>v5: Bump sha1cd and go-billy by <a
href="https://github.com/pjbgf"><code>@​pjbgf</code></a> in <a
href="https://redirect.github.com/go-git/go-git/pull/2060">go-git/go-git#2060</a></li>
<li>v5: Align object encoding with upstream by <a
href="https://github.com/pjbgf"><code>@​pjbgf</code></a> in <a
href="https://redirect.github.com/go-git/go-git/pull/2065">go-git/go-git#2065</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-git/go-git/compare/v5.18.0...v5.19.0">https://github.com/go-git/go-git/compare/v5.18.0...v5.19.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-git/go-git/commit/bc930f4cbe095a3e1d49273655f73fcef7d41a42"><code>bc930f4</code></a>
Merge pull request <a
href="https://redirect.github.com/go-git/go-git/issues/2065">#2065</a>
from go-git/commit-v5</li>
<li><a
href="https://github.com/go-git/go-git/commit/d315264343cead712aa9eb56475c2ec96f5ecef1"><code>d315264</code></a>
plumbing: object, Reset object before decode</li>
<li><a
href="https://github.com/go-git/go-git/commit/6e1d34890a4dae8a0df738e531234bd60b7e9b66"><code>6e1d348</code></a>
plumbing: object, Align Tree handling with upstream</li>
<li><a
href="https://github.com/go-git/go-git/commit/e134ba34cf95ed0167e5b1df36a933d7bde9d02d"><code>e134ba3</code></a>
tests: Skip double checks in Git v2.11</li>
<li><a
href="https://github.com/go-git/go-git/commit/1971422f6b1bec9176061b3293306981cfff981e"><code>1971422</code></a>
tests: Add git conformance tests for signing verification</li>
<li><a
href="https://github.com/go-git/go-git/commit/a387aa8857a8fbba8e74b7f5485e9e030669ab5d"><code>a387aa8</code></a>
plumbing: object, Add ErrMalformedTag</li>
<li><a
href="https://github.com/go-git/go-git/commit/f415670d906b5c6169d1fdc64f3f9f1d33eb6f9c"><code>f415670</code></a>
plumbing: object, Decode Tag headers via a state machine</li>
<li><a
href="https://github.com/go-git/go-git/commit/5b0cd38a62e2336bb5f1a2ad0eb8ac8f9e7b740e"><code>5b0cd38</code></a>
plumbing: object, Reject multi-signature commits at Verify</li>
<li><a
href="https://github.com/go-git/go-git/commit/fe8ed6223a6079d9fd84d853362a996e7df175fb"><code>fe8ed62</code></a>
plumbing: object, Align Tag.EncodeWithoutSignature with Commit</li>
<li><a
href="https://github.com/go-git/go-git/commit/98e337d5bdc4c0536a40ab7381b2231f7e0b15cd"><code>98e337d</code></a>
plumbing: object, Add support for Tag.SignatureSHA256</li>
<li>Additional commits viewable in <a
href="https://github.com/go-git/go-git/compare/v5.18.0...v5.19.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-git/go-git/v5&package-manager=go_modules&previous-version=5.18.0&new-version=5.19.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/googleapis/librarian/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The Dockerfile now uses v33.2 of protoc for nodejs. This does not change
the generated output at all.

Fixes #5284
NodeJS libraries do not derive API paths from the library name. The
library name doesn't include a variant (v1beta, v1 etc) so it's
unsuitable for deriving an API path.

Handwritten libraries can be represented by simply omitting API paths,
as is already the case for Go and Python.

Fixes #5970
…leapis (#5995)

gapic-generator-typescript is executed with googleapis as the working
directory, so that all the files referred to in command-line arguments
can be relative rather than absolute. This makes it much simpler to read
the verbose output.

Fixes #5968
…Is (#5996)

google/cloud/osconfig/v1beta and
google/cloud/bigquery/connection/v1beta1 are currently generated for
NodeJS, so need to be allow-listed in librarian.
The paginated overloads for RPCs should be included in the service's
protocol functions.

Note: a protocol return type within a protocol MUST be `any` because
there is no way for the compiler to infer the return type. This also
means that the implementation cannot specify `some` because it does not
match the function signature.
…paths (#5998)

The "librarian add" command is updated to add a new API path to an
existing library for nodejs when the new path matches a path in that
library, modulo the version at the end.

More subtelty may be needed later, but this will handle simple
situations as well as putting in place the framework for later logic to
fit into.

Towards #5971
)

Co-authored-by: Santiago Quiroga <22756465+quirogas@users.noreply.github.com>
…rary (#5905)

Ensures that when a new Java client library is generated for the first
time, the post-processor dynamically templates and writes `owlbot.py` if
it is missing from the output directory. This aligns Librarian with the
legacy Python hermetic build's prerequisite setup and prevents
"owlbot.py not found" errors.

Fixes #5679
@sofisl sofisl requested a review from a team as a code owner May 14, 2026 19:09
Signed-off-by: sofisl <55454395+sofisl@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@zhumin8 zhumin8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting that all unrelated commits are showing up. But it should not matter as we do squash merge.

@sofisl sofisl merged commit bca6e37 into main May 14, 2026
44 checks passed
@sofisl sofisl deleted the addGapicArtifactId branch May 14, 2026 21:00
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.

java: unblock firestore generation for post-processing

9 participants