Sfrutta GitHub e automattizza gli Aggiornamenti dei tuoi Plugin

Che GitHub stia diventando uno strumento essenziale per lo sviluppatore moderno è un dato di fatto, che però anche la nostra piattaforma preferita lo stia utilizzando è qualcosa che ci dovrebbe far riflettere in positivo. In fin dei conti se lo usa anche WordPress si sarà dimostrato uno strumento indispensabile, non credi?

Purtroppo in questo articolo non scoprirai che cosa sia possibile fare direttamente con questo sistema di controllo versione perché il mio interesse è altro, oggi ho voglia di aiutare lo sviluppatore che è in te. Proprio come successo un po’ di tempo fa quando ti ho presentato la libreria TGM che permette di installare automaticamente alcuni plugin all’attivazione del tema, anche oggi parliamo di uno strumento che ti farà gola.

Conoscere le soluzioni in grado di facilitare il tuo lavoro è una cosa essenziale e quello che spero tu abbia capito del network AndMore è che non siamo qua per parlarti delle ultime novità perché abbiamo letto qualcosa a giro per la rete, ma se scriviamo qualcosa è perché lo abbiamo testato con le nostre mani, confrontato con altre tecnologie e abbiamo trovato il vincitore.

Ovviamente queste sono comunque considerazioni personali, o di team come spesso accate, ma al tempo stesso sono flussi di lavoro che abbiamo testato e che reputiamo migliori rispetto ad altri. Se stai pensando ancora di perdere tempo leggendo queste parole, passa pure a un altro articolo.

Sono stato troppo cattivo? Beh se sei ancora qua e stai continuando a leggere probabilmente no. Dal mio personale punto di vista ho dovuto filtrare un po’ il lettore di questo articolo perché non stiamo parlando di come installare un plugin o di come sia possibile sviluppare un singolo effetto; in questo articolo parliamo proprio di un processo di lavoro differente. Andiamo a sfruttare diverse tecnologie per migliorare il lavoro di chi sviluppa codice e distribuisce, in questo caso, plugin.

Se sei mai passato dal processo di revisione dei plugin dovresti sapere che le cose sono un po’ cambiate…

Al giorno d’oggi il processo di revisione è molto più dettagliato e il nostro codice viene analizzato veramente da diverse persone e questo se ci pensiamo bene è soltanto un ottimo beneficio, la qualità dei plugin migliora e le nostre installazioni ne beneficiano. Purtroppo prende un po’ più di tempo e non è più facile far entrare il proprio plugin all’interno del repository.

Successivamente, il repo dei plugin è ancora su SVN e se desideri pubblicare là sopra i tuoi plugin dovrai utilizzare questo sistema di controllo versione al posto del più elastico Git.

Però se ci penso bene non è il processo di revisione o l’SVN che mi fa riflettere… Piuttosto è il fatto che se non pubblichiamo sul repository di WordPress il nostro plugin, l’utente che ha installato il nostro software non potrà aggiornarlo nel modo automatico permesso dalla piattaforma.

aggiornamento-plugin

Se non facciamo installare al nostro utente il plugin attraverso il repository WordPress non potremo mostrargli una schermata del genere e neanche avvisarli con le notifiche interne… Se ci pensi un attimo è lo stesso motivo che ha spinto plugin complessi come WooCommerce e simili a lanciare un plugin che potesse aggiornare tutti gli addon acquistati, perché non c’era altro modo per farli aggiornare automaticamente.

Oltre a questo, il sistema di aggiornamento permette anche di consultare delle informazioni dettagliate prima ancora di installare un aggiornamento; basta infatti cliccare su Visualizza i dettagli della versione 1.4.7 per avere a disposizione una finestra modale che prende le informazioni direttamente da wordpress.org.

Allo stesso tempo per poter pubblicare il mio plugin devo rilasciare il mio codice sotto licenza GPL2 e per quanto sia un bel gesto nei confronti della comunità in alcuni casi non è la scelta più appropriata se abbiamo deciso di vendere il nostro plugin. Purtroppo se decido di ospitare il mio plugin sui miei server non posso sfruttare gli aggiornamenti automatici di WordPress…

GitHub to the Rescue!

Abbiamo già parlato diverse volte sia di Git che di alcuni plugin che possono facilitare il nostro lavoro. Come team abbiamo talmente abbracciato questo nuovo strumento che abbiamo rilasciato un corso gratuito e abbiamo anche fatto un webinar che ti permetterà di conoscerlo da vicino.

Insomma non è tanto della tecnologia che voglio parlare quest’oggi ma preferisco invece mostrarti come sia possibile sfruttarla in modo da permetterci di salvare il nostro plugin in un repository (magari privato) all’interno di GitHub. Grazie a questa soluzione saresti in grado di poter beneficiare della potenza degli strumenti offerti da GitHub e allo stesso tempo poter inviare gli aggiornamenti attraverso l’aggiunta di un semplice tag.

Quello che serve per far funzionare il tutto è semplicemente un repository GitHub (pubblico o privato che sia) contenente soltanto i file specifici del plugin e qualche nozione di sviluppo che approfondiremo in questo articolo.

Che Tipo di Aggiornamento Automatico

Forse sei lì che ti stai chiedendo, perché fare tanta fatica per un processo di aggiornamento? In effetti questo è un quesito che ci poniamo soltanto nel caso in cui il nostro codice viene eseguito su macchine che non controlliamo, se il sito è sotto il mio controllo lo posso aggiornare senza troppi problemi.

Quindi questa tecnica si presta particolarmente bene per tutti quelli che desiderano sviluppare progetti commerciali e non con l’intenzione di far crescere un business intorno. Sfrutto questa veloce analisi del “cliente ideale” per far capire che con molta probabilità gli utenti che vogliamo contattare non saranno persone che usano programmi FTP dalla mattina alla sera e quindi mandargli anche uno .zip da installare non sembra essere la soluzione migliore.

Faccio questa piccola riflessione perché il sistema di aggiornamenti automatici di WordPress è veramente interessante, prima lo avevo soltanto accennato ma le informazioni che si possono ottenere da Visualizza i Dettagli… sono veramente approfondite e ci possono anche aiutare a capire che cosa è stato migliorato o corretto nella nuova versione:

changelog-badgeos

Poter passare queste informazioni ai nostri utenti non ci permetterà soltanto di rassicurarli sul tipo di aggiornamento che stanno per fare, ma gli permetterà anche di vedere su cosa stiamo lavorando e partecipare anche fornendoci del semplice feedback.

Nel caso in cui decidessimo di non uilizzare il sistema di aggiornamenti automatici, anche se andiamo ad inserire tutte queste informazioni all’interno dei nostri .zip, per i nostri utenti sarà sempre una situazione meno naturale rispetto alla possibilità di poter aggiornare i propri plugin direttamente dalla Bacheca.

Utilizziamo il codice da veri professionisti

Non sono qui a discutere quale sia il sistema migliore di aggiornamento, quello che sono a fare è descriverti come sia possibile utilizzare il proprio account GitHub per configurare un repository in modo da poter distribuire i nostri plugin. Se sei interessato a una guida passo passo che ti mostrerà come creare la tua classe PHP che gestirà i vari aggiornamenti puoi consultare questo approfondito tutorial su Tuts+ perché quest’oggi preferisco prendere delle vie più semplici.

In questa sezione andremo a scoprire come sia possibile integrare la classe WordPress GitHub Plugin Updater direttamente all’interno del nostro plugin, in questo modo potremmo eseguire tutte le operazioni direttamente dal terminale senza dover perdere ulteriore tempo; mentre nella prossima andremo a scoprire un semplicissimo strumento che, se sei alle prime armi, troverai sicuramente utile!

Partiamo intanto dalla soluzione che renderà lanciare un aggiornamento semplice quanto modificare una stringa di testo.

La classe che ti ho collegato precedentemente dovrà essere inclusa all’interno del nostro plugin quindi, ipotizzando di aver installato la classe in inc/ dovremmo inserire qualcosa del genere nel nostro file principale:

Adesso che hai collegato la classe non devi far altro che configurare l’oggetto che vuoi ottenere. Praticamente dobbiamo configurarla fornendo informazioni che ci permetteranno di far capire alla classe dove si trova il nostro plugin, che versione abbiamo raggiunto, la versione minima di WordPress richiesta… Giusto per limitare le parole e farti vedere quanto sia semplice con i tuoi stessi occhi ti lascio all’inizializzazione della classe:

Tutto quello che dovrai fare è trovare le URL richieste perché dopo questo passaggio non dovrai far altro che lavorare sul tuo plugin e raggiungere una nuova versione. Una volta raggiunta, per comunicare a tutte le installazioni del tuo plugin questo avvenimento, non dovrai far altro che modificare il file README.md, il file di testo che abbiamo indicato durante l’inizializzazione dove verrà controllata la versione.

La modifica che dovrai fare è alla stringa composta in questo modo: ~Current Version:X.Y~. Assicurati di aver inserito correttamente la tilde e di rispettare questa sintassi perché questo è l’unico modo, fino alla prossima versione della classe, di comunicare a tutte le tue installazioni del plugin il cambiamento versione.

Usiamo le automazioni come gli esperti

Le automazioni sono un evento incredibilmente comodo che ha portato la tecnologia. Praticamente possiamo istruire un programma a fare una cosa al posto nostro nel momento più opportuno; se seguirai il tutorial che ti ho indicato precedentemente scoprirai che con la soluzione che potrai sviluppare da zero puoi andare ad impostare una nuova versione semplicemente utilizzando le Release di GitHub, in modo da usare gli strumenti più adatti.

Però c’è sempre qualcosa che sembra migliore e più semplice da utilizzare e, anche se non ho avuto molto tempo per approfondire la conoscenza dello strumento che sto per presentarti, ritengo che le sue funzionalità siano incredibilmente interessanti; praticamente è da provare!

ship-plugin

Questa è una soluzione online gratuita che puoi tranquillamente collegare al tuo account GitHub per restare in ascolto dei rilasci delle nuove versioni attraverso l’uso delle release; praticamente fa la stessa cosa che farebbe la libreria di cui parlavamo poc’anzi ma senza la necessità di un modificare un singolo file, tutto quello che ci è richiesto è di aggiornare il nostro plugin utilizzando semplicemente GitHub.

Una volta collegato il nostro repository e aver dato i permessi a Ship di restare in ascolto sulle modifiche del repository contenente il nostro plugin, non dobbiamo far altro che rilasciare una Release e questo semplice servizio creerà una nuova versione del nostro plugin. A questo punto diventa di vitale importanza aggiungere il server SVN nel quale è presente il plugin nel repository WordPress per fare in modo che quest’ultimo venga aggiornato contemporaneamente con le modifiche presenti su GitHub.

svn-wordpress

Allo stesso tempo con questo servizio torniamo al punto di partenza dal quale siamo pratiti, anche se possiamo sfruttare la comodità di un sistema di controllo versione avanzato come GitHub alla fine andremo sempre a caricare il nostro plugin all’interno dei repository WordPress e dovremo rispettare la GPL2 rilasciando il nostro codice come Open Source.

Io non ho niente in contrario in tutto questo ma come dicevo prima bisogna prendere le giuste scelte in base ai propri progetti.

Conclusione

Con questo articolo spero di averti ricordato quanto sia importante conoscere un sistema di controllo versione, sopratutto quando questo permette alle persone di mettersi in contatto e collaborare ancora più velocemente. Probabilmente tu stai usando una soluzione simile a quelle presentate ma non del tutto uguale, se fosse così mi piacerebbe sapere quale sia il processo che segui per raggiungere questo risultato e ti inviterei a spiegarlo a tutti i lettori di questo sito.

Non dimenticarti di condividere questo articolo con i tuoi colleghi prima di lasciare queste pagine, sono convinto che ci sono molte persone che conosci e che troverebbero utile questo contenuti; perché non le facciamo felici?

Grazie ancora per essere passato dalle nostre parti a leggere un altro dei nostri articoli, mi fa piacere averti tra i lettori e se hai qualcosa da dire non dimenticare di usare i commenti 😉

Lascia il tuo Pensiero

2 Responses to “Sfrutta GitHub e automattizza gli Aggiornamenti dei tuoi Plugin”

    • Andrea Barghigiani

      Ciao Simone,
      onestamente non conoscevamo ancora il servizio che ci hai presentato ma onestamente siamo più vicini ai servizi offerti da Freemius, una nuova soluzione che permette di creare degli acquisti “in app” direttamente dal pannello di amministrazione WordPress.

      Questo permette anche di pubblicare la versione base sul repository WordPress.org e lasciare che sia l’utente a sbloccare man mano le varie funzionalità a seconda delle proprie necessità.

      Torneremo sicuramente a parlare di questo servizio e a descriverlo più da vicino perché il nostro Daniele sta lavorando spalla spalla con il creatore da diverso tempo e lo stiamo utilizzando per alcuni plugin che a breve rilasceremo.

      Concludendo e rispondendo alla tua domanda, non credo che andremo a trattare da vicino questo servizio ma se hai esperienza e vuoi condividerla con i lettori di wpAndMore possiamo sempre valutare la possibilità di pubblicare il tuo articolo 😉

      Spero di aver risposto ai tuoi dubbi e di averti fornito soluzioni interessanti.

      A presto,
      Andrea

      Rispondi