diffplug / diffplug/spotless

Add warning that Gradle configuration cache broken for spotlessCheck in latest v7.0.2

Aperta
#2,431 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug enhancement
Lingua principale
Java
Stelle
5.6k
Fork
559
Merge medio
1g 14h
PR unite (30g)
43

Descrizione

the `spotlessCheck` task seems to (indirectly) use the file `.git/HEAD`, as switching between branches causes a gradle configuration cache miss.

EG:
```bash
> git checkout test-branch
> gradle spotlessCheck
… (stores configuration cache)
> git checkout main
> gradle spotlessCheck
Calculating task graph as configuration cache cannot be reused because file '.git/HEAD' has changed.

```

spotless is configured as follows in the root level `build.gradle.kts`
```kotlin
spotless.apply {
kotlin {
target("src/**/*.kt”)
ktlint(libs.versions.ktlint.get())
}
}
```

This seems to be caused by JGit. The configuration cache report has the class `org.eclipse.jgit.util.io.SilentFileInputStream` accessing `.git/HEAD` and `.git/config`. Although this is occurinig within JGit, perhaps theres a call to JGit that can be wrapped in a `ValueSource`? Or perhaps there’s a configuration to change/disable parts of spotless to fix this?

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Riproduci i comandi per il cambio di branch con spotlessCheck e ispeziona il report di configuration-cache di Gradle. Parti dalla configurazione Spotless a livello root in build.gradle.kts, quindi segui l’accesso segnalato di org.eclipse.jgit.util.io.SilentFileInputStream a .git/HEAD e .git/config. Il lavoro è completato quando l’avviso o la limitazione documentata richiesta dall’issue è implementata e il comportamento di configuration-cache è verificato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
git, java, kotlin
Ambito
build-system
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.