Skip to content

fix(internal/librarian): preserve maven and protoc configuration during tidy - #6702

Merged
JoeWang1127 merged 2 commits into
mainfrom
chore/tidy-test
Jul 8, 2026
Merged

fix(internal/librarian): preserve maven and protoc configuration during tidy#6702
JoeWang1127 merged 2 commits into
mainfrom
chore/tidy-test

Conversation

@JoeWang1127

@JoeWang1127 JoeWang1127 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Ensure that librarian tidy does not remove the tools section from a configuration file when only maven or protoc is defined under tools.

Previously, isToolsEmpty only checked for Cargo, PNPM, Pip, and Go tool definitions, treating a tools section containing only a protoc configuration as empty and stripping it.

For #6558

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

Copy link
Copy Markdown
Contributor

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 updates the isToolsEmpty function to check if tools.Protoc is nil, preventing protoc configurations from being incorrectly stripped during the tidy process. It also refactors the associated tests to use cmp.Diff for more robust assertions and adds a test case verifying that protoc configurations are preserved. The reviewer noted that isToolsEmpty is also missing a check for tools.Maven, which could lead to Maven configurations being incorrectly stripped, and provided a code suggestion to include it.

Comment thread internal/librarian/tidy.go
@JoeWang1127
JoeWang1127 marked this pull request as ready for review July 8, 2026 16:00
@JoeWang1127
JoeWang1127 requested a review from a team as a code owner July 8, 2026 16:00
@JoeWang1127
JoeWang1127 requested a review from zhumin8 July 8, 2026 16:01
Comment thread internal/librarian/tidy.go
@JoeWang1127 JoeWang1127 changed the title fix(internal/librarian): preserve protoc configuration during tidy fix(internal/librarian): preserve maven and protoc configuration during tidy Jul 8, 2026
@JoeWang1127
JoeWang1127 enabled auto-merge (squash) July 8, 2026 16:06
@JoeWang1127
JoeWang1127 merged commit b439528 into main Jul 8, 2026
56 of 58 checks passed
@JoeWang1127
JoeWang1127 deleted the chore/tidy-test branch July 8, 2026 16:06
sofisl pushed a commit to sofisl/librarian that referenced this pull request Jul 8, 2026
…ng tidy (googleapis#6702)

Ensure that librarian tidy does not remove the tools section from a
configuration file when only maven or protoc is defined under tools.

Previously, `isToolsEmpty` only checked for Cargo, PNPM, Pip, and Go
tool definitions, treating a tools section containing only a protoc
configuration as empty and stripping it.

For googleapis#6558
noahdietz pushed a commit that referenced this pull request Jul 13, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.26.0](v0.25.0...v0.26.0)
(2026-07-13)


### Features

* **internal/gem:** add gem package to install Ruby gem tools
([#6724](#6724))
([40ba6df](40ba6df))
* **internal/librarian/java:** add ApplyMoveActionsToLibrary helper and
unit tests
([#6731](#6731))
([f25bd33](f25bd33))
* **internal/librarian/java:** add RestructureToLibrary helper and unit
tests ([#6757](#6757))
([b2ff68c](b2ff68c)),
closes [#6516](#6516)
* **internal/librarian/java:** add ToKeepSet helper and unit tests
([#6730](#6730))
([df99304](df99304)),
closes [#6516](#6516)
* **internal/librarian/java:** integrate native Go postprocessor into
Java generator
([#6768](#6768))
([074059d](074059d)),
closes [#6516](#6516)
* **internal/librarian/java:** mark legacy postprocessing for
deprecation
([#6716](#6716))
([78a4ab6](78a4ab6)),
closes [#6516](#6516)
* **internal/librarian/nodejs:** use cache and bin directories for
nodejs install
([#6680](#6680))
([7f88869](7f88869))
* **internal/librarian/php:** add inital PHP client library generator
([#6703](#6703))
([9a45ab1](9a45ab1))
* **internal/librarian/php:** add tool installation directory helpers
([#6717](#6717))
([9cdf0b5](9cdf0b5)),
closes [#6630](#6630)
* **internal/librarian/ruby:** support installing Ruby gem dependencies
([#6751](#6751))
([bbce2c4](bbce2c4)),
closes [#6634](#6634)
* **internal/librarian:** add ruby tools directory to env output
([#6781](#6781))
([c220d71](c220d71))
* **internal/postprocessing:** add Apply pipeline runner and tests
([#6714](#6714))
([5cb8f66](5cb8f66)),
closes [#6516](#6516)
* **internal/postprocessing:** add ApplyMethodOperations batch runner
and tests ([#6698](#6698))
([8377d53](8377d53)),
closes [#6516](#6516)
* **internal/postprocessing:** add applyToFiles and RemoveFiles
([#6673](#6673))
([2f4b437](2f4b437)),
closes [#6516](#6516)
* **internal/postprocessing:** add CopyFiles batch runner and tests
([#6686](#6686))
([20c3a1a](20c3a1a))
* **internal/postprocessing:** add ReplaceAll and ReplaceRegexAll batch
runners and tests
([#6688](#6688))
([bb18f06](bb18f06))
* **internal/protoc:** add protoc installation and use installed
`protoc` in Java generation
([#6622](#6622))
([00ee24d](00ee24d))
* **internal/protoc:** add Run function
([#6699](#6699))
([cd8a1d4](cd8a1d4)),
closes [#6558](#6558)
* **internal/serviceconfig:** allowlist API paths for php
([#6789](#6789))
([7907686](7907686)),
closes [#6629](#6629)
* **internal/tool/gem:** verify input directories and tools before
installation
([#6778](#6778))
([3086d63](3086d63))
* **java:** append versions.txt on add
([#6653](#6653))
([9e9e645](9e9e645))
* **librarian/internal/config:** add php config
([#6701](#6701))
([939ae6f](939ae6f))
* **migrate:** discover and list PHP libraries during migration
([#6728](#6728))
([e552b89](e552b89))
* **sidekick/parser:** correct LRO poller service
([#6704](#6704))
([1d4b2d1](1d4b2d1))
* **sidekick/rust:** remove unstable gate for LRO tracing
([#6459](#6459))
([8266ce3](8266ce3))
* **sidekick/swift:** discovery LROs
([#6738](#6738))
([c294d15](c294d15))
* **sidekick/swift:** generate deprecation attributes
([#6750](#6750))
([145e8ae](145e8ae))
* **sidekick/swift:** traits with dependencies
([#6709](#6709))
([e8389f2](e8389f2))
* **swift:** add protobuf generation support
([#6697](#6697))
([3bebf26](3bebf26))
* **tool/cmd/migrate/php:** scaffold composer tools for php
([#6736](#6736))
([f23b451](f23b451))
* **tool/cmd/migrate:** add support to php
([#6726](#6726))
([586bac0](586bac0)),
closes [#6723](#6723)
* **tool/cmd/migrate:** support union versions in PHP OwlBot configs
([#6782](#6782))
([7690206](7690206)),
closes [#6779](#6779)


### Bug Fixes

* **internal/librarian/java:** remove excluded_poms from repometadata
([#6676](#6676))
([5e0f7f2](5e0f7f2))
* **internal/librarian/php:** enforce explicit API paths and add default
output path
([#6740](#6740))
([347bbd6](347bbd6))
* **internal/librarian:** preserve gem tools during tidy
([#6783](#6783))
([0150007](0150007))
* **internal/librarian:** preserve maven and protoc configuration during
tidy ([#6702](#6702))
([b439528](b439528)),
closes [#6558](#6558)
* **internal/snippetmetadata:** disable HTML escaping in JSON output
([#6777](#6777))
([4da5e28](4da5e28)),
closes [#6776](#6776)
* **librarian/rust:** detect inconsistent repos
([#6766](#6766))
([82ce5a9](82ce5a9))
* **sidekick/swift:** missing enum value docs
([#6727](#6727))
([e9020d2](e9020d2))
* **tool/cmd/migrate:** populate API paths from .OwlBot.yaml during
migrate for php
([#6739](#6739))
([6a15260](6a15260))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.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.

2 participants