Joomla 4, il changelog per le estensioni è in arrivo!

Sicuramente a tutti noi sarà capitato almeno una volta di aver installato estensioni di terze parti senza riuscire a trovarne il changelog o di essere impazziti per cercarlo sul sito dello sviluppatore, nei vari forum, ecc

Finalmente con Joomla 4 tutto questo potrebbe avere fine e appartenere al passato!

Infatti ci sono buone notizie, grazie all'inclusione di un progetto facente parte del GSoC 2017 di Nuno Lopes, la sezione della gestione estensioni è stata potenziata includendo anche la funzionalità relativa al changelog, qui è possibile trovare maggiori riferimenti al progetto originale: https://community.joomla.org/gsoc-2017/my-journey-to-expand-the-extension-manager.html

Ma come si presenta la funzionalità di changelog nel backend di Joomla 4? Innanzitutto dovremo aver installato un pacchetto dell'ultima versione alpha di Joomla! 4, a questo link è possibile scaricare le Nightly Builds, e un'estensione che già implementa questa nuova feature, essendo una novità è prevedibile che pian piano le varie estensioni si adegueranno ad essa.

Nel nostro esempio abbiamo trovato un paio di estensioni che sono già state riscritte per il nuovo framework di Joomla 4 e che implementano la funzionalità di changelog nativa.

La gestione del changelog si divide essenzialmente in 2 parti:

  1. Il changelog della versione correntemente installata visibile nella lista estensioni
  2. Il changelog della nuova versione di cui si effettua un update visibile nella lista aggiornamenti

Partiamo quindi dalla prima visualizzazione, il changelog relativo alla versione correntemente installata. Finora nella lista estensioni era possibile visualizzare solo il numero di versione installato, con Joomla 4 invece ogni volta che viene trovata un'estensione che implementa il nuovo sistema di changelog, il numero di versione aprirà una finestra modale con i dettagli del changelog quando cliccato.

Nella figura sottostante vediamo che le prime 2 estensioni installate implementano il nuovo sistema di changelog pertanto presentano un numero di versione cliccabile:

screenshot1.jpg

Quindi per conoscere il changelog della versione 4.6.0 di JSitemap Pro sarà sufficiente cliccare sul numero di versione:

screenshot2.jpg

Come si evince il changelog si divide in categorie, infatti il sistema che è stato sviluppato supporta ben 7 diverse categorie di voci:

  1. Security Fixes
  2. Bug Fixes
  3. New Features
  4. Changes
  5. Removed Features
  6. Language
  7. Notes

Starà poi agli sviluppatori inserire in maniera opportuna le varie voci relative agli aggiornamenti nella rispettiva categoria in modo da rendere molto chiaro quale sia lo scopo della modifica applicata. Salta subito all'occhio la prima categoria e l'importanza che questa nuova funzionalità di Joomla 4 porta con sè: la SICUREZZA!

Infatti sarà finalmente possibile vedere ed essere notificati in modo tempestivo quando un'estensione include un aggiornamento di sicurezza, tutto direttamente nel backend di Joomla a portata di click!

Vediamo adesso la seconda visualizzazione, quella relativa agli aggiornamenti. Infatti appena si renderà disponibile un aggiornamento di un'estensione installata nella lista di Joomla avremo una nuova colonna denominata appunto Changelog con il relativo pulsante:

screenshot3.jpg

 Pertanto se vogliamo conoscere il changelog della nuova versione 4.6.1 di JSitemap Pro prima di effettuare l'aggiornamento sarà sufficiente cliccare sul relativo pulsante per aprire la finestra modale e visualizzarne tutti i dettagli:

screenshot4.jpg

In questo moda avremo una chiara visuale sull'importanza dell'aggiornamento, che può includere non solo correzioni di sicurezza ma anche modifiche importanti per mantenere la compatibilità con l'ultima versione di Joomla o di PHP.

Quindi ricapitolando il sistema di changelog supporta fino a 7 categorie di voci come visibile nell'immagine seguente:

screenshot5.jpg

Nel caso in cui si rendano disponibili aggiornamenti di sicurezza la prima categoria evidenziata in rosso Security Fixes ci permetterà di esserne tempestivamente a conoscenza ed effettuare subito l'update dell'estensione assicurandoci di mantenere il nostro sito protetto da falle e vulnerabilità:

screenshot6.jpg

Ma veniamo adesso alla parte più interessante lato sviluppatore: come si implementa il sistema di changelog di Joomla! 4 nelle proprie estensioni?

Niente paura è tutto molto semplice, il lavoro 'sporco' lo fa il core di Joomla! a noi basterà semplicemente utilizzare un file XML come già siamo abituati a fare per il normale sistema di aggiornamenti.

Per prima cosa dovremo creare un nuovo file XML per il changelog a cui puntare sul nostro server e inserire il nuovo tag <changelogurl> nel manifest XML di installazione della propria estensione, per esempio proprio prima del tag utilizzato per il server degli aggiornamenti che dovrebbe essere già presente:

 screenshot7.jpg

Nell'esempio abbiamo creato il file mychangelog.xml nella root del nostro server e lo abbiamo inserito nel file manifest della propria estensione in modo che Joomla! tenga traccia di questa URL nel database quando quest'ultima viene installata. La stessa cosa andrà fatta per il file degli aggiornamenti, anche in questo file sarà necessario inserire il tag <changelogurl> in modo che il pulsante del changelog venga mostrato nella lista degli aggiornamenti disponbili:

screenshot8.jpg

Anche in questo caso abbiamo aggiunto il tag <changelogurl> dopo il classico tag <infourl>, quindi un'operazione estremamente banale.

Adesso per completare l'opera è arrivato il momento di scrivere le informazioni nel file del changelog vero e proprio che abbiamo chiamato mychangelog.xml. La struttura del file XML è decisamente semplice, per ogni versione rilasciata andremo ad aggiungere un tag <changelog> che contiene le informazioni sul nome dell'estensione, il tipo, la versione, ecc e un tag specifico per ogni categoria a cui vogliamo assegnare le voci quindi <security>, <fix>, <language>, <addition>, <change>, ecc

screenshot9.jpg

E questo è tutto! La nostra estensione adesso supporta il sistema di changelog nativo di Joomla 4 così da offrire una migliore user experience e una maggior sicurezza a chi la utilizza, il risultato sarà quello analizzato nel corso dell'articolo senza bisogno di ulteriori operazioni da parte nostra.

Conclusioni: per arrivare alla versione stabile di Joomla 4 c'è ancora da fare un lavoro enorme e c'è bisogno del contributo di tutti noi, dato che Joomla è un software Open Source creato proprio grazie a tutti i volontari che fanno parte della sua community. Tuttavia ad ogni versione alpha che viene rilasciata durante questi mesi di sviluppo si aggiungono nuove funzionalità come quella appena analizzata, questo ci porta alla convizione che sicuramente Joomla 4 sarà la versione più potente, moderna e flessibile mai realizzata e auspichiamo che dopo il rilascio di Joomla 4 ci sia una decisa rimonta nell'utilizzo di questo CMS nei confronti dei suoi concorrenti. La partita è appena cominciata!