Improve version string matching in Add plugin recipe
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 86/100
Direzione di ricerca
Inizia in src/main/java/com/canonical/devpackspring/rewrite/visitors/AddPluginVisitorSupport.java intorno alle righe 228-229 ed esamina versionMatches insieme a pluginNameFilter(). Verifica come vengono gestiti gli argomenti di versione non letterali, quindi assicurati che la corrispondenza sia conservativa o utilizzi testo sorgente affidabile, in modo che un’istruzione del plugin che corrisponde effettivamente non venga sostituita inutilmente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
─── src/main/java/com/canonical/devpackspring/rewrite/visitors/AddPluginVisitorSupport.java:228-229 ───
[bug · medium] For non-literal version arguments (variables, Groovy GString / Kotlin string
interpolation), `versionMatches` falls back to `expr.toString()`, which on an OpenRewrite tree node
does not reliably return the expression's source text, so the equality check against pluginVersion
is unreliable. This is also inconsistent with `pluginNameFilter()` (below), which conservatively
returns false for non-literals. As a result, a version that actually matches may be treated as a
mismatch and have its plugin statement needlessly replaced. Consider conservatively returning false
for non-literals (as pluginNameFilter does) or using a source-printing helper to extract the text.
- String versionStr = (expr instanceof J.Literal literal && literal.getValue() != null)
- ? literal.getValue().toString() : expr.toString();
+ if (!(expr instanceof J.Literal literal) || literal.getValue() == null) {
+ // Cannot reliably determine version from non-literal expression
+ return false;
+ }
+ String versionStr = literal.getValue().toString();
- Lingua principale
- Java
- Stelle
- 1
- Fork
- 5
- Merge medio
- 1g 14h
- PR unite (30g)
- 27
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di canonical/devpack-for-spring-cli
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
canonical/devpack-for-spring-cli#292 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
canonical/devpack-for-spring-cli#283 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 70/100
canonical/devpack-for-spring-cli#291 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
canonical/devpack-for-spring-cli#271 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
canonical/devpack-for-spring-cli#269 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di canonical/devpack-for-spring-cli
Issue simili
-
and-bugs and-ui gpx-track
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 2 giorni
-
TerminalRow.mSpaceUsed (short) overflows on terminals wider than 1023 columns, crashing setCharAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
termux/termux-app#5340 ·
I maintainer di solito rispondono entro 1 giorno
-
OpenAICompatibleToolDescriptorSchemaGenerator drops requiredProperties of nested object parametersAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
apache/rocketmq-dashboard#5110 ·
I maintainer di solito rispondono entro 1 giorno
-
frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
No-Country-simulation/S08-26-equipo04#210 ·
I maintainer di solito rispondono entro 1 giorno