Informeu -Vos Del Vostre Nombre D'Àngel
Automatització de les actualitzacions de dependències amb Dependabot
L'aplicació mòbil d'Android de Sprout Social és una potent aplicació nativa que manté els nostres clients connectats a la seva presència a les xarxes socials en qualsevol moment. Com a part de la nostra aplicació per a Android, mantenim més de 35 dependències gestionades per la comunitat de codi obert que proporcionen elements bàsics útils per a la nostra aplicació.
Les nostres dependències ofereixen una infinitat de funcionalitats, com ara marcs per fer trucades de xarxa, càrrega d'imatges asíncrones, eines de prova i altres solucions existents que resolen els reptes comuns de desenvolupament d'Android. Algunes d'aquestes dependències són necessàries per aprofitar les biblioteques bàsiques d'Android, mentre que altres ajuden a resoldre els reptes comuns del programari sense haver d'escriure tot el codi des de zero. Cada dependència ens permet aprofitar la funcionalitat sense haver de reinventar la roda.
Al mateix temps, cadascun té la responsabilitat de mantenir-los al dia per assegurar-nos que sabem de les actualitzacions noves de rendiment, seguretat i funcions. Això sona molt bé en paper, però com sap qualsevol desenvolupador mòbil, fer un seguiment manual d'aquestes actualitzacions pot ser una càrrega real.
Un dels nostres valors L'equip d'enginyeria de Sprout és actuar amb propòsit i enfocament. Amb aquest esperit, vam decidir implementar una solució més intel·ligent perquè poguéssim passar més temps creant funcions d'impacte per als nostres clients. Per aconseguir-ho, hem utilitzat el connector de gestió automatitzada de dependències, Dependabot. Dependabot redueix el nostre volum de dependències obsoletes, simplifica l'esforç necessari per actualitzar-les i racionalitza el nostre procés de desenvolupament global.
Allunyar-se del manteniment manual de la dependència
En el desenvolupament natiu d'Android, les dependències es declaren en un fitxer build.gradle. En especificar la dependència que necessitem amb la seva versió, Gradle la resoldrà des d'un repositori central i la recuperarà perquè puguem utilitzar-la dins de l'aplicació. Si una aplicació d'Android és multimòdul, cada mòdul té el seu propi fitxer build.gradle que declara les dependències d'aquest mòdul.
Mantenir aquestes dependències de manera eficient és fonamental per a un procés de desenvolupament fluid i oferir als clients una aplicació de gestió de xarxes socials eficaç que pugui mantenir-se al dia amb la velocitat de les xarxes socials. Però mantenir les dependències actualitzades es converteix en una tasca descoratjadora que requereix una avaluació del treball, comprovacions de compatibilitat de versions, possibles canvis de codi i proves.
Abans de Dependabot teníem un procés manual de gestió de dependències. A mesura que augmentava la complexitat de la nostra aplicació, també augmentava el nostre temps dedicat a la gestió de dependències. L'equip va necessitar un esforç important per identificar la necessitat d'una dependència i després processar-la mitjançant els nostres fluxos de treball de desenvolupament àgil per prioritzar-la i actualitzar-la. Sovint descobrim que les dependències necessitaven actualitzacions durant el desenvolupament de funcions, la qual cosa va introduir el sempre temut abast del projecte. Necessitava una manera millor.
Presentació: Dependabot
La gestió de la dependència no és un concepte nou. Atès que la major part del treball necessari per gestionar les dependències és repetitiu i monòton, el nostre equip va pensar que aquest seria el candidat perfecte per a alguna cosa que es pogués automatitzar (sense caure en el parany d'haver d'escriure l'automatització nosaltres mateixos).
Hem trobat que Dependabot s'adaptava bé a les nostres necessitats: és una eina pròpia de GitHub que detecta automàticament les versions més noves de les dependències i té en compte els problemes de compatibilitat que es puguin produir per actualitzar-les. Mostra qualsevol actualització de versió a mesura que estigui disponible i crea sol·licituds d'extracció (PR) que contenen informació sobre l'actualització, que hem pogut integrar perfectament al nostre flux de treball d'enginyeria normal. De sobte, no vam haver de passar llargues hores manualment per assegurar-nos que tot estigués actual.
Implementació
Dependabot analitza de manera intel·ligent els nostres fitxers build.gradle per determinar el nostre arbre de dependències i crea PR per a qualsevol dependència que s'hagi d'actualitzar. Perquè la implementació fos un èxit, necessitàvem una manera de revisar acuradament cada PR i racionalitzar les fusions dels PR.

Durant qualsevol llançament de la nostra aplicació per a Android, assignem un gestor de llançaments. Vam decidir integrar aquesta responsabilitat al procés del gestor de llançaments, amb l'esperança que es completaran fins a cinc actualitzacions de dependència durant cada cicle de llançament. El gestor de versions revisa les actualitzacions de dependència descobertes per Dependabot, assegura que les nostres proves d'integració contínues al PR passen i que no hi ha canvis de biblioteca que interrompin, després revisa les actualitzacions proporcionades per aquesta versió i porta la llista de PR a l'equip perquè l'aprovi. per fusionar-se.
nombres bíblics 9
Els beneficis de l'automatització
La gestió automatitzada de dependències és una eina poderosa que millora significativament el nostre procés de desenvolupament i la qualitat de vida dels nostres enginyers. També ofereix als usuaris un alt valor i les últimes funcions dins de la nostra aplicació mòbil nativa. Amb una eina com Dependabot, vam simplificar la recuperació, integració i versions de dependències, reduint la quantitat d'esforç manual que han de gastar els enginyers i reduint la possibilitat de conflictes al nostre arbre de dependències.
A mesura que la complexitat dels projectes d'Android continua creixent, l'adopció de la gestió automatitzada de dependències va ser un pas de gran valor per garantir un procés de desenvolupament de classe mundial per al nostre equip i una aplicació d'Android de classe mundial per als nostres clients.
Per obtenir més informació sobre l'equip d'enginyeria i la cultura de Sprout, visiteu el nostre lloc de carreres professionals .
Comparteix Amb Els Teus Amics: