Scopri Il Tuo Numero Di Angelo
Automatizzazione degli aggiornamenti delle dipendenze con Dependabot
L'app mobile Android di Sprout Social è una potente applicazione nativa che mantiene i nostri clienti collegati alla loro presenza sui social media mentre sono in movimento. Come parte della nostra app Android, manteniamo oltre 35 dipendenze gestite dalla comunità open source che forniscono elementi costitutivi utili per la nostra applicazione.
significato biblico di 23
Le nostre dipendenze forniscono una miriade di funzionalità come framework per effettuare chiamate di rete, caricamento asincrono di immagini, strumenti di test e altre soluzioni esistenti che risolvono le comuni sfide di sviluppo Android. Alcune di queste dipendenze sono necessarie per sfruttare le librerie Android principali, mentre altre aiutano a risolvere le sfide software comuni senza dover scrivere tutto il codice da zero. Ogni dipendenza ci consente di sfruttare la funzionalità senza dover reinventare la ruota.
Allo stesso tempo, ognuno ha la responsabilità di mantenerli aggiornati per garantire che siamo a conoscenza di nuovi aggiornamenti in termini di prestazioni, sicurezza e funzionalità. Sembra fantastico sulla carta, ma come sa ogni sviluppatore mobile, monitorare manualmente questi aggiornamenti può essere un vero onere.
Uno dei nostri valori su Il team di ingegneri di Sprout è agire con uno scopo e concentrazione. Con questo spirito, abbiamo deciso di implementare una soluzione più intelligente in modo da poter dedicare più tempo alla creazione di funzionalità di grande impatto per i nostri clienti. Per raggiungere questo obiettivo, abbiamo utilizzato il plug-in di prima parte per la gestione automatizzata delle dipendenze, Dependabot. Dependabot riduce il nostro volume di dipendenze obsolete, semplifica lo sforzo necessario per aggiornarle e ottimizza il nostro processo di sviluppo complessivo.
Allontanarsi dalla manutenzione manuale delle dipendenze
Nello sviluppo Android nativo, le dipendenze vengono dichiarate in un file build.gradle. Specificando la dipendenza di cui abbiamo bisogno con la sua versione, Gradle la risolverà da un repository centrale e la recupererà per poterla utilizzare all'interno dell'applicazione. Se un'app Android è multi-modulo, ogni modulo ha il proprio file build.gradle che dichiara le dipendenze per quel modulo.
Mantenere queste dipendenze in modo efficiente è fondamentale per un processo di sviluppo regolare e per fornire ai clienti un'applicazione di gestione dei social media efficace in grado di tenere il passo con la velocità dei social. Ma mantenere aggiornate le dipendenze diventa un compito arduo che richiede una valutazione del lavoro, controlli di compatibilità delle versioni, potenziali modifiche al codice e test.
Prima di Dependabot, avevamo un processo manuale di gestione delle dipendenze. Man mano che la complessità della nostra applicazione aumentava, aumentava anche il tempo dedicato alla gestione delle dipendenze. Il team ha impiegato uno sforzo significativo per identificare la necessità di una dipendenza, quindi elaborarla attraverso i nostri flussi di lavoro di sviluppo agili per darle la priorità e aggiornarla. Scoprivamo spesso che le dipendenze necessitavano di aggiornamenti durante lo sviluppo delle funzionalità, il che introduceva il sempre temuto spostamento dell'ambito del progetto. Avevamo bisogno di un modo migliore.
Presentazione: Dependabot
La gestione delle dipendenze non è un concetto nuovo. Dato che la maggior parte del lavoro richiesto per gestire le dipendenze è ripetitivo e monotono, il nostro team ha pensato che questo sarebbe stato il candidato perfetto per qualcosa che potesse essere automatizzato (senza cadere nella trappola di dover scrivere noi stessi l'automazione).
Abbiamo riscontrato che Dependabot si adatta bene alle nostre esigenze: è uno strumento proprietario di GitHub che rileva automaticamente le versioni più recenti delle dipendenze e tiene conto di eventuali problemi di compatibilità che potrebbero essere causati dal loro aggiornamento. Presenta eventuali aggiornamenti di versione non appena diventano disponibili e crea richieste pull (PR) contenenti informazioni sull'aggiornamento, che siamo stati in grado di integrare perfettamente nel nostro normale flusso di lavoro di progettazione. All'improvviso, non abbiamo più dovuto trascorrere lunghe ore manualmente per verificare che tutto fosse aggiornato.
Implementazione
Dependabot analizza in modo intelligente i nostri file build.gradle per determinare il nostro albero delle dipendenze e crea PR per eventuali dipendenze che devono essere aggiornate. Affinché l'implementazione avesse successo, avevamo bisogno di un modo per rivedere attentamente ogni PR e semplificare le fusioni delle PR.

Durante qualsiasi rilascio della nostra app Android, assegniamo un responsabile del rilascio. Abbiamo deciso di integrare questa responsabilità nel processo del gestore del rilascio, con l'aspettativa che vengano completati fino a cinque aggiornamenti delle dipendenze durante ciascun ciclo di rilascio. Il gestore del rilascio esamina gli aggiornamenti delle dipendenze scoperti da Dependabot, garantisce che i nostri test di integrazione continua sul PR superino e che non vi siano modifiche sostanziali alla libreria, quindi esamina gli aggiornamenti forniti da questo aumento di versione e porta l'elenco dei PR al team per l'approvazione da unire.
I vantaggi dell'automazione
La gestione automatizzata delle dipendenze è uno strumento potente che migliora significativamente il nostro processo di sviluppo e la qualità della vita dei nostri ingegneri. Fornisce inoltre agli utenti un valore elevato e le funzionalità più recenti all'interno della nostra applicazione mobile nativa. Con uno strumento come Dependabot, abbiamo semplificato il recupero, l'integrazione e il controllo delle versioni delle dipendenze, riducendo la quantità di sforzo manuale che gli ingegneri devono spendere e diminuendo la possibilità di conflitti nel nostro albero delle dipendenze.
Poiché la complessità dei progetti Android continua a crescere, l'adozione della gestione automatizzata delle dipendenze è stato un passo di grande valore per garantire un processo di sviluppo di livello mondiale per il nostro team e un'applicazione Android di livello mondiale per i nostri clienti.
Per saperne di più sul team di ingegneri e sulla cultura di Sprout, visita il nostro sito dedicato alle opportunità di lavoro .
Condividi Con I Tuoi Amici: