Skip to content

Issue #7634: Make UndocumentedPublicClass configurable to flag `com…#7635

Merged
BraisGabin merged 11 commits intodetekt:mainfrom
Nava2:kevin/7634/make-public-companion-object-configurable
Oct 19, 2024
Merged

Issue #7634: Make UndocumentedPublicClass configurable to flag `com…#7635
BraisGabin merged 11 commits intodetekt:mainfrom
Nava2:kevin/7634/make-public-companion-object-configurable

Conversation

@Nava2
Copy link
Contributor

@Nava2 Nava2 commented Sep 13, 2024

…panion object` without name

Closes #7634 in favour of leaving the rule as described with configuration to disable to pre-#7219 value.

…g `companion object` without name

Closes detekt#7634 in favour of leaving the rule as described with configuration to disable to pre-detekt#7219 value.
@codecov
Copy link

codecov bot commented Sep 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.53%. Comparing base (d53028c) to head (9538ac7).
Report is 11 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #7635      +/-   ##
============================================
+ Coverage     84.51%   84.53%   +0.01%     
- Complexity     4137     4143       +6     
============================================
  Files           569      569              
  Lines         11872    11877       +5     
  Branches       2466     2470       +4     
============================================
+ Hits          10034    10040       +6     
  Misses          595      595              
+ Partials       1243     1242       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Nava2
Copy link
Contributor Author

Nava2 commented Oct 5, 2024

@3flex / @cortinico I see you're regularly reviewing PRs, is there a step I'm expected to take to flag changes to maintainers? I checked the documentation but found nothing 😢. This small configuration fix would significantly help our personal migration.

private val searchInProtectedClass: Boolean by config(false)

@Configuration("if companion object without names should be flagged")
private val flagCompanionWithoutName: Boolean by config(true)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note: this maintains the current default behaviour with an opt-out available.

@BraisGabin
Copy link
Member

BraisGabin commented Oct 13, 2024

LGTM. I would like to know what other maintainers think about this. @TWiStErRob you did the initial request to enable this, what do you thik about this?

Copy link
Member

@TWiStErRob TWiStErRob left a comment

Choose a reason for hiding this comment

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

Make sense to have this feature, two thoughts.

@Nava2 Nava2 requested a review from TWiStErRob October 13, 2024 12:49
@Nava2
Copy link
Contributor Author

Nava2 commented Oct 13, 2024

Given how impactful this change was in existing codebases, I wonder if this should be considered for 1.23.8 rather than 2.0.0.

@BraisGabin BraisGabin added the pick request Marker for PRs that should be ported to the 1.0 release branch label Oct 13, 2024
@Nava2 Nava2 requested a review from TWiStErRob October 13, 2024 17:12
@Nava2
Copy link
Contributor Author

Nava2 commented Oct 14, 2024

@TWiStErRob added a couple more tests and fixed a bug with that edge case. LMK your thoughts!

nameAsSafeName.asString() == "Companion" &&
// For companions _named_ `Companion`, we want to check if the name is a duplicate occurance. If so, it's
// not a companion without name.
text.lowercase().countOccurrencesOf("companion") == 1
Copy link
Member

Choose a reason for hiding this comment

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

This looks strange. It can give false positives just by having the word companion anywhere in the class body? Variable name, comments, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

shoot, I think you're right. Wonder I can narrow to the declaration. The fun part is that the default name ends up being Companion, but it can also end up being public or object because there seems to be a bug where we change the name to be the "first" element if it is defined as Companion. 😢

Let me see if I can make this more targetted.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's definitely more targetted now, used nameIdentifier?.text == "Companion" which is only true in the edge case. Thanks for the push!

@Nava2 Nava2 force-pushed the kevin/7634/make-public-companion-object-configurable branch from 85d4242 to 9538ac7 Compare October 14, 2024 16:12
@cortinico
Copy link
Member

Given how impactful this change was in existing codebases, I wonder if this should be considered for 1.23.8 rather than 2.0.0.

Can you elaborate on this? This feels like a new feature and not a bugfix to me

@Nava2
Copy link
Contributor Author

Nava2 commented Oct 15, 2024

Given how impactful this change was in existing codebases, I wonder if this should be considered for 1.23.8 rather than 2.0.0.

Can you elaborate on this? This feels like a new feature and not a bugfix to me

Sure, upgrading to the most recent 1.2x release caused 100k+ errors on our codebase on an existing rule. If this was a newly added rule, I'd agree it was a feature change. IMO the previous change to add this functionality was somewhere between a regression and a feature given the impact. The default companion are so widespread it's difficult to make "non-breaking" changes.

@cortinico
Copy link
Member

Sure, upgrading to the most recent 1.2x release caused 100k+ errors on our codebase on an existing rule

Ah I see. This was introduced by this pick:

So yes we can ship a 1.x release with this fix included 👍

@cortinico cortinico added this to the 2.0.0 milestone Oct 15, 2024
@Nava2
Copy link
Contributor Author

Nava2 commented Oct 15, 2024

Sure, upgrading to the most recent 1.2x release caused 100k+ errors on our codebase on an existing rule

Ah I see. This was introduced by this pick:

* [Check for `public companion` object for `UndocumentedPublicClass` #7219](https://github.com/detekt/detekt/pull/7219)

So yes we can ship a 1.x release with this fix included 👍

Great! Thanks! I think we're just waiting on a stamp from @TWiStErRob, then. 👍🏻

@Nava2
Copy link
Contributor Author

Nava2 commented Oct 18, 2024

@TWiStErRob Bump here :)

Copy link
Member

@TWiStErRob TWiStErRob left a comment

Choose a reason for hiding this comment

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

Stamp

@BraisGabin BraisGabin merged commit c5d7ed3 into detekt:main Oct 19, 2024
@zippert
Copy link

zippert commented Nov 20, 2024

Hello. Any plans to release a new version with this fix anytime soon?

private val searchInProtectedClass: Boolean by config(false)

@Configuration("whether default companion objects should be exempted")
private val ignoreDefaultCompanionObject: Boolean by config(false)

Choose a reason for hiding this comment

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

Nice, I was looking for config for the same issue. I think documentation need to be updated?

https://detekt.dev/docs/rules/comments/#undocumentedpublicclass

Copy link
Member

Choose a reason for hiding this comment

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

Choose a reason for hiding this comment

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

oops, thanks and sorry!

@Nava2 Nava2 deleted the kevin/7634/make-public-companion-object-configurable branch December 11, 2024 18:45
cortinico pushed a commit that referenced this pull request Jan 17, 2025
#7635)

* Issue #7634: Make `UndocumentedPublicClass` configurable to flag `companion object` without name

Closes #7634 in favour of leaving the rule as described with configuration to disable to pre-#7219 value.

* fix detekt violations

* fix name

* address naming comments, add new test

* lint

* address comments, add more tests for edge case

* remove text look-up, replace with nameIdentifier check

* detekt

* fix compilation for examples
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Mar 3, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle
| patch | `11.3.3` -> `11.3.4` |
| [org.slf4j:slf4j-api](http://www.slf4j.org)
([source](https://github.com/qos-ch/slf4j),
[changelog](https://www.slf4j.org/news.html)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `2.0.16` -> `2.0.17` |
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.52.0` -> `2.53.0` |
|
[com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.51.0` -> `2.52.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.86.0` -> `6.88.0` |
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`3.21.3` -> `3.21.4` |
|
[com.google.apis:google-api-services-cloudkms](http://nexus.sonatype.org/oss-repository-hosting.html)
([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`v1-rev20250102-2.0.0` -> `v1-rev20250213-2.0.0` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.26.2` -> `2.26.4` |
|
[com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.51.0` -> `2.52.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.61.0` -> `2.62.0` |
| [io.netty:netty-handler](https://netty.io/)
([source](https://github.com/netty/netty)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `4.1.118.Final` ->
`4.1.119.Final` |
| [io.netty:netty-bom](https://netty.io/)
([source](https://github.com/netty/netty)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `4.1.118.Final` ->
`4.1.119.Final` |
| [org.junit.jupiter:junit-jupiter-params](https://junit.org/junit5/)
([source](https://github.com/junit-team/junit5)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `5.11.4` -> `5.12.0` |
| [org.junit.jupiter:junit-jupiter-engine](https://junit.org/junit5/)
([source](https://github.com/junit-team/junit5)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `5.11.4` -> `5.12.0` |
| [org.junit.jupiter:junit-jupiter-api](https://junit.org/junit5/)
([source](https://github.com/junit-team/junit5)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `5.11.4` -> `5.12.0` |
|
[com.google.http-client:google-http-client-jackson2](https://github.com/googleapis/google-http-java-client)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`1.46.1` -> `1.46.3` |
|
[com.google.http-client:google-http-client](https://github.com/googleapis/google-http-java-client)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`1.46.1` -> `1.46.3` |
|
[com.google.auth:google-auth-library-oauth2-http](https://github.com/googleapis/google-auth-library-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.32.1` -> `1.33.1` |
|
[com.google.auth:google-auth-library-credentials](https://github.com/googleapis/google-auth-library-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.32.1` -> `1.33.1` |
| [io.gitlab.arturbosch.detekt](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | plugin |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.7` -> `1.23.8` |
| [io.gitlab.arturbosch.detekt:detekt-test-utils](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.7` -> `1.23.8` |
| [io.gitlab.arturbosch.detekt:detekt-test](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.7` -> `1.23.8` |
| [io.gitlab.arturbosch.detekt:detekt-psi-utils](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.7` -> `1.23.8` |
| [io.gitlab.arturbosch.detekt:detekt-parser](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.7` -> `1.23.8` |
| [io.gitlab.arturbosch.detekt:detekt-api](https://detekt.dev)
([source](https://github.com/detekt/detekt)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.23.7` -> `1.23.8` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.8.2` ->
`2.10.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`1.46.0` -> `1.46.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`1.46.0` -> `1.46.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.23` -> `2.30.30` |
| [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.781` ->
`1.12.782` |
| [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.781` ->
`1.12.782` |
|
[com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.781` ->
`1.12.782` |
| [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.781` ->
`1.12.782` |
|
[org.awaitility:awaitility-kotlin](http://github.com/awaitility/awaitility)
([source](http://svn.sonatype.org/spice/trunk/oss/oss-parent-9)) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor | `4.2.2`
-> `4.3.0` |
| [org.awaitility:awaitility](http://awaitility.org)
([source](http://svn.sonatype.org/spice/trunk/oss/oss-parent-9)) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor | `4.2.2`
-> `4.3.0` |

---

### Release Notes

<details>
<summary>googleapis/sdk-platform-java
(com.google.api.grpc:proto-google-common-protos)</summary>

###
[`v2.53.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2530-2025-02-10)

##### Features

- enable DirectPath bound token in InstantiatingGrpcChannelProvider
([#&#8203;3572](googleapis/sdk-platform-java#3572))
([5080495](googleapis/sdk-platform-java@5080495))
- Enable MTLS_S2A bound token by default for gRPC S2A enabled flows
([#&#8203;3591](googleapis/sdk-platform-java#3591))
([81e21f2](googleapis/sdk-platform-java@81e21f2))
- migrate away from deprecated graal-sdk dependency to use nativeimage
([#&#8203;2706](googleapis/sdk-platform-java#2706))
([757801a](googleapis/sdk-platform-java@757801a))

##### Bug Fixes

- Avoid creating message string prematurely for streaming calls
([#&#8203;3622](googleapis/sdk-platform-java#3622))
([f805e70](googleapis/sdk-platform-java@f805e70))

##### Dependencies

- update dependency com.google.code.gson:gson to v2.12.0
([#&#8203;3595](googleapis/sdk-platform-java#3595))
([1f1b119](googleapis/sdk-platform-java@1f1b119))
- update dependency com.google.code.gson:gson to v2.12.0
([#&#8203;3596](googleapis/sdk-platform-java#3596))
([af62f53](googleapis/sdk-platform-java@af62f53))
- update dependency com.google.code.gson:gson to v2.12.1
([#&#8203;3599](googleapis/sdk-platform-java#3599))
([18917ee](googleapis/sdk-platform-java@18917ee))
- update dependency com.google.code.gson:gson to v2.12.1
([#&#8203;3600](googleapis/sdk-platform-java#3600))
([3f82836](googleapis/sdk-platform-java@3f82836))
- update dependency commons-codec:commons-codec to v1.18.0
([#&#8203;3590](googleapis/sdk-platform-java#3590))
([cd46ba5](googleapis/sdk-platform-java@cd46ba5))
- update dependency io.netty:netty-tcnative-boringssl-static to
v2.0.70.final
([#&#8203;3623](googleapis/sdk-platform-java#3623))
([a4d1f95](googleapis/sdk-platform-java@a4d1f95))
- update dependency lxml to v5.3.1
([#&#8203;3624](googleapis/sdk-platform-java#3624))
([5407646](googleapis/sdk-platform-java@5407646))
- update dependency net.bytebuddy:byte-buddy to v1.17.0
([#&#8203;3582](googleapis/sdk-platform-java#3582))
([54d99e9](googleapis/sdk-platform-java@54d99e9))
- update dependency org.checkerframework:checker-qual to v3.49.0
([#&#8203;3604](googleapis/sdk-platform-java#3604))
([390cffa](googleapis/sdk-platform-java@390cffa))
- update dependency org.graalvm.sdk:nativeimage to v24.1.2
([#&#8203;3597](googleapis/sdk-platform-java#3597))
([9d151c4](googleapis/sdk-platform-java@9d151c4))
- update docker.io/library/maven:3.9.9-eclipse-temurin-11-alpine docker
digest to
[`456f60c`](googleapis/sdk-platform-java@456f60c)
([#&#8203;3607](googleapis/sdk-platform-java#3607))
([c2d2768](googleapis/sdk-platform-java@c2d2768))
- update docker.io/library/maven:3.9.9-eclipse-temurin-11-alpine docker
digest to
[`d323c2b`](googleapis/sdk-platform-java@d323c2b)
([#&#8203;3601](googleapis/sdk-platform-java#3601))
([ed35c23](googleapis/sdk-platform-java@ed35c23))
- update docker.io/library/python docker tag to v3.13.2
([#&#8203;3615](googleapis/sdk-platform-java#3615))
([ba007c2](googleapis/sdk-platform-java@ba007c2))
- update docker.io/library/python:3.13.1-alpine3.20 docker digest to
[`7788ec8`](googleapis/sdk-platform-java@7788ec8)
([#&#8203;3586](googleapis/sdk-platform-java#3586))
([a24d1ba](googleapis/sdk-platform-java@a24d1ba))
- update google api dependencies
([#&#8203;3584](googleapis/sdk-platform-java#3584))
([08f2b7b](googleapis/sdk-platform-java@08f2b7b))
- update google auth library dependencies to v1.32.0
([#&#8203;3611](googleapis/sdk-platform-java#3611))
([9436eb0](googleapis/sdk-platform-java@9436eb0))
- update google auth library dependencies to v1.32.1
([#&#8203;3618](googleapis/sdk-platform-java#3618))
([88c78e2](googleapis/sdk-platform-java@88c78e2))
- update google http client dependencies to v1.46.1
([#&#8203;3616](googleapis/sdk-platform-java#3616))
([2462105](googleapis/sdk-platform-java@2462105))
- update googleapis/java-cloud-bom digest to
[`47ad868`](googleapis/sdk-platform-java@47ad868)
([#&#8203;3608](googleapis/sdk-platform-java#3608))
([2bcf9e0](googleapis/sdk-platform-java@2bcf9e0))
- update googleapis/java-cloud-bom digest to
[`514a644`](googleapis/sdk-platform-java@514a644)
([#&#8203;3602](googleapis/sdk-platform-java#3602))
([172d4da](googleapis/sdk-platform-java@172d4da))
- update googleapis/java-cloud-bom digest to
[`7752ecd`](googleapis/sdk-platform-java@7752ecd)
([#&#8203;3603](googleapis/sdk-platform-java#3603))
([06be924](googleapis/sdk-platform-java@06be924))
- update netty dependencies to v4.1.117.final
([#&#8203;3581](googleapis/sdk-platform-java#3581))
([2734dc0](googleapis/sdk-platform-java@2734dc0))
- update netty dependencies to v4.1.118.final
([#&#8203;3625](googleapis/sdk-platform-java#3625))
([16ff6bd](googleapis/sdk-platform-java@16ff6bd))
- update netty dependencies to v4.1.118.final
([#&#8203;3626](googleapis/sdk-platform-java#3626))
([316c425](googleapis/sdk-platform-java@316c425))
- Update OpenTelemetry semantic convention packages in the shared
dependencies
([#&#8203;3402](googleapis/sdk-platform-java#3402))
([0e69784](googleapis/sdk-platform-java@0e69784))
- update opentelemetry-java monorepo to v1.46.0
([#&#8203;3585](googleapis/sdk-platform-java#3585))
([ac214be](googleapis/sdk-platform-java@ac214be))
- update opentelemetry-java monorepo to v1.47.0
([#&#8203;3619](googleapis/sdk-platform-java#3619))
([66901df](googleapis/sdk-platform-java@66901df))
- update repo-automation-bots digest to
[`35eff2c`](googleapis/sdk-platform-java@35eff2c)
([#&#8203;3609](googleapis/sdk-platform-java#3609))
([b962a01](googleapis/sdk-platform-java@b962a01))
- update repo-automation-bots digest to
[`3a68a9c`](googleapis/sdk-platform-java@3a68a9c)
([#&#8203;3620](googleapis/sdk-platform-java#3620))
([1d79552](googleapis/sdk-platform-java@1d79552))

</details>

<details>
<summary>googleapis/java-spanner
(com.google.cloud:google-cloud-spanner)</summary>

###
[`v6.88.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6880-2025-02-27)

##### Features

- Add a last field in the PartialResultSet
([7c714be](googleapis/java-spanner@7c714be))
- Automatically set default sequence kind in JDBC and PGAdapter
([#&#8203;3658](googleapis/java-spanner#3658))
([e8abf33](googleapis/java-spanner@e8abf33))
- Default authentication support for external hosts
([#&#8203;3656](googleapis/java-spanner#3656))
([ace11d5](googleapis/java-spanner@ace11d5))
- **spanner:** A new enum `IsolationLevel` is added
([3fd33ba](googleapis/java-spanner@3fd33ba))
- **spanner:** Add instance partitions field in backup proto
([3fd33ba](googleapis/java-spanner@3fd33ba))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.54.0
([57497ad](googleapis/java-spanner@57497ad))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.44.0
([#&#8203;3665](googleapis/java-spanner#3665))
([3543548](googleapis/java-spanner@3543548))

###
[`v6.87.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6870-2025-02-20)

##### Features

- Add AddSplitPoints API
([a5ebcd3](googleapis/java-spanner@a5ebcd3))
- Add option for multiplexed sessions with partitioned operations
([#&#8203;3635](googleapis/java-spanner#3635))
([dc89b4d](googleapis/java-spanner@dc89b4d))
- Add option to indicate that a statement is the last in a transaction
([#&#8203;3647](googleapis/java-spanner#3647))
([b04ea80](googleapis/java-spanner@b04ea80))
- Adding gfe_latencies metric to built-in metrics
([#&#8203;3490](googleapis/java-spanner#3490))
([314dadc](googleapis/java-spanner@314dadc))
- **spanner:** Support multiplexed session for read-write transactions
([#&#8203;3608](googleapis/java-spanner#3608))
([bda78ed](googleapis/java-spanner@bda78ed))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.53.0
([20a3d0d](googleapis/java-spanner@20a3d0d))
- **spanner:** End spans for read-write methods
([#&#8203;3629](googleapis/java-spanner#3629))
([4a1f99c](googleapis/java-spanner@4a1f99c))
- **spanner:** Release resources in TransactionManager
([#&#8203;3638](googleapis/java-spanner#3638))
([e0a3e5b](googleapis/java-spanner@e0a3e5b))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.43.0
([#&#8203;3642](googleapis/java-spanner#3642))
([c12968a](googleapis/java-spanner@c12968a))

</details>

<details>
<summary>googleapis/java-logging
(com.google.cloud:google-cloud-logging)</summary>

###
[`v3.21.4`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3214-2025-02-26)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.54.0
([67fa9fb](googleapis/java-logging@67fa9fb))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.44.0
([#&#8203;1768](googleapis/java-logging#1768))
([a69e699](googleapis/java-logging@a69e699))
- Update googleapis/sdk-platform-java action to v2.54.0
([#&#8203;1762](googleapis/java-logging#1762))
([d50a8d2](googleapis/java-logging@d50a8d2))

</details>

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.26.4`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2264-2025-02-26)

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.44.0
([#&#8203;1769](googleapis/java-datastore#1769))
([7a86509](googleapis/java-datastore@7a86509))

###
[`v2.26.3`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2263-2025-02-21)

##### Dependencies

- Update dependency com.google.cloud:gapic-libraries-bom to v1.52.0
([#&#8203;1747](googleapis/java-datastore#1747))
([592072b](googleapis/java-datastore@592072b))

</details>

<details>
<summary>googleapis/google-http-java-client
(com.google.http-client:google-http-client-jackson2)</summary>

###
[`v1.46.3`](https://github.com/googleapis/google-http-java-client/blob/HEAD/CHANGELOG.md#1463-2025-02-25)

##### Dependencies

- Update native-image-shared-config to 1.14.4
([1ab8c28](googleapis/google-http-java-client@1ab8c28))

###
[`v1.46.2`](https://github.com/googleapis/google-http-java-client/blob/HEAD/CHANGELOG.md#1462-2025-02-24)

##### Dependencies

- Update grpc-context-io to 1.70.0
([#&#8203;2078](googleapis/google-http-java-client#2078))
([3a82a5f](googleapis/google-http-java-client@3a82a5f))

</details>

<details>
<summary>googleapis/google-auth-library-java
(com.google.auth:google-auth-library-oauth2-http)</summary>

###
[`v1.33.1`](https://github.com/googleapis/google-auth-library-java/blob/HEAD/CHANGELOG.md#1331-2025-02-25)

##### Dependencies

- Update dependency com.google.cloud:google-cloud-shared-config to
v1.14.4
([53a2abc](googleapis/google-auth-library-java@53a2abc))

###
[`v1.33.0`](https://github.com/googleapis/google-auth-library-java/blob/HEAD/CHANGELOG.md#1330-2025-02-24)

##### Features

- Add client logging with slf4j
([#&#8203;1586](googleapis/google-auth-library-java#1586))
([24761d6](googleapis/google-auth-library-java@24761d6))

##### Dependencies

- Update dependency com.google.http-client:google-http-client-bom to
v1.46.1
([96a5ad8](googleapis/google-auth-library-java@96a5ad8))

</details>

<details>
<summary>detekt/detekt (io.gitlab.arturbosch.detekt)</summary>

### [`v1.23.8`](https://github.com/detekt/detekt/releases/tag/v1.23.8)

##### 1.23.8 - 2025-02-20

This is a point release for Detekt `1.23.0`, built against Kotlin
`2.0.21`, with fixes for several bugs that got reported by the
community.

##### Notable Changes

- fix(deps): Update kotlin to 2.0.21 -
[#&#8203;7580](detekt/detekt#7580)
- fix(deps): Update AGP to v8.8.1 -
[#&#8203;7879](detekt/detekt#7936)
- fix(deps): update Gradle to v8.12.1 -
[#&#8203;7780](detekt/detekt#7780)

##### Changelog

- UseDataClass: do not report on `expect` classes -
[#&#8203;7857](detekt/detekt#7857)
- Fix InjectDispatcher false positives -
[#&#8203;7797](detekt/detekt#7797)
- \[UnnecessaryParentheses] Allow float/double without integer part -
[#&#8203;7751](detekt/detekt#7751)
- Fix `ThrowingExceptionsWithoutMessageOrCause` false positive -
[#&#8203;7715](detekt/detekt#7715)
- Issue [#&#8203;7634](detekt/detekt#7634):
Make `UndocumentedPublicClass` configurable to flag \`com… -
[#&#8203;7635](detekt/detekt#7635)
- Fix redundant empty tags in baseline XML -
[#&#8203;7625](detekt/detekt#7625)
- MatchingDeclarationName now supports platofrm suffixes -
[#&#8203;6426](detekt/detekt#6426)

##### Contributors

We would like to thank the following contributors that made this release
possible: [@&#8203;BraisGabin](https://github.com/BraisGabin),
[@&#8203;JordanLongstaff](https://github.com/JordanLongstaff),
[@&#8203;Nava2](https://github.com/Nava2),
[@&#8203;atulgpt](https://github.com/atulgpt),
[@&#8203;eygraber](https://github.com/eygraber),
[@&#8203;lexa-diky](https://github.com/lexa-diky),
[@&#8203;t-kameyama](https://github.com/t-kameyama)

</details>

<details>
<summary>autonomousapps/dependency-analysis-android-gradle-plugin
(com.autonomousapps.dependency-analysis)</summary>

###
[`v2.10.1`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2101)

-   \[Fix]: `BuildHealthException` extends `VerificationException`.
-   \[Fix]: module advice must be 'actionable' to be 'not empty'.

###
[`v2.10.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2100)

- \[Feat]: new `dependencyAnalysis.reporting.printBuildHealth` DSL
option.
-   \[Fix]: support colorizing multiline strings.

###
[`v2.9.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-290)

- \[Feat]: if buildHealth contains only warnings, adjust message to be
less severe.
- \[Feat]: provide way to opt-out of printing postscript if it only
contains warnings.
- \[Feat]: improve console output with colors and smarter vertical
spacing.
-   \[Fix]: improve comparability of `Declaration`.
-   \[Fix]: dependency model classes are now fully Comparable.
-   \[Fix]: `Source` is fully Comparable.
-   \[Fix]: `ExplodingBytecode` is fully Comparable.
-   \[Perf]: improve performance of `isForMissingSuperclass` (again).
-   \[Chore]: update to Kotlin 2.0.21.
-   \[Chore]: test against AGP 8.9 and 8.10

```kotlin
dependencyAnalysis {
  reporting {
    onlyOnFailure(false) // when true, only prints postscript when there are failure-level issues.
    postscript(/* Some text to help out end users who may not be build engineers. */)
  }
}
```

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.46.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.46.1):
1.46.1

##### Components

##### Dynamic Instrumentation

- 🐛 🍒 8344 - Fix CodeOrigin for
[@&#8203;Trace](https://github.com/Trace) annotation
([#&#8203;8425](DataDog/dd-trace-java#8425) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 🍒 8369 - Disable capture of entry values
([#&#8203;8424](DataDog/dd-trace-java#8424) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Other changes

##### Library Injection

- 🐛 Address partial library copy failures causing failed application
startups in k8s.

</details>

<details>
<summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary>

###
[`v1.12.782`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112782-2025-02-17)

[Compare
Source](aws/aws-sdk-java@1.12.781...1.12.782)

#### **AWS SDK for Java**

-   ### Features
    -   Add account endpoint business metrics to user agent

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

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

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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).

GitOrigin-RevId: c09b37e74def026f742f5d17fa486de17cc259d9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pick request Marker for PRs that should be ported to the 1.0 release branch rules

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regression: 1.23.7 - UndocumentedPublicClass flags unnamed public companion object

7 participants