Il presente e il futuro di Plone e le dinamiche dello sviluppo di un prodotto open frutto del lavoro di una community.
A breve è previsto il rilascio di Plone 5.2 che sarà compatibile con Python 3. Nel medio periodo (2020) è previsto il rilascio di Plone 6 che avrà a bordo Volto, il framework in ReacJS che consente di gestire i contenuti Plone.
Plone si posiziona quindi come un potente CMS headless che offre maturità, sicurezza, robustezza e flessibilità aperto, per il frontend, ai moderni framework javascript.
2. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Cosa vi
racconto
Vi racconto il presente e il futuro di Plone e le
dinamiche dello sviluppo di un prodotto open
frutto del lavoro di una community
!2https://bit.ly/2VWTaAq
4. Status Quo
Sfide e soluzioni
Short-Term Roadmap (Plone 5.2)
Mid-Term Roadmap (Plone 6)
Plone 6
Roadmap
PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6 !4
5. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
• Maturo, molto sicuro, flessibile ed
estensibile
• Esperienza utente e accessibilità
• Adatto a varie audience
• Workflow complessi, permessi sofisticati, alta
modularità
!5
Plone
Status-quo
6. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
• Più device mobile che richiedono migliore esperienza utente, tempi di risposta veloci dei siti
hanno portato innovazione tecnologica.
• Javascript è la tecnologia web abilitante .
• Tecnologie open come ReactJS offrono UX, velocità, funzionalità, buon codice e grandi
comunità.
!6https://www.abdulvasi.me/wp-content/uploads/2016/07/bigstock-Challenges-Road-Sign-3530978.jpg
7. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Aggiornare il backend
Creare un nuovo frontend
con una migliore usabilità
Sfide e
soluzioni
Negli anni la Plone community
ha identificato una serie di sfide e
tasks.
6
5.2
!7
9. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
• Velocità delivery dei contenuti
• Integrazioni di terze parti facili e sicure
• Consente agli sviluppatori di usare gli
strumenti e frameworks preferiti
• A prova di futuro perché integra facilmente
nuove tecnologie
!9
Vantaggi CMS
Headless
http://bit.ly/2JpOVaF
10. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
• Nessuna funzionalità di presentazione
• Difficile avere una preview live accurata dei
contenuti
• Richiede tecnologie aggiuntive per la “head”
• Per Plone, avendo, anche il tema di base
Barceloneta non ci sono questi svantaggi
!10
Svantaggi CMS
Headless
http://bit.ly/2JpOVaF
12. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Sotto la
superficie
Cosa c’è dietro allo sviluppo di un sistema
complesso come un CMS?
E come si arriva ad una nuova versione del
CMS?
!12https://www.vvox.it/wp-content/uploads/2015/05/Iceberg-1030x773.png
14. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Sprint
2017
Uno sprint è un momento in cui la comunità si trova
fisicamente per parlare/pianificare o scrivere codice.
Per 2-3 giorni o una settimana da 5-10 persone ma anche
30-40 persone.
!14https://bit.ly/2VWTaAq
15. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
SORRENTO - ITALIA 18-22 APRILE 2017
• Plone 5.1 RC quasi pronta
• Plone 5.2 (Zope 4, RESTAPI)
• Plone 6 (Pastanaga UI, …)
• Plone come Headless CMS
• Implementazione del frontend
Pastanaga (in Angular e React)
• Plone andrà su Python 3
Plone Open Garden
Roadmap Discussion
!15
https://scontent-atl3-1.cdninstagram.com/vp/7a98c33c92ad9854fb9ca2227a3d421f/5D30B5FE/t51.2885-15/
e35/57343634_2240276519572100_2249735197716012549_n.jpg?_nc_ht=scontent-atl3-1.cdninstagram.com
16. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
Spint ad invito: il focus è
Pastanaga, il nuovo UX
framework per Plone
Lo sprint ha lo scopo di:
• pastanaga: MVP (Minimal Viable
Product)
• Implementare pastanaga.io
Pastanaga Sprint
!16https://www.slideshare.net/kitconcept/pastanaga-ui
BONN - GERMANY 15-17 NOVEMBRE
18. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
INNSBRUCK, AUSTRIA 25-29 GENNAIO 2018
Temi dello sprint
• Plone core development con un
focus su Zope 4 e Python 3
• Plone 5.2 documentazione
• miglioramenti UI/UX
Alpine City Sprint
!18https://community.plone.org/t/alpine-city-strategic-sprint-2018-technical-report/5685
19. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
HALLE - GERMANIA 16-18 MAGGIO 2018
Temi dello sprint
• Zope 4 è già in beta, è ora di
portare le app che girano su
Zope a Zope 4
• Zope 4 supporta Python 3, è
ora di portare le app che girano
su Zope a Python 3
Zope 4 Welcome Sprint
!19https://blog.gocept.com/2018/04/03/
20. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
BONN - GERMANY 21-25 GIUGNO
Temi dello sprint:
• Pastanaga UI
• plone-react
• plone.restapi
• Guillotina
• Widgets
Bonn Beethoven Sprint
!20https://plone.org/events/sprints/bonn-beethoven-sprint-2018
21. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
BERGHAUSEN - AUSTRIA 11-15 LUGLIO ‘18
• Plone su Python 3
• Zope 4
• JavaScript and Plone
(plone.restapi, Mockup,
ReactJS).
• YAFOWIL Plone integration,
Python 3
Buschenschanksprint
!21https://bit.ly/2VWTaAq
22. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
HALLE - GERMANIA 1-5 OTTOBRE 2018
5 giorni di sprint per Plone 5.2
• Python 3
• Zope 4
• Tests
• Documentazione
• UX e test accessibilità
Saltlabs Sprint
!22https://bit.ly/2VWTaAq
Sprint da oltre 150 giorni/uomo!
23. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
GITHUB.COM OTTOBRE 2018
Il nostro CMS preferito è atterrato
nel mondo Python 3!
Plone Finally Supports
Python 3!
!23https://community.plone.org/t/porting-plone-to-python-3/6226/59
25. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
SORRENTO - ITALIA 12-19 APRILE 2019
• Porting add-ons a Python 3
• Miglioramenti su Volto and
Restapi
• Accessibilità e
documentazione di Plone e
Volto
• Marketing e Plone Conference
Plone Open Garden
!25https://bit.ly/2VWTaAq
26. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
HALLE - GERMANIA 8-10 MAGGIO 2019
• E’ iniziato il tramonto di Python 2
• Zope supporta Python 3
• Mancano gli ultimi “ritocchi”
Rilasciato il 10 maggio!
Zope Spring Cleaning
Sprint
!26https://dslcleaning.it/wp-content/uploads/2018/07/dsl-cleaning-home-2.jpg
27. Plone 5.2
Python 3 - #2368
Plone 5.2 supporta Python 3.6 e 3.7 e
anche Python 2.7
Zope 4.0 - #1351
Plone 5.2 usa Zope 4.0.
Zope 4 è stato “ripulito” e supporta Python 2.7, 3.6 and
3.7
WSGI
Plone 5.2 gira di default su WSGI-server con opzioni
alternative.
Quando usa Python 2.7 è possibile anche usare lo ZServer
Stato dell’arte di Plone: verso Plone 6
Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected !27
28. Plone 5.2
Plone.Restapi - #2177
Plone 5.2 ha di base plone.restapi
Nuovo menu navigazione
con dropdown - #2516
Nuovo menu di navigazione, dropdown, più
veloce, configurabile
Gestione Link - #1486
Il nuovo pannello di controllo dei Link consente agli
ammistratori di aggiungere e gestire alias e redirect
Stato dell’arte di Plone: verso Plone 6
Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected !28
29. Plone 5.2
New Login - #2092
Il login è stato riscritto per facilitare la
personalizzazione e quello che succede dopo
il login
Deprecate Archetypes - #2390
Archetypes è deprecato e funziona solo con
Python 2.7.
Verrà rimosso del tutto con Plone 6.
Other Changes - #1742 - #1653
Rimosso il support per i resource registries “vecchio
stile”
Rifattorizzato CMFPlone static resources
Stato dell’arte di Plone: verso Plone 6
Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected !29
30. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Make Custom Packages Python 3 Ready
Preparation
Automated Fixing With Moderniz
Use precompiled
Start The Instance
Test functionality manually
Run Tests
Update Add On Information
Create A Test Setup That Tests In Python 2 And Python 3
Database Migration
Database Upgrade Procedure
Why Do I Have To Migrate My Database
Prepare Your Buildout For Migrating The Database To Python 3
Migrate Database using zodbupdate
Test Migration
Running Zodbupdate In Python 2
Downtime
Migrare a
Plone 5.2
Python 3
!30
36. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
NO!
• Il passaggio va valutato caso per caso
• Perché grandi attori (ad es. Linux Debian)
continueranno ad offrire supporto a Python 2
!36
Devo correre ad
aggiornare alla 5.2?
https://oshiprint.in/image/data/poster/new/mqp429.jpeg
38. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Tokyo
2018
• Il mobile è ovunque
• JavaScript è il principale linguaggio per il web
• JS è usato anche per app desktop, native mobile e realtà virtuale
• Opensource è mainstream e alcune delle più grandi aziende
rendono disponibili al mondo grandi parti dei loro stack web
!38https://2018.ploneconf.org/talks/reinventing-plone-roadmap-to-the-modern-web
40. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
La visione:
dal 2014 a
Tokyo 2018
Dal 2014 una visione e un sw funzionante:
plone.restapi per poter usare, sopra Plone,
moderni framework JavaScript per offrire una
nuova esperienza utente agli editor e agli utenti
finali
!40https://2018.ploneconf.org/talks/reinventing-plone-roadmap-to-the-modern-web
41. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Mid-term Roadmap
(Plone 6)
Plone 6 uscirà con Volto, un nuovo frontend
basato su ReactJS implementato sopra
plone.restapi
Volto combina la stabilità, la maturità e la
sicurezza del backend di Plone con un frontend
moderno, maturo e user-friendly e ben mantenuto
http://roadmap.betterenergy.org/wp-content/uploads/2018/06/line-art-map-icons@2x.png
!41https://bit.ly/2VWTaAq
42. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Mid-term Roadmap
(Plone 6)
Il frontend classico Barceloneta rimarrà per dare
tempo agli sviluppatori e agli utenti di adattarsi.
http://roadmap.betterenergy.org/wp-content/uploads/2018/06/line-art-map-icons@2x.png
!42https://bit.ly/2VWTaAq
44. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Status PLIP
Da discutere
PLIP da scrivere
Da definire
Da seguito alla PLIP #2014
Folderish
Content / Page
Il piano è semplificare la Plone User
Experience cambiando la default_page in
Plone 6.
!44
45. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Status PLIP
PLIP approvata. Implementazione finita,
serve una revisione.
https://github.com/plone/
Products.CMFPlone/issues/2775
Usare Dexterity
per Plone
Per avere contenuti folderish serve la
root del Plone site implementi
Dexterity
!45
46. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Status PLIP
Discusso a Tokyo e Monaco.
Necessari altri ragionamenti e ricerche.
Non definita.
collective.instancebehaviors può essere
un punto di partenza
Behaviors
flessibili
L'idea è fare in modo che un singolo oggetto/
contenuto possa avere comportamenti
diversi e multipli.
Volto potrebbe usare, al posto delle tiles,
behaviors diversi in base al contenuto.
!46
47. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Status PLIP
PLIP 2812 sottomessa al framework
team per la review
PLIP 2812 (https://github.com/plone/
Products.CMFPlone/issues/2812)
Fine del
supporto
per Python 2
Python 2 è deprecato con Plone 5.2. Python
3 sarà la versione di default.
Plone 6 non garantisce il supporto per
Python 2.
!47
48. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
Status PLIP
PLIP scritta https://github.com/plone/
Products.CMFPlone/issues/2775
Archetypes End
of Life
Archetypes sono deprecati con Plone 5.2 e
non usciranno con Plone 6.
E’ improbabile che gli Archetypes
funzioneranno con Python 3 e Plone 6.
!48
51. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
• Framework web su Python 3
• Compatibile plone.restapi compliant
• Super-scalabile
• Asynchronous
• Alternativa per il backend di Plone-React
!51
Guillotina: Python
AsyncIO REST API
Framework
https://bit.ly/2VWTaAq
Importato wikipedia in una ora!
53. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
• Volto è considerato maturo e fornisce le
funzionalità di base di Plone basandosi su un
framework Javascript moderno, maturo e a
“prova di futuro”.
• Volto 1.0 è stato rilasciato a settembre 2018
ed è già usato in produzione su vari siti.
!53
Volto è maturo?
http://bit.ly/2JxsBw3
54. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected
No!
• E’ possibile usare Volto o l’interfaccia
classica, in particolare per scenari ad “alta
sicurezza”
• Un utente con JS disabilitato nel browser è in
grado di vedere i contenuti del sito, come la
classica interfaccia Plone
!54
E’ l’unica
interfaccia di
gestione?
http://bit.ly/2JqsfHn
71. Stato dell’arte di Plone: verso Plone 6PloneDayWorldagile.open.connected !71
72. PloneDayWorldagile.open.connected Stato dell’arte di Plone: verso Plone 6
First
Google
Season Of
Plone è stato selezionato nella prima Google Season of Docs.
Plone è tra le 50 organizzazioni open source scelte per inaugurare l'iniziativa che
mette in contatto le comunità open con gli scrittori tecnici.
https://plone.org/news/2019/plone-selected-to-participate-in-first-google-season-of-docs
!72https://bit.ly/2VWTaAq