[Gradle] Configuration.setVisible(boolean) deprecation warning on Gradle 9.8
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 85/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- java
- 領域
- build-system
調査の方向性
GradleProvisioner.java から始め、特に 136 行目付近の forConfigurationContainer を確認し、JarState.provisionWithTransitives が使用する detached configuration のセットアップを調べてください。warning-mode all を使用して、提供されている Gradle 9.8 の再現手順を spotlessCheck と spotlessApply で実行してください。Configuration.setVisible(boolean) の非推奨警告なしに formatter のプロビジョニングが引き続き成功すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Environment
- Spotless Gradle plugin: 8.10.2
- Gradle: 9.8.0
- Reproduced with:
spotlessCheckandspotlessApply
Reproduction
A formatter that provisions external dependencies is enough to reproduce it, for example:
plugins {
id("com.diffplug.spotless") version "8.10.2"
}
repositories {
mavenCentral()
}
spotless {
java {
googleJavaFormat()
}
}
Run:
./gradlew spotlessCheck --warning-mode all -Dorg.gradle.deprecation.trace=true
Actual behavior
Gradle reports:
The Configuration.setVisible(boolean) method has been deprecated.
This is scheduled to be removed in Gradle 11.
The relevant stack trace is:
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.setVisible(DefaultConfiguration.java:376)
at org.gradle.api.internal.artifacts.configurations.DefaultLegacyConfiguration_Decorated.setVisible(Unknown Source)
at com.diffplug.gradle.spotless.GradleProvisioner.lambda$forConfigurationContainer$2(GradleProvisioner.java:136)
at com.diffplug.gradle.spotless.GradleProvisioner$DedupingProvisioner.provisionWithTransitives(GradleProvisioner.java:91)
at com.diffplug.spotless.JarState.provisionWithTransitives(JarState.java:132)
In Spotless 8.10.2, GradleProvisioner.forConfigurationContainer configures the detached configuration with:
config.setCanBeConsumed(false);
config.setVisible(false);
I see the warning from formatters that provision external dependencies, including Gherkin, Java (google-java-format), JSON (Gson), and Kotlin (ktlint). The build still succeeds, but Gradle generates a problems report containing the warnings.
Gradle upgrade guide: https://docs.gradle.org/9.8.0/userguide/upgrading_version_9.html#deprecate-visible-property
Expected behavior
Spotless should run on Gradle 9.8 without deprecation warnings and remain compatible when Configuration.setVisible(boolean) is removed in Gradle 11.
- 主要言語
- Java
- スター
- 5.7k
- フォーク
- 560
- 平均マージ
- 1日 6時間
- マージ済み PR(30日)
- 48
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
diffplug/spotless のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
diffplug/spotless#3067 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 66/100
diffplug/spotless#3040 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
diffplug/spotless#3013 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
diffplug/spotless の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
openhab/openhab-core#5847 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
apache/parquet-java#3820 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
beehive-lab/jllm#187 ·