29/10/2021

Aggiornamenti tecnici e di prodotto di Ottobre 2021

In questa puntata del PrestaShop Live Talk, oltre a qualche piccolo aggiornamento relativo agli ultimi update, vedremo anche ciò che sta succedendo per quanto riguarda il ciclo di release e, quindi, per ciò che concerne le nuove versioni di PrestaShop. Iniziamo dalle ultime novità introdotte da PrestaShop 1.7.8.

 

PrestaShop 1.7.8: arriva la versione stabile

Il primo aggiornamento interessante è PrestaShop 1.7.8, disponibile in versione stabile. Sul forum degli sviluppatori di PrestaShop, c’è già un articolo completo. Solitamente, per uno shopping in produzione, è preferibile non passare subito alla nuova versione stabile, ma è meglio aspettare almeno un paio di patch release, specialmente se sono state fatte delle customizzazioni o se sono installati dei moduli particolari. In ogni caso, è necessario valutare in base allo shopping e al progetto.

Alcune delle novità introdotte da PrestaShop 1.7.8

Uno dei motivi dell’aggiornamento di PrestaShop alla 1.7.8 riguarda l’accelerazione che ha avuto anche PHP. Nella 1.7.8, infatti, è stato aggiunto il supporto a PHP 7.4, e molto probabilmente, sulla 1.7 non vedremo il supporto a PHP 8.

Fra le principali novità della 1.7.8, poi, vi sono nuove funzionalità per quanto riguarda le traduzioni: adesso vi è la possibilità di esportare un file .XLIFF dei propri moduli, così da poter utilizzare il nuovo sistema di traduzione anche per i moduli e l’opportunità di portare le traduzioni già fatte con il modulo, specialmente se questo si vende su Addons oppure se si desidera spostare un modulo da uno shop a un altro.

Alcuni miglioramenti, poi, sono stati apportati per quanto riguarda il multistore: adesso ci sono nuovi elementi grafici che permettono di capire meglio in quale shop si sta lavorando. Inoltre è stato implementato il Lazy Loading nativo sul tema Classic. Per chi ha già utilizzato delle alternative, quali il Classic Rocket o il tema di DevBlinders, comunque, il Lazy Loading già lo utilizza da tempo. Adesso, però, è stato integrato direttamente nel Classi e non dovrebbero esserci problemi di incompatibilità per ciò che riguarda le vecchie precedenti.

Poi ci sono stati alcuni miglioramenti anche per l’UI: è stato armonizzato un po’ il back office. Per chi non lo sapesse esiste un UIKit di PrestaShop che può essere utilizzato per sviluppare i propri moduli, le proprie pagine e le configurazioni dei moduli.

Il futuro di PrestaShop

Per parlare del futuro di PrestaShop prenderemo in prestito le slide di Pablo Borowicz, VP Engineering Core. In esse si parte da PrestaShop 1.7, una versione che è stata rilasciata ormai cinque anni fa, forse un po’ troppo frettolosamente. Adesso, dopo otto minor releases, abbiamo raggiunto un ottimi grado di stabilità. Nel tempo sono state introdotte numerose tecnologie: il tema child, Symfony & Twig, UIKit e VueJS per il back office, CQRS. 

Pertanto, la 1.7 di PrestaShop è stata l’inizio di una trasformazione tecnologica cominciata con l’abbandono del framework proprietario per adottare Symfony. L’obiettivo di questa trasformazione è di ottenere un’architettura molto pulita, anche se attualmente è molto ingarbugliata perché bisogna far ancora far comunicare il vecchio e il nuovo framework. In realtà, la 1.7 potrebbe andare avanti ancora per cinque anni, ma è necessario dare un'accelerata dal punto di vista tecnico: PHP sta rilasciando una nuova versione ogni anno, alcune librerie sono ormai deprecate e la end of life di Symfony 3.4, che è la versione presente sulle ultime versioni di PrestaShop, è prevista per novembre 2021. Evitare delle breaking changes, ossia delle interruzioni di aggiornamento per determinati componenti, per i prossimi anni è impossibile se si vogliono portare delle innovazioni dal punto di vista tecnico. Pertanto, il team core nei prossimi mesi introdurrà certamente delle breaking changes nel rilascio di alcune versioni, che pertanto non garantiranno la retrocompatibilità.

Il nuovo assetto del progetto PrestaShop

La community di PrestaShop ha bisogno di maggiore visibilità su questioni importanti. Tuttavia, non è possibile garantire sufficiente visibilità se si continuano a rimandare gli aggiornamenti. Pertanto, l’obiettivo è di incoraggiare la collaborazione nella community: attualmente c’è un basso coinvolgimento della community e dei contributor nel progetto open source. Pezzi di codice che devono essere aggiunti a PrestaShop sono realizzati da un piccolo numero di contributor esterni alla corporation e c’è una governance non proprio chiara. Per questo ci si sta riorganizzando internamente e il progetto open source sarà "slegato" dalla corporation. Il piano di questo progetto si muoverà in questo modo:

 

  1. accelerare la trasformazione tecnica: questo è importantissimo ed è richiesto sotto vari punti di vista, perché PrestaShop è sempre più adottato anche per shop importanti; quindi bisogna continuare il lavoro iniziato con la 1.7, la migrazione verso Symfony, CQRS, ecc. Essere più pragmatici e più focalizzati su su cosa effettivamente integrare e accelerare il processo di release, rilasciando major version più spesso;
  2. dare maggiore visibilità: si è deciso dalla prossima versione di abbandonare il sistema di numerazione attualmente utilizzando, ossia a quattro numeri, per adottare la SemVer’s version; quindi toglieremo l’uno iniziale e la versione di PrestaShop sarà a tre numeri: la prima rappresenterà la major release, la seconda la minor release e la terza la patch; la prossima versione, quindi, sarà la 8.0.0 molto semplicemente; occorre inoltre adottare un release cycle regolare, così che gli sviluppatori sapranno quando ci saranno delle breaking changes, e bisognerà definire in modo preciso e chiaro fin quando una data versione sarà supportata; in questo modo, anche i merchant sapranno se utilizzare una versione converrà, dal punto di vista imprenditoriale, per un investimento;
  3. stimolare l’engagement della community: cercare più amministratori, essere più aperti nella governance del progetto per capire cosa sviluppare prima e cercare di costruire un senso di appartenenza comune.

 

PrestaShop 8.0.0: nuova numerazione e nuove funzionalità

Con PrestaShop 8, come detto, si adotterà lo schema di SemVer. Esso, sostanzialmente, funziona così:

<major>.<minor>.patch> = 8.0.0

Al momento, PrestaShop 8 è totalmente compatibile con i temi attuali della 1.7. Questo è stato un punto cruciale della nostra discussione, perché inizialmente era previsto un cambiamento sostanziale. Al contrario, probabilmente, alcuni moduli necessiteranno di essere aggiornati e inizierà il nuovo ciclo di aggiornamenti secondo il sistema tick-tock release: al tick ci saranno degli aggiornamenti, mentre al tock si raccoglieranno i feedback e si procederà con delle piccole modifiche.

Con PrestaShop 8 è stato aggiornato Simfony alla 4.4 e sarà aggiunta anche la compatibilità a PHP 8. Inoltre, saranno aggiornate alcune librerie, come Guzzle, fondamentale, ma attualmente ferma alla versione 5. In PrestaShop 8, poi, ci sarà una pagina prodotto completamente rifattorizzata: doveva già essere pronta con la 1.7.8, ma per adesso questa nuova pagina è disponibile solamente nella versione sperimentale.

Sempre a partire dall’introduzione di PrestaShop 8 partirà effettivamente il progetto open source: in questa versione, pertanto, non vi saranno link diretti alla compagnia e ai suoi servizi. Questo significa che su questa versione, che sarà distribuita attraverso GitHub e sul sito prestashop-project.org, non sarà presente un Addons, per esempio. L’azienda, invece, rilascerà una sua distribuzione, ovviamente basata sul progetto PrestaShop: la differenza fra la prima e questa, ovviamente, sarà basata, come detto, sull’Addons, sui servizi, e quindi sulla possibilità di poter collegare il proprio account PrestaShop, su moduli già installati come i PrestaShop Essentials.

A partire da questa versione, è prevista una nuova major version ogni 12-18 mesi, con l’aggiunta di funzionalità e breaking changes, e una nuova minor version ogni 6-9 mesi, totalmente compatibile con la major version, dove vi saranno aggiunte e aggiustamenti. Il supporto per ogni release sarà di sei mesi, durante i quali, se necessario, saranno rilasciate delle patch releases, e un supporto di sicurezza addizionale di dodici mesi, solamente per l’ultima minor release precedente all’ultima major.

Questo permetterà a PrestaShop di introdurre nuove librerie, nuove tecnologie e di spingersi effettivamente in avanti, cosa che attualmente è resa difficile dalla necessità di mantenere delle retrocompatibilità che rallentano lo sviluppo.

Quindi la buona notizia è che l’upgrade a PrestaShop 8 dovrebbe essere il più semplice possibile. La “brutta notizia”, invece, è che ci eravamo prefissati di portare avanti la 8 come una nuova versione completamente pulita dal vecchio framework, da object model e Smarty, ma purtroppo non sarà così. Probabilmente, un cambio di queste tecnologie lo vedremo in PrestaShop 9: magari Doctrine sostituirà completamente l’object model, nel front vedremo vedremo Twig di base, ma si sta comunque già pensando a un headless e quindi a una piattaforma dove c’è la possibilità di sviluppare qualsiasi front end con qualsiasi tecnologia.

Ogni 2 settimane, la nostra newsletter di e-commerce

Inviando questo modulo, accetti che i dati inseriti vengano utilizzati da PrestaShop S.A per l’invio di newsletter e offerte promozionali. Puoi annullare l’iscrizione in qualsiasi momento utilizzando il link nelle e-mail che ti sono state inviate. Ulteriori informazioni sulla gestione dei tuoi dati e sui tuoi diritti.