Up next: Plone 5 – über den Status und die Zukunft von Plone – $ whatis Plone



Up next: Plone 5 – über den Status und die Zukunft von Plone – $ whatis Plone

0 0


up-next-plone5

Up Next: Plone 5 - linuxtage.at talk

On Github thet / up-next-plone5

Up next: Plone 5

über den Status und die Zukunft von Plone

Von Johannes Raggam / @thetetet / github.com/thet

Printansicht / PDF Export

  • b - 'paused' mode.
  • Alt-Click - zoom.

Plone?

Plone ist ein Content Management System, basierend auf dem Applikationsserver Zope, der Objektdatenbank ZODB und der Programmiersprache Python.

$ whoami

Johannes Raggam (DI(FH))

Web Developer, Open Source Enthusiast, Linux User, Python Aficionado, Plone Developer.

Plone seit 2004, Plone Core Contributor seit 2009, BlueDynamics Alliance Partner seit 2010, Plone Framework Team Member seit 2012

$ whatis Plone

  • Enterprise CMS
  • Collaboration System
  • Document Management System
  • CMS Framework

$ apropos Plone

  • Object Database, Content Tree und Object Traversal
  • Security Record ++
  • Permission und Workflow System ++
  • UI: Backend = Frontend
  • Plugability ++

$ locate Plone

  • GPLv2
  • Python 2.7
  • Zope 2, Mother of all Frameworks
  • ZODB (Zope Object Database)
  • Zope Component Architecture GOODNESS!
  • Legacy Code Hell MADNESS!
  • Buildout GOOD/MADNESS!
  • 236 PyPI Packges!

236 Python Eggs!

$ whois Plone

  • Seit 2002 (Europython, Alex Limi, Alan Runyan: Plone 1.0)
  • Offenes Entwicklungsmodell:
  • = 318 Core Contributors!
  • PLIP Process
  • Sprints
  • Github to the rescue!
    • Pull-Requests
    • Code reviews
    • GIT! (Bis 2010: svn)
  • Continuous Integration to the rescue!
    • Jenkins
    • TravisCI
Europython 2002: 61 Tracks, 18 davon direkt Zope related.

The Plone Foundation

  • Plone Board
  • Framework Team
  • Testing Team
  • Security Team
  • Documentation Team
  • UI Team
  • Accessibility Team

$ whereis Plone

Plone plone.org

Free Software Foundateion fsf.org

NASA Science science.nasa.gov

Amnesty International Schweiz amnesty.ch

donaufestival donaufestival.at + NÖKU gesamt

HTU Graz htu.tugraz.at

Radio Helsinki helsinki.at + Django

mur.at

To the rescue: Plone 5

Neues Contenttype Framework: plone.app.contenttypes

  • Basierend auf Dexterity (Schemata sowie Behaviors definieren Typ-Funktionalität)
  • Löst altes Archetypes basiertes Framework ab
  • Schneller, schlanker, einfachere API
  • Pythonic anstatt Javaesk

Bereits in Plone 4.3 verwendbar

Neues Kalender Framework: plone.app.event

  • Zeitzonen!
  • Recurring Events!
  • Verbesserter iCalendar Export
  • iCalendar Import
  • als Addon: CalDAV

Bereits in Plone 4.3 verwendbar

Neues Javasript Development Environment: Mockup

plone.github.io/mockup

  • Javascripts ohne Plone und Python
  • Easy für Frontend Entwickler
  • Weite Teile völlig generisch
  • Patternslib basiert (ähnlich Web Components)
  • Grunt Task Management
  • Bower Package Management
  • Require.js
  • Tests ++ (Karma, Chai)
  • Bootstrap 3

Neues Widgetset: plone.app.widgets

  • Komplett modernisiertes Form Widget Set
  • Basierend auf Javasript Framework Mockup

Bereits in Plone 4.3 verwendbar

Neues Theme: Barceloneta

  • Moderne Web Technologien: HTML 5, CSS 3
  • Basierend auf Javasript Framework Mockup
  • Bootstrap 3

Mehr

  • Radikales Aufräumen mit Legacy Code: Portal Skins Removal, zope.formlib->z3c.form, portal_tools Removal, ...
  • Automatische CSRF Protection für alle Forms (auch Addons)
  • Neue Multilingual Lösung
  • Chameleon Template Engine

Noch mehr: https://dev.plone.org/report/24

Herausforderungen

Offene TODOs

Größte Entwicklungssprünge: Sprints

Offene Issues: https://github.com/plone/Products.CMFPlone/issues/184

Developer, Developer, Developer!

Die Abstraktion des Frontends durch Mockup kann helfen.

Web Dev Paradimen Shift: Mehr Frontend, Weniger Backend

Plone braucht eine JSON API.

Wie und wo Daten gehalten werden, wird egal.

Use It!

            $ git clone git@github.com:plone/buildout.coredev.git
            $ cd buildout.coredev
            $ git co 5.0

            $ python2.7 bootstrap.py
            $ ./bin/buildout
            $ ./bin/instance fg
          

That's all, folks!