Eric Steele, https://2020.ploneconf.org/speakers/eric-steele
Maurits van Rees, https://2020.ploneconf.org/speakers/maurits-van-rees
Eric will talk about the current state of Plone development and Plone 6
Maurits will cover what has happened the last year in Plone 4 and 5, and what are the future plans for Plone 5. Canonical information on this can be found at https://plone.org/download/release-schedule
https://2020.ploneconf.org/talks/state-of-plone/view
5. This random cat came to our house daily and yelled until we pet it.
6. NOAnd to top it all o
ff
, my Dad decided to grow a mustache.
7. One of the ironies of Plone is that despite being a geographically distributed project, Plone has traditionally been at its best when we’re able to gather together in the
same room.
Bring together a diversity of opinion and experience to help drive Plone forward.
Allows us to align on our goals, and then get to work. It’s a lot easier to argue about how a feature should be implemented when you’re physically together
There’s a lot less chance for misunderstandings and hurt feelings when you’re sitting across the dinner table or can share a drink afterwards.
This year has been dramatically di
ff
erent. We had a few events earlier in the year before everything shut down, but since then, we’ve had to make-do with doing
everything virtually. Forced us to reexamine how we do some things, intervene in occasional disagreements.
Talking with many of you the past few weeks as I’ve prepared for this talk has been tough. It’s reinforced that it’ll be more than a year since I’ve last seen some of my
favorite people in the world.
Thank you to everyone who worked so hard to make this conference happen. The organizers of the Belgian conference for remaining
fl
exible during all of this uncertainty,
the Foundation Board for making the tough call, and for Six Feet Up for making this even happen at all.
We have 267 people here from 33 di
ff
erent countries, and that’s likely gone up since earlier today. I wish we could be together, but if this is all this dumpster
fi
re of a year
will allow, then let’s make it a good one.
9. ZOPE MERGER
One of the major projects the Foundation addressed this year was the merger of the Zope Foundation.
There had been no meaningful activity from the Zope Foundation for quite some time, but development needed to continue as part of Plone’s Python 3 e
ff
orts.
In early 2019, Zope Foundation membership voted to transfer assets to the Plone Foundation, close the Zope Foundation. This year, we were able to
fi
nalize that
integration.
10. ZOPE MERGER
▸ Aligned Contributor Agreements
▸ Integrated Zope and Plone security teams
▸ Inclusion in the Plone Foundation’s democratic structure
▸ Legal security for Plone’s codebase
* Aligned contributor agreements
* Combined the Zope and Plone security teams
* Including Zope in Plone Foundation’s democratic structure
* Transferring the Zope trademark to the Plone Foundation allows us to ensure that Plone’s underlying codebase stays secure from a legal perspective and that
development is able to continue.
11. THE PLONE FOUNDATION ECOSYSTEM
▸ Plone
▸ Zope
▸ Guillotina
▸ Volto
And so we’ve reached the point where the software covered by the Plone Foundation isn’t just Plone, but also Zope, Guillotina, and Volto.
13. STEERING CIRCLE
▸ Plone as a project has shrunk
▸ Plone as a foundation has grown
▸ New voices
* Plone, as a project, has shrunk
* Plone, as a foundation, has grown, with the addition of Zope, Guillotina, Volto
* Avoid the risk of fragmentation
* Volto, in particular, has the opportunity to bring in members who have no experience with Plone/Python community structures and values.
14. GOALS
▸ Reevaluate community structure
▸ Avoid understaffed, overworked teams
▸ Make more voices heard
▸ Make decisions public
Many of our structures were set up nearly 20 years ago.
Existing teams are understa
ff
ed and overworked, with too many people serving on multiple teams.
Make sure more voices are heard and decisions are made publicly.
15. STEERING CIRCLE
▸ Bi-monthly steering committee meetings
▸ Keep the teams on track
▸ Keep teams aligned on common goals
▸ Make successes and challenges public
▸ Provide avenues for involvement
* One of the initial ways we’re doing this is through bi-monthly steering committee meetings.
* Keep the teams on track,
* keep them aligned
* make both their successes and de
fi
ciencies public.
* Make sure the community knows where their help is needed.
18. PLONE.ORG REFRESH
▸ Currently improving plone.org content
▸ Minor theme tweaks
▸ Larger overhaul in 2021
Plone is a website platform and our website should look and feel as mature yet modern as the product itself!
20. WORLD PLONE DAY 2021
▸ April 29th, 2021
▸ 24-hour live event
▸ #WPD2021
▸ See the lightning talk
24 hour live event around the world with hosted, yet freeform discussion and presentations from (almost) every timezone. #WPD2021
22. ANNUAL FOUNDATION BOARD MEETING
▸ Thursday, 18:50 CET
▸ All are welcome to listen in
▸ Only Foundation members may vote
Thursday before lightning talks.
23. DORNELES TREMÉA SCHOLARSHIP
▸ Provide aid for conference
attendance
▸ Aimed at new community
members and underrepresented
segments
▸ This year: Reduced ticket costs for
attendees in developing countries
▸ Helped 24 people this year
This is Dorneles Treméa. He was one of the most respected members of the Brazilian Python, Zope and Plone communities. He died unexpectedly in 2011.
He was a founding member and president of the “ah-soh-see-ah-soh python Brasil”, the entity that promotes and protects Python in Brazil
Dorneles was recognized as someone that would be generous with his time and would always volunteer to help others. He helped us to organize the
fi
rst Plone sprints,
the World Plone Day, and the Plone Symposium South America.
To give an idea of the impact Dorneles has in the Brazilian Python Community, since 2011 the community awards its members that donate their time to knowledge-
sharing and inclusion with the Dorneles Tremea Award (This year the award was renamed to Dorneles Tremea|Jean Ferri Award, to also honor Jean Ferri a late Plonista
and Plone Foundation Member)
Personally, I knew Dorneles as one of the
fi
rst people to introduce himself to me at a Plone event. Friendly and welcoming, true example of what it means to be a
Plonista.
We announced the creation of this scholarship at the conference in Tokyo in 2018.
Provide aid for conference attendance
Aimed at new community members and underrepresented segments
This year: Reduced ticket fees for attendees in developing countries
At last count, helped 24 people to attend this year’s conference.
24. I talked earlier about that diversity of opinion and experience. We’re continuing to work to expand that diversity. Plone shouldn’t be shepherded by only those who can
a
ff
ord to travel to or host a sprint or conference. The Foundation has shown a commitment to expanding the voices that in
fl
uence Plone through their sprint funding and
now this scholarship.
Donations to the Plone Foundation can be earmarked for the “Dorneles Treméa Scholarship” if you’re interested in contributing.
26. ZOPE
Zope, of course is the granddaddy of all web Python frameworks and is the application layer underneath Plone.
27. ZOPE 5.X
▸ Support for Python 3.6 and above
▸ Drops support for ZServer
▸ Restores WebDAV support
▸ Improvements to the Chameleon templating engine
▸ Better support forfi le transmission
▸ Restores the ZMI Debug Information control panel page
28. I want to be sure to mention Guillotina. Guillotina was originally begun as a reimagining of the Zope and Plone stack. It’s developed into an entirely separate project with a
life of its own.
Meant to be a framework
fi
rst
Trying to use existing tooling, database, indexing, etc rather than building their own
Keep it small, modular, easy to get into
Plug and play based on problems you’re trying to solve
29. GUILLOTINA
▸ Guillotina 6
▸ ASGI support
▸ Work
fl
ows
▸ User registration
▸ Performance and error
handling improvements
▸ Grange
▸ Guillotina React
▸ Guillotina Volto
ASGI support which is a successor to WSGI
There’s also been a major e
ff
ort on frontend initiatives:
Grange: Angular SDK framework to build Guillotina/Plone REST API applications on top.
Guillotina React: A simple ZMI for guillotina to navigate across objects
Guillotina Volto: A compatibility layer interface done with Volto team to allow Guillotina backend.
32. PLONE 4 AND 5
Last year after the conference, we approached Maurits about taking over release management of Plone 4 and 5. I am so glad he agreed, for many reasons. He’s been
part of the release team for several years now and has been fantastic in the role, so I know he’s going to a great job of maintaining these releases.
34. BACKEND CHANGES
▸ Building on Plone 5.2
▸ Zope 5
▸ Archetypes EOL
▸ Drop Python 2 support
▸ Removal of portal_quickinstaller
Plone 6 on the backend will largely build on the promises made in Plone 5.2
Python 3 compatibility,
Dexterity as the way forward for content types
continued cleanup of the backend.
API maturity
Builds on outstanding work Maurits did in Plone 5.1 to improve the way install, upgrade, and uninstall work in Plone.
All of this should be trivial if you’re hosting a site on 5.2. We’re just removing the things you’ve already stopped using.
If you’re not there yet, this is your reminder that it’s going away.
35. FRONTEND CHANGES
▸ LTS Theming
▸ Volto
The frontend will be where you see the most obvious changes.
Happening in two ways.
36. “LTS THEMING”
▸ New sites should use Volto
▸ Continued support of
▸ Server-side rendering
▸ Diazo theming
We’re considering Plone 6 to be a long term support release.
Those using classic theming should not feel pressured to move to Volto immediately.
Thursday’s track 1 will cover the work being done to modernize Plone’s classic UI
37. “PLONE CLASSIC”
▸ Barceloneta LTS
▸ Bootstrap 5
▸ Reduce custom markup and styling
▸ Resource registry improvements
▸ Simpli
fi
cation of bundles
▸ Mockup updates
Rewrite of Mockup to use ES6 imports instead of RequireJS
Caching improvements
Dynamic module loading
Make the registry easier to understand and work with. Match developer expectations better.
40. VOLTO PRINCIPLES
▸ Approachability
▸ Developer experience
fi
rst
▸ Customization and extensibility
▸ Well-de
fi
ned UI/UX
▸ Don’t over-engineer things
▸ One true way of doing things
▸ Frontend and backend are meant to be decoupled
▸ Focus on UI/UX implementation and upcoming challenges
▸ Semantic versioning
41. GAINING MOMENTUM
▸ “We’re not alone anymore”
▸ Released Volto 4 in March (“The Maturity Release”)
▸ Released Volto 10 last week
* One of the things that stood out to me when talking with Victor last week was when he said “We’re not alone anymore.”
Reached a point where it wasn’t just a handful of people, but a community who jumped in to help with development.
That’s shown from what they’ve been able to build this year and the pace at which they’ve done so.
* Released Volto 4 in March
* Volto 10 last week.
Able to iterate at a much faster pace. Incremental releases happening multiple times per week.
This isn’t a case of “we’ve rewritten the framework entirely 6 times”, this is measured development, semantically versioned. Changes are well-de
fi
ned and upgrade
guides are published.
43. THE API IS THE CONTRACT
▸ API provides the contract between the front and backend
▸ Decoupled development cycles
▸ Example: Volto on Plone 4
* When we have something like plone.restapi providing the contract between the frontend and backends
* We can decouple the development cycles.
* Ongoing issue in Plone is that when we tightly couple frontend and backend development, our frontend work is likely to be outdated by the time we can release.
* By the same token, we can remain more measured in how much we change our underlying architecture. Major Plone releases can remain stable for a far longer
period of time if we’re not having to constantly refresh our frontend implementation.
* As an example of why this contract is so important, Volto works on Plone 4. If you’ve built a site on Plone 4 with a Volto frontend, your upgrade path to Plone 5 is
purely a backend-only upgrade. The API contract doesn’t change between the two Plone releases, only the implementation underneath.
44. NEW FEATURES
▸ Additional blocks
▸ Listing
▸ Table of contents
▸ Lead image
▸ Block transforms
* Volto has released several new blocks, the base unit of the page layout.
* Utilizing Plone’s transforms engine in the API layer to allow for pluggable, orderable data transformations when serializing and deserializing JSON.
45. NEW FEATURES
▸ Multilingual support
▸ Lazy loading
▸ Folder contents view improvements
▸ Support for swapping CSS frameworks
▸ Enforced layouts
* Multilingual support
* Lazy loading, which reduces bundle sizes
* Adding column ordering to the folder contents view
* Adding the ability to use a completely di
ff
erent CSS framework by separating the CMS UI from the Theme UI. You can use Bootstrap instead of SemanticUI for
example.
* You can now set enforced layouts for content types. [demo]
46. Enforced layouts for Dexterity content types
Create a new type, give it the lead image behavior.
Now we’ll edit the default layout.
I can add some prede
fi
ned content blocks here on the page, including that lead image
fi
eld. Reorganize them.
I can also choose which ones are required and which ones cannot be moved.
Obviously I’m not great at page layouts. But not all of your content editors are either.
You can see as I add a new page (Plone the band has a new album out this year)
that I can
fi
ll in those preexisting
fi
elds. I can’t move the image or byline
fi
elds since I locked those in place, but I can move the other text and add additional content
since I allowed that here.
Gives you the
fl
exibility to allow your editors full control, no control or somewhere in between.
47. NEW FEATURES
▸ Multilingual support
▸ Lazy loading
▸ Folder contents view improvements
▸ Support for swapping CSS frameworks
▸ Enforced layouts
▸ Block display variations
* And blocks now support multiple display variations.
48. Let’s look at block display variations.
Here I’m going to create a new image folder and upload some images. Simple drag and drop bulk upload. I didn’t speed this up at all.
Create a new page and add a listing block
No I can choose the criteria I use to select which content shows up in there. So I’m going to use image types and a location of that folder I just created.
By default it’s going to use the listing view. I’m going to choose the gallery view instead. This allows me to view the images as a slideshow.
These variations allow me to display one type of block in many di
ff
erent ways,
Slider, tabular view
49. VOLTO ADD-ONS
▸ https://github.com/collective/awesome-volto#addons
▸ mrs.develop
▸ Uni
fi
ed style guide
* They’ve also been putting a lot of e
ff
ort into building out the add-on framework for Volto. There’s a great list of existing add-ons in the awesome-volto repo here.
* Created a tool called “mrs.develop” which works similarly to Plone’s mr.developer, and makes it easy to develop and contribute to add-ons.
* Maybe most importantly, there’s the uni
fi
ed style guide produced by Albert Casado.
* Provides UI/UX guidelines for the entire application. Pastanaga
* Helps to ensure Plone look and feel is the same top to bottom.
* I hear there may be a refresh coming this year.
50. ▸ volto.kitconcept.com
▸ “Volto: Past, Present and Future”
Two things I want you to check out:
* volto.kitconcept.com is a live Volto 10 site. My two demos were recorded directly from there.
* Victor’s talk, immediately after mine.
Multiple companies using this in production now. It’s time to start trying it out and making it as amazing as it has the potential to be.
51. THE STATE OF PLONE
MAURITS VAN REES & ERIC STEELE – RELEASE MANAGERS
(And Friends)