Analizza e automatizza gli upgrade delle dipendenze

Stai cercando di semplificare la gestione delle dipendenze? L'aggiunta di alcuni strumenti alle tue procedure può velocizzare le operazioni e indicarti le aree che potrebbero richiedere un po' più di attenzione.

Upgrade automatici delle versioni

Android Studio evidenzia le versioni obsolete delle librerie nell'editor, oltre alle correzioni rapide per eseguirne l'upgrade. Tuttavia, questo richiede di controllare regolarmente tutti i file di compilazione.

Esistono diversi strumenti di terze parti che possono automatizzare il processo, eseguire l'upgrade dei file di compilazione e, facoltativamente, creare una richiesta pull per la modifica. Individuano e si aggiornano alle versioni più recenti disponibili di ogni dipendenza, ma devi comunque analizzare i risultati prima del rilascio per garantire la compatibilità comportamentale. Ecco alcuni esempi comuni:

Controllare gli upgrade disponibili

Il plug-in delle versioni di Gradle offre un maggiore controllo manuale dell'upgrade. L'esecuzione dell'attività dependencyUpdates (tramite ./gradlew :dependencyUpdates) genera un report delle versioni più recenti delle dipendenze delle librerie. Questa operazione può essere utile per controllare lo stato della libreria e scegliere manualmente come target le librerie di cui eseguire l'upgrade in un determinato momento.

Questo può essere particolarmente utile se utilizzi un approccio personalizzato per specificare le versioni delle dipendenze anziché un catalogo delle versioni.

Segnalare le modifiche alle dipendenze

L'upgrade delle versioni delle librerie che utilizzi direttamente può avere un impatto molto più ampio sulla tua applicazione. Ogni libreria che utilizzi potrebbe richiedere altre dipendenze di librerie, formando un grafo di dipendenze transitive più grande.

Dependency Guard mostra le modifiche nel grafico tra le versioni della tua applicazione o libreria. Può essere uno strumento inestimabile per analizzarli, assicurandoti di prendere in considerazione gli upgrade diretti e indiretti.

Rileva dipendenze inutilizzate e usate in modo improprio

Mantenere la build in buono stato può migliorare la velocità di compilazione e garantire che l'applicazione e la libreria abbiano accesso alle dipendenze di cui hanno bisogno. Il plug-in Gradle per l'analisi delle dipendenze offre gli strumenti per esaminare le dipendenze, verificando il corretto utilizzo nei file di build.

I report includono:

  • Dipendenze inutilizzate
  • Dipendenze trasitive utilizzate (devi dichiararle esplicitamente in modo che la tua applicazione possa accedervi se le dipendenze dirette smettono di utilizzarle)
  • Dipendenze dichiarate nell'ambito errato
  • Utilizzo non necessario di alcuni plug-in
  • Visualizzazioni GraphViz delle dipendenze

Gestione licenza

Gli sviluppatori di ogni libreria li rilasciano in licenza per il tuo utilizzo. Devi rispettare i termini della licenza, altrimenti non puoi utilizzare la libreria in questione. Alcune licenze sono molto permissive e spesso richiedono solo una notifica del loro utilizzo. Alcune sono considerate "virali"; se utilizzi queste librerie, devi applicare la stessa licenza alla tua applicazione o libreria.

Le licenze possono cambiare con ogni release. Ogni volta che esegui l'upgrade, devi verificare che le dipendenze che utilizzi siano concesse in licenza in modo compatibile con la tua applicazione o libreria.

Segnalare licenze

Il plug-in Gradle License Report ti aiuta a generare un report sulle licenze di tutte le tue dipendenze. Assicurati di controllare questo report quando esegui l'upgrade delle dipendenze. Verifica che le licenze siano compatibili con i tuoi requisiti e assicurati di soddisfare i termini richiesti.

Generare informative sulle licenze

I termini di licenza spesso richiedono una notifica a cui possono accedere gli utenti di un'applicazione o i consumatori di una raccolta. Il plug-in di licenza Gradle genera dati o HTML per visualizzare tali notifiche nella tua applicazione.

Sebbene questo automatizzi gran parte dei requisiti relativi alle notifiche, non vengono registrate le licenze delle risorse (ad esempio le licenze necessarie per caratteri, immagini o suoni) o le licenze degli snippet di codice che hai copiato da internet. Devi monitorare e segnalare manualmente questo utilizzo.