Plone Conf 2020 - Keynote: State of Plone
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 72 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/54750 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2020 |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Zoom lensAxiom of choiceProcess (computing)Data managementInformation securityPurchasingSoftware developerStationary stateShared memoryMeeting/Interview
01:01
System callComputer wormZoom lensThread (computing)Value-added networkStationary stateStationary stateRight angleSinc functionComplete metric spaceArithmetic meanComputer animationXMLUMLJSON
01:43
Zoom lensComputer-assisted translationView (database)VirtualizationEvent horizonShared memorySelf-organizationWhiteboardCodeSinc functionCodeSystem callOnline helpNumberDifferent (Kate Ryan album)Table (information)Open sourceLattice (order)Image registrationBookmark (World Wide Web)Real numberKey (cryptography)James Waddell Alexander IIProjective planeMeeting/Interview
04:11
CircleWhiteboardPlanningCore dumpBitProcess (computing)CloningTrailOnline helpSpacetimePoint (geometry)Web pageWhiteboardProjective planeLattice (order)Content management systemComputer architectureWebsiteSet (mathematics)Message passingContent (media)Personal digital assistantSeries (mathematics)CASE <Informatik>Observational studyMereologyOrder (biology)Musical ensembleSoftware developerMultiplication signSelf-organizationElement (mathematics)Product (business)Open setVotingRight angleQuicksortEvent horizonPresentation of a groupCircleInternet service providerCountingCommitment schemeCodeData structureInformation securityShared memoryMultiplicationInclusion mapSoftwareComplete metric spaceStandard deviationFreewareForm (programming)Time zoneJSONXMLUMLComputer animation
13:46
CodeZoom lensCodeGoodness of fitWeb 2.0Cartesian coordinate systemSoftware frameworkNumberServer (computing)Error messageBuildingFront and back endsObject (grammar)Image registrationAutomatic differentiationInformationData transmissionWeb pageComputer fileInterface (computing)Video gameProjective planeDatabaseDebuggerRepresentational state transferPhysical systemSubject indexingProduct (business)Level (video gaming)Real numberCASE <Informatik>BitProjektiver ModulException handlingSoftware development kitXMLJSON
16:11
Process (computing)Projective planeMereologyData managementFlow separationJSONXMLUML
16:53
Zoom lensFocus (optics)Quantum statePlane (geometry)Stationary stateStability theoryTouchscreenShared memoryCloningFocus (optics)Stability theoryStationary stateMeeting/InterviewXMLUML
17:32
SoftwareInformation securitySoftwareVideo gameInformation securityRight angleFocus (optics)Multiplication sign2 (number)Data managementRevision controlOcean currentAuthorizationComputer animation
18:40
Broadcast programmingInformation securityRevision controlPlane (geometry)Core dumpLink (knot theory)Greatest elementTouchscreenScheduling (computing)Core dumpBitNatural numberComputer animationProgram flowchart
19:20
Broadcast programmingInformation securityRevision controlBitInformationSoftware maintenanceInformation securityMereologyGreen's functionSinc functionPlanningCloningComputer animation
20:21
Stability theoryPlane (geometry)Information securityEmailTime zoneRange (statistics)Virtual realityCloningWindowTranslation (relic)Computer fileWeb browserVideoconferencingStability theoryInformation securityPlanningEmailHorizonRule of inferenceSoftware maintenanceBitRevision controlMultiplication signCASE <Informatik>Software bugDebuggerLink (knot theory)Perturbation theoryRange (statistics)Product (business)Cross-site scriptingComputer animation
24:36
Time zoneSoftware maintenancePlane (geometry)Information securityWebDAVInterface (computing)Read-only memoryVector potentialLeakImage resolutionConsistencyAreaControl flowStationary stateGroup actionDependent and independent variablesLogicPrice indexStability theoryComputabilityComputer iconFluid staticsMathematicsSoftware bugMarkup languageComputer configurationSoftware developerRevision controlData managementAsynchronous Transfer ModePerturbation theoryOrder (biology)Software maintenanceInformation securityDefault (computer science)Line (geometry)Mobile appElectronic mailing listHookingVector potentialSemiconductor memoryLeakAreaStability theorySubject indexingCodeSoftware testingInterface (computing)GUI widgetControl flowSlide ruleBranch (computer science)PlanningFluid staticsWeb browserRange (statistics)BlogCross-site scriptingInternet forumWeb pageWebDAVForm (programming)Condition numberBitNumberTemplate (C++)Core dumpCASE <Informatik>Multiplication signCloningRepresentational state transferNetwork topologyLatent heatMusical ensembleComputer animation
30:39
Query languagePlane (geometry)Stability theoryComputer configurationZoom lensData managementBit rateMultiplication signProcess (computing)Software bugSlide rulePlanningComputer animationMeeting/InterviewXMLJSONUML
31:18
Zoom lensMathematicsWebsitePlanningAnalytic continuationServer (computing)Software developerExpected valueFront and back endsCache (computing)DebuggerDynamical systemModule (mathematics)Video gameInstallation artFiber bundleMatching (graph theory)Musical ensembleCloningClassical physicsBootstrap aggregatingMarkup languageWindows RegistryArtistic renderingTouch typingState transition systemAdditionStructural loadBuildingComputer animation
34:34
Zoom lensMomentumDesign by contractDataflowMultiplication signCycle (graph theory)Front and back endsDebuggerDefault (computer science)Computer architectureMedical imagingCloningVector potentialFrequencyImplementationRepresentational state transferWebsiteMathematicsClosed setDemo (music)Real numberExecution unitBlock (periodic table)Electronic mailing listContent (media)Table (information)Order (biology)PlanningSoftware developerExtension (kinesiology)MomentumFiber bundleTransformation (genetics)Different (Kate Ryan album)Projective planeCross-site scriptingSet (mathematics)Flow separationSoftware frameworkBootstrap aggregatingContent management systemDesign by contractProcess (computing)MultiplicationMeasurementMusical ensembleSoftware bugPoint (geometry)Data conversionEntire functionSemantics (computer science)Capability Maturity ModelElectronic program guideHydraulic jumpWeb pageCanadian Mathematical SocietyComputer animation
39:41
Zoom lensMacro (computer science)Demo (music)Menu (computing)Musical ensembleNormed vector spacePasswordOvalPlane (geometry)Commodore VIC-20Social softwareInformation securityComputer-generated imageryDilution (equation)Web pageDirected graphContent (media)Type theoryDebuggerBitSystem callDefault (computer science)Text editorBlock (periodic table)Medical imagingField (computer science)Position operatorWebsiteInstance (computer science)Web pageGame controllerCloningGreatest elementMusical ensembleDemo (music)Computer animationSource codeXML
42:12
Zoom lensEndliche ModelltheorieConvex hullDemo (music)Mathematical optimizationBounded variationElectronic visual displayBlock (periodic table)Medical imagingContent (media)CASE <Informatik>Computer animation
42:55
Zoom lensVoltmeterPlane (geometry)Demo (music)Musical ensembleBlock (periodic table)Computer fontLimit (category theory)Computer-generated imageryMedical imagingDrag (physics)VideoconferencingCloningView (database)Electronic mailing listOrder (biology)Standard deviationCASE <Informatik>Default (computer science)QuicksortRegular graphContent (media)Multiplication signType theoryReal-time operating systemBlock (periodic table)Table (information)Inheritance (object-oriented programming)Computer animation
44:12
Value-added networkStationary stateMultiplication signElectronic program guideSoftware repositoryProduct (business)Demo (music)InformationData miningComputer animation
45:19
Zoom lensRevision controlDemo (music)PlanningMeeting/Interview
Transcript: English(auto-generated)
00:00
Take it away. All right, I don't know how I landed with this choice job, but it is really my pleasure to introduce the two Plone release managers. Our first and our longest running release manager is Eric Steele, whom I met at Penn State at WebLine
00:20
when he was working there as a developer many years ago and he's been a release manager since 2009. He currently works for Salesforce and he was just recently apologizing for the purchase of Slack this week. And Maritz is our release manager also for Plone
00:41
and he's been a stalwart member of the Plone release team and the security team for years and he's a brilliant developer, somebody we totally lean on as a community. So with that, here's our speakers. Okay, let me see if I can get the sharing working.
01:07
There is no way to do this seamlessly, so bear with me. Okay, is that showing up for everybody?
01:22
Excellent, okay. Welcome to the Plone Conference. This is the state of Plone and France since Plone has really kind of grown a lot in the last year or so. I wanted to start out just by addressing the elephant in the year. It's really been a rollercoaster of the year. COVID-19 has thrown everything into complete disarray.
01:44
I mean, this is what school looks like for my kids right now. I learned to play ukulele. We had this random cat that comes by our house daily and yells until we come out and pet it. And to top it all off, my dad decided to grow a mustache, which no. One of the real ironies of Plone
02:02
is that despite being a geographically distributed project, we've traditionally been at our best when we were able to gather together in the same room. The kind of, the general view of what an open source community is is a bunch of people in their underwear coding in the basement all alone. And we really make it happen
02:21
when we can come together, talk with each other, and share our ideas, share our diversity of opinions and experiences to really help push Plone forward. And meeting in person really allows us to align on our goals and then get to work. It's a lot easier to argue with each other about how a feature should work
02:42
when you're face-to-face and you can, you know, yell it across the dinner table or share a drink afterwards. One of my favorite things, Alexander Leamy, one of the co-founders said to me was, you know, he says, we want to meet you in person and make sure you're not crazy before we give you the keys to the code.
03:02
But this year is so dramatically different. We had a few events earlier in the year and then everything fell apart. And since then we had to make do with doing everything virtually. It really forced us to re-examine how we do some things and intervene in some occasional disagreements. I've been talking with many of you
03:21
over the past few weeks as I've been preparing for this talk and it's been really tough. It's really reinforced that it'll be more than a year since I've seen some of my favorite people in the world. I really want to say thank you to everybody who worked so hard to make this conference happen. You know, first to the organizers of the original Belgian conference for remaining flexible during all this uncertainty,
03:43
to the foundation board for making the tough call to, you know, kind of turn this off and for six feet up for making this even happen at all. As was said earlier, we have right now 267 people here from 33 different countries and that's likely gone up since earlier today.
04:00
We've had a number of registrations just this morning. I really wish we could be together, but if this is really all this dumpster fire of a year is gonna allow, then let's make it a good one. So I want to start off with talking about some community updates. One of the major projects the foundation has addressed this year
04:20
was the merger of the Zoep Foundation. So as you know, Zoep is kind of an underlying bit of the Plone architecture, it's very important to us. And as part of the, as Python 2 was being sunsetted, we dramatically needed, we had a dramatic need
04:41
for Zoep to kind of get us back together and get updated in order for us to be able to move forward as well. So we were able to find people, developers came out and were willing to help us get there, which has been fantastic. But at the same time, there's really been no meaningful activity from the Zoep Foundation as a organization
05:02
for quite some time. So in early 2019, the Zoep Foundation membership voted to transfer their assets to the Plone Foundation and closed down the Zoep Foundation. And this year we were able to really finalize that whole process. And so some of the things we've done is we've aligned the contributor agreements,
05:22
which make it easier for people to basically use that same agreement to work in both sets of code. We've combined the Zoep and Plone security teams so that we're able to address the issues that come up in Zoep as well as what comes up in Plone.
05:42
We're including their membership in the Plone Foundation's democratic infrastructure, which includes some voting rights and that sort of thing. And we're kind of really, the most important bit is we're providing this legal security for Plone's code base by transferring the Zoep trademark
06:01
to the Plone Foundation. And it helps us stay secure from a legal perspective and ensure that development is able to continue into the future. And so we've reached the point where the software covered by the Plone Foundation isn't just Plone, but it also includes Zoep, Guillotina, and Volto projects, which brings us to another major project.
06:22
That's the Plone Steering Circle. Some of the current issues facing Plone are that Plone as a project has shrunk, but Plone as a foundation has grown, as we've added those other three projects in. Guillotina and Volto are essentially offshoots
06:42
of work we've done in Plone and sorry, Ramon, I don't mean to say that as any sort of insult, but Guillotina was built as sort of a, taking what worked in Plone and re-imagining it from the ground up. But we kind of avoid the risk of fragmentation
07:02
if we split things off too much. Volto in particular has an opportunity to bring in members from the JavaScript community who have no experience with how Plone and Python do community structure or what their values are. So we step forward with this goal
07:24
to really reevaluate how our community structure works. Many of what we know as traditional Plone teams were set up nearly 20 years ago when the foundation was founded. A lot of our existing teams are really understaffed
07:41
and overworked. We have quite a few people that are serving on multiple teams and just getting burnt out from that. And we really wanna make sure those voices from outside of the kind of core contributors are heard
08:01
and we make our decisions and make them publicly. So one of the initial ways we're starting to do this is through bi-monthly steering committee meetings. These kind of grew out of the team leaders meetings that we used to have. I did a very poor job of organizing. So I'm glad the board has taken up organizing these.
08:24
And it's mainly just to keep the teams on track, keep them aligned on common goals. We wanna make sure that we celebrate their successes publicly, but we also publicly acknowledge where the deficiencies lie.
08:41
And that can really help to make sure that the community knows where their help is needed. So on Friday, there is a open space where they're gonna be discussing a lot of this. I'm guessing there's gonna be a lot more than one open space can allow for, but it's a good jumping off point
09:00
if you wanna get involved. And there's also a great write-up on plone.org on the foundation pages about their plans for this. Next, I wanna talk about marketing. So Rika Pekka has been doing a fantastic job of leading marketing team over the last few months,
09:24
as well as Kimba for him. And so I wanna thank them both. So one of the main things we're working on this year is a refresh of the plone.org websites. Plone is a content management system and our website should reflect just how mature
09:41
yet modern our product is. So they're currently making a pass through all the content to just make everything look, unify and standardize our content. Doing some minor theme tweaks right now, they're planning for a larger overhaul in 2021.
10:00
And I was told that they are definitely looking for assistance on this. There's also a We Are Plone initiative starting, just looking to bring forth the awesomeness of the community through a series of interviews, case studies and stories about community members and the projects they've worked on.
10:20
There's also World Plone Day 2021 coming in on April 29th of next year. They're planning a 24 hour live event with hosted yet free form discussion and presentations from almost every time zone. And there will be a lightning talk about this sometime this week. And there is also a open space session on Friday
10:45
if you'd like to get involved in that team. I also wanna remind you that there is the annual foundation board meeting Thursday before lightning talks. I'm told that everyone is welcome to listen in but only foundation members may vote.
11:00
But I think it's definitely worth everyone's time to listen in and hear how Plone happens. This is kind of, yeah. So this is gonna be a little rough. So this is Dornelis Tremea. He was one of the most respected members of the Brazilian pythons open Plone communities.
11:22
And he died unexpectedly in 2011. Dornelis was a founding member of the presidents and president of the Asociado Python Brazil. Hopefully I pronounced that well, Erico. The entity that really promotes him protects Python in Brazil. He's recognized that someone would be generous
11:41
with his time but always volunteer to help others. He helped to organize some of the first Plone sprints, the World Plone Day, the Plone Symposium South America. Now the Brazilian Plone community already has an award named for him and another community member, Jean Fieri.
12:01
That awards their members that donate their time and knowledge sharing and inclusion. And so, and personally I knew Dornelis as one of the first people to introduce himself to me at a Plone event as a complete newbie. It was overwhelming and it was just really nice to have somebody just kind of come forward and say hi,
12:21
welcome and just start talking to me. He was really friendly and welcoming and a true example of what it means to be a Plonista. So two years ago at the Conference of Tokyo, we announced the creation of the Dornelis Tremeia Scholarship and the goal was to provide aid for conference attendance.
12:42
It's aimed at bringing in new community members and underrepresented segments. So because there are no travel fees this year, this year we were able to use that money to reduce the ticket fees for attendees in developing countries. And at last count, we were able to provide that
13:02
to 24 people to help them attend this year's conference. I talked to you earlier about the diversity of opinion and experience, and we're really working to continue, we're really continuing to work to expand that diversity. Plone shouldn't be shepherded by only those who can afford to travel to or host a sprint
13:22
or a conference. And so the foundation has really shown a commitment to expanding the voices that influence Plone through their sprint funding and now the scholarship as well. If you're interested in donating, you can make a donation to the Plone Foundation and you can earmark it for the Dornelis Tremeia Scholarship
13:41
if you're interested in contributing. There is no good segue from that, so I apologize, but we're gonna move on to talking about the code. So Zoep is of course the granddaddy of all Python web frameworks and is our application layer underneath Plone.
14:04
They this year have released Zoep 5 and I believe 5.1 has come out recently. So they've added support for Python 3.6 and above. They are dropping their support for Z server. Web dev support has been re-added.
14:20
And there have been some improvements made to the community and templating engine to make it run faster and handle a few different things a bit better. One of those being better support for file transmission. And it restores the ZMI debug information control panel page. I wanna be sure to mention Guillotina.
14:42
Like I said before, it was originally begun as a re-imagining of what the whole Zoep and Plone stack developed as an entirely separate product, project with a life of its own from the ground up. It's really meant to be a framework first. They're trying to use existing tooling data, like databases indexing rather than building their own.
15:03
They wanna keep it small, modular, easy to get into and just really a kind of a plug and play system based on the problems you're trying to solve. And so this year they've released Guillotina 6, which has ASGI support, which is a successor to Whisky.
15:20
Added workflows, user registration and a number of performance and error handling improvements. There's also been a major effort on some front end issues for Guillotina. Grange is an angular SDK framework to build Guillotina and Plone REST API applications on top.
15:41
Guillotina React is a simple ZMI for Guillotina to navigate across projects, objects rather. And Guillotina Balto is a compatibility layer interface done with the Balto team to allow for a Guillotina backend. There'll be more information on that throughout this week. The one you probably wanna check out
16:01
is on Wednesday, Guillotina Real Uses and Roadmap. Real Use Cases and Roadmap. All right, so now on the Plone. Last year at the conference, we approached Mar. It's about taking over release management of Plone 4 and 5. And I am so glad he agreed for many reasons.
16:22
He's been a part of the release team for several years now and has been fantastic in that role. And I mean, he's been just involved in pretty much everything and he's been doing so far a fantastic job taking over and managing that part of the Plone projects. I know that this year has been tough on me but he's had an even more chaotic year.
16:43
And so I just applaud him for all his hard work. So I'm gonna turn it over Maritz to talk about Plone 4 and 5. Thank you. Let's see if you can hear me and if I can share my screen.
17:03
Can't take a while. Start share. Desktop 1, share and then play. Yeah, that should be it. Do you see me now? I hope so, otherwise someone will scream at me.
17:22
So welcome to the state of Plone 4 and 5. I'll focus on those and as a theme I try to talk about stability versus new features. So first, who am I? I am Maritz van Rijs. I've lived in the Netherlands for most of my life but moved to Belgium about two years ago
17:42
and got married to Fiorella, who you see on the right. And to the author Mika and since two months we have a small song called Toby us. So yeah, that has been a hectic year and I've also moved to a new house this year. So a lot has happened.
18:01
I still work for Zest Software in the Netherlands which in these Corona times means I haven't been there since I think half March this year, but okay. I still work for their online. I've worked there for about 15 years, about 15 years on Plone and the past few years
18:21
I've been on the security team and also the release team. So since the beginning of this year, as mentioned I am the second release manager next to Eric Steele. And the idea is that I focus on the current versions of Plone and getting some regular stable releases out.
18:42
One of the first things that I did was to create a Plone release schedule. This was inspired by the Django release schedule. Of course, Django has it a bit easier because its core is only one package and Plone obviously has lots of packages.
19:01
So by nature, the Plone release schedule is less predictable. You can find the schedule and the link should be on the bottom of your screen at plone.org slash download slash release schedule. I've lost my screen now. Yeah, I am back.
19:23
Yeah, this is the place to go to when you're looking for information on what is the latest version within a Plone release. And is this Plone release still supported? When is the next release expected? As you can see in the green parts, well, that's the maintenance supports.
19:42
So 4.3, 5.0 and 5.1, they are actually not supported anymore except that they still get security support in the orange parts. That's until the end of this year officially or until Plone 6 comes out.
20:03
Well, since Plone 6 is not out yet, it will look a bit more like this. And so at least for a couple of months, there will be security support for all the Plone versions. And yeah, Plone 5.2, that's the current stable version that you should use.
20:22
So about new features versus stability. We want stable releases, but we also want new features. That's my daughter Nika over there who's standing on sound, which is at least relatively stable.
20:40
But yeah, new features are coming in and there's even a bright future on the horizon. But yeah, it might also mean that she gets swept on the foot and you don't want that for stable releases. There is a rule, if you look at Plone 6,
21:00
once we have a better release, no new features should be added. But in practice, most Plone 4 and 5 bug fix releases have had some small new features. So we still do that, but we still try to keep that stable. Let's talk a bit about Plone 4.3.
21:22
The first release was seven years ago in April 2013. So it was time to say goodbye to this version. In August, we had the last release that we will ever do for Plone 4.3, so we said goodbye. The few releases before that,
21:40
we already said goodbye to Python 2.6. It might still work, but you should really be using 2.7. Security support is still fine. It's quickly 4.3.20 had some security hot fixes. The January hot fix was integrated. And there was a hot fix-like product introduced,
22:04
which you can actually use on all for three versions and Plone 5 versions. But that's ultimately included in all the latest Plone releases. And we've also removed a broken cross-site protection header, which was introduced one release ago,
22:21
but that actually, due to a typo, it broke some themes. So that was fixed. And Plone 5.0, that has been out of maintenance a long time ago, so I won't talk about that anymore. Plone 5.1, that started in, well, two and a half years ago
22:44
and there it was also time to say goodbye. In October this year, we had the last release. So it's out of maintenance support. There will not be releases anymore, but security is still okay for a little while. Special here is that this is the last release,
23:03
the last Plone version that still uses Soap 2.0. Specific in Plone 5.1.7, well, same security fixes as Plone 4.3. Lots of bug fixes in lots of places for Windows supports,
23:24
front-end things, translations. One other small thing, a Plone named file has gotten range support. So if a browser asks Plone, it can ask Plone to send the first megabytes of a large file or video and later the next megabytes, which is just a small new feature,
23:41
which in this case seems fine enough to include. For stability, one small example in Plone sub-requests at a bug fix release, which improved some Python 3 things, which is totally not important for 5.1,
24:03
but it seemed to work, but in some cases it actually broke virtual host rewriting in the other rules, at least for one customer where we noticed it. You may not have noticed it, but in our case, all kinds of links were showing completely wrong.
24:22
So that's one thing where a small new feature in this case or feature Python 3 support broke it at least for one side of us. We tried to avoid that, but that's not always possible. Looking at Plone 5.2 started one and a half years ago.
24:43
Last release is from one month ago and I expect to do the next release in January and there will be lots more to come. You can use Python 2.7 if you still have to, but preferably use Python 3.
25:01
This of course uses Zope 4, but you're still getting lots of bug fixes and some new features as well. And just a small reminder, just upgrade this from Plone 4.5 to Python 5.2, to Plone 5.2 on Python 2 and after that you can migrate to Python 3.
25:23
And it's still in full maintenance and supports the modes and it will still be for a long while. Specific to the last releases of this year, there was a security problem in the handling of XML reported by Misaki Kata.
25:41
That was fixed, but we decided it was not important enough. You need to be a manager in order to do something with this. So we decided not to make a security hot fix, but if you use Collective Easy Forum, a small tip, you should upgrade those versions because it is also affected.
26:03
Zope was upgraded, which means WebDAF is back if you care about that. Zope interface has gotten more consistent in a few places, but they did introduce a potential memory leak which was fixed later again in the latest Plone release.
26:21
Plone REST API, lots and lots of new features. A small new thing in Plone app theming and text area in the theming control panel where you can now introduce custom CSS, which can help if you just have a few extra lines that you want to include. And for Plone app discussion,
26:43
I can actually show a picture. In the moderate comments page, you can now mark a comment as spam or rejected, and you can use that to have someone else go through the spam list and rejected list for a second opinion, or you can maybe hook it up
27:01
to some automatic spam detection. For stability in Plone 5.2, that's mostly Zope 4.4 had some changes that seemed fine enough around templates and well, some fixes were needed in 4.5,
27:22
but yeah, not everything works as it used to. For example, the first line you see, the test keyword is no longer supported. So you need to do a more Pythonic way of spelling the same thing with conditions, which works in all the Zopes as well, luckily.
27:41
The repeat syntax has changed a bit. At least you can repeat slash widget slash index if you are repeating over that, that works in all Zope versions. And in Plone 5.2.3, there are some more fixes for that, which if you go to 5.2.2 or to 3,
28:01
you might run into some problems. I think I'll skip a bit here, but just to include semantic versioning, just looking at version analysis, not always enough. Z3C also includes 0.4 to add a breaking change, dropping Python 3.4 support.
28:21
We don't care as Plone because we don't support it. And a new feature add support for Python 3.8. But in both cases, there was no actual code change. So that's completely safe. And in other cases, a bug fix release can break things. And well, for Zope, I think for the time,
28:41
I'll skip the details here, there were some good releases and some that looked good, but turned out to be bad. And the last release is pretty good again. And I'll go to my last slide for the future of Plone 5. You could say 5.2 was a stable branch. So please do not do any new features at all,
29:02
only bug fixes. But if we would have done that from the start, that would have meant an older Zope 4.1, a less fast Zope interface, no range support, very old Plone REST API, et cetera. And for the future, there will be more bug fixes
29:23
and features in Zope. Maybe a question, will our tiny MCE version still work in modern browsers in half a year? Same for jQuery, do we need to update that to version 3 because we're on version 1 still?
29:42
So you could think about doing a Plone 4.3 version to include changes like this and keep 5.2 really only bug fixes, which is such a version would distract from the Plone 6 work. And it would be confusing, so we really don't want to do that.
30:01
And the plan for some of those changes like jQuery and maybe tiny MCE, that could be done in an optional markup version and Plone static resources version that would then not be included automatically in 5.2 by default. But if you know what you're doing, then you could use those versions.
30:23
So keep an eye out on newer versions for those. But for developers on the core, the best place for new features is Plone 6. And that's what Eric Steel will talk about more now. Over to you, Eric.
30:43
Okay, thanks. Yeah, I kind of get the easy job of showing off the new and exciting stuff. So I really appreciate Moritz taking the time to go through and explain exactly what we're trying to do with the bug fix releases.
31:04
Okay, back to my slides. Hopefully I'm displaying correctly. Okay, excellent. Yeah, so let's talk about Plone 6 quickly. So Plone 6 really on the backend
31:22
is gonna be largely built on the promises we made in Plone 5.2. Plone 5.2, if you remember correctly, remember it was the addition of Python 3 support really going as far in on dexterity as we could. And so, and upgrading ZOKE.
31:43
So Plone 6 is gonna build on that, like I said. So we'll have, so five, we're gonna, archetypes will see an end of life. It does not work on Python 3. So it just goes away because we're dropping Python 2 support. Python 2 is no longer supported by the Python foundation.
32:01
So we will not be moving ahead with it. And another feature that's already in there, this is a removable portal quick installer. It's based on some work that Moritz did in 5.1, I believe to really improve the way we install, upgrade and uninstall add-ons in Plone.
32:24
So all of this should really be trivial if you're hosting a site on Plone 5.2. We're just removing the things that you're already no longer using. And if you're not quite there yet, it's just a reminder that that's going away. The front end is really where you're gonna see
32:41
the most obvious changes and that's happening in two ways. One is something we're calling LTS or long-term support theming. And the other is through Balto. So we're really considering Plone 6 to be a long-term support release. We wanna keep it around as long as possible
33:01
and that's made possible by some of the things that we've set up through the previous releases. So we're really pushing that new sites should plan on using Balto, but there will be continued support of server-side rendering and diazo theming.
33:21
There's a Thursdays, essentially all of Thursdays track one is gonna be talking about how, what we're doing to modernize Plone's classic UI. I'm gonna touch on it briefly here, but we're calling it a Plone classic. So there's gonna be a new updates to the Barcelonetta theme,
33:42
making it use Bootstrap 5, reducing a lot of the custom markup and styling, updates to the resource registry. Dirty little secret is the resource registry changes were pretty much a last minute fix for some problems we had in Plone 5
34:00
when we realized that certain ways mock-up was gonna make us work. So they're really setting forward to kind of correct those problems and really simplify the way bundles work, make it easier to understand and work with and really better match what the developer expectations are.
34:21
And there'll be some updates, some mock-up as well, rewriting it to use ES6 imports instead of RequireJS. There's gonna be some caching improvements and dynamic module loading. Volto is the other piece of this. So Volto is a React-based front-end
34:43
for both Plone and Guillotina, and it is compatible with both Plone 4, 5, and 6. One of the things I really like about the way they set up the Volto project is they defined a set of principles that basically all development on the project should follow.
35:05
That's approachability, putting the developer experience first, customization and extensibility. I think a well-defined UI and UX, which is something I've been begging for for years, is built on some work that Albert Casado has done and the Pastanaga UI.
35:23
Really don't over-engineer things, have one way of doing things rather than several, and the front and back end are meant to be decoupled, focusing on UI and UX implementation and upcoming challenges in the frameworks being used and really sticking with the semantic versioning process.
35:44
One of the things that really stood out to me when talking to Victor last week was when he said, we're not alone anymore. Projects always start out as one or two people working on something. And when they catch on and gain momentum, that's always just an amazing feeling.
36:05
I taught my kids to ride bikes last year and just remember that feeling of pushing them and letting go. And I think that's really where Volto has come at this point. So it's no longer just a handful of people, but it's a community who's jumped in
36:20
to help with development. That's both just individuals and entire companies. And that's really shown from what they've been able to build this year and the pace at which they've been able to do so. So they released Volto 4 in March, they call it the maturity release and they've released Volto 10 last week.
36:42
And as a plowing person, that seems like a huge jump, but just looking over the changes they're making, they're very incremental and they're very dedicated at pointing out exactly when a breaking change is happening. And those are not happening very often. So this isn't like a complete framework
37:01
we write every week like we've seen in the past with some of our JavaScript work. So I've been really fascinated to watch just how they've been able to do this. So they're iterating at a much faster pace, their incremental release is happening multiple times per week. And so like front end bugs are being fixed
37:24
pretty much right away. And yeah, this is measure development, semantically versions, all the changes are well-defined and upgrade guides are published. And a lot of what they've been able to do is really because we put this API layer in there between Plone and the front end.
37:42
And like I said, last year, the API is the contract. We have Plone REST API providing a contract between the front and back ends, which allows us to really decouple the development cycles. One of the ongoing issues in Plone is that when we really tightly couple the front and back end development, our front end work is really likely to be outdated
38:02
by the time we actually get the Plone release out. And by the same token, the back end can now remain a much more measured in how 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
38:21
our embedded front end implementation. As an example why this contract is so important, Volto works on Plone 4. So if you build a site on Plone 4 with a Volto front end, your upgrade path to Plone 5 is purely a back end only upgrade. That API contract doesn't change between the two,
38:40
only the implementation underneath. So we're close on time. So I'm gonna run through some things real quick and show a couple of demos. But so there's a new, several new blocks out, which are the base unit of the page layouts, listing and table of contents and lead image.
39:02
They're using Plone's transforms ended in the API layer to allow for pluggable and orderable data transformations when serializing and deserializing JSON, which has a lot of potential for just being amazing. There's multilingual supports, lazy loading, which reduces bundle sizes,
39:22
column ordering to the folder contents view, adding the ability to use a completely different CSS framework by separate, they've separated the CMS UI from the theme UI. So for example, by default it uses semantic UI, you can now completely just swap in bootstrap instead. And you can now set,
39:43
sorry, enforce layouts for content types. So I'm gonna show that bit. So this is, so let's go ahead and create a new dexterity content type. So this is Volto, the new front end. So I'm gonna create just a simple content type, we'll call it my content type.
40:05
And we'll go in and we'll change the behaviors. This is all stuff you've seen in the dexterity already, just for the new UI. So I'm gonna give it the lead image behavior. And then what we can do is actually
40:21
set a default layout for this. So I'm gonna enable the blocks behavior. So the vault, the editor allows us to add new layout blocks. So I'm gonna create a byline and we'll go ahead and put in some body text
40:43
and we'll add our lead image field. And so these are just providing some default values on the page layout. So that when my editors go in,
41:00
these content blocks are already pre-populated. So I'm gonna set a couple of these to be required and I'm gonna change these at the byline and lead image to have a fixed position. And we'll leave that body text as movable, just as a demo. So obviously I'm not great at page layouts.
41:22
Not all your content editors are either. So this gives you the ability to kind of keep them from making your site completely ugly if you want to. So yeah, so I've created a new instance of this content type. So call it my new page. We'll go ahead and add a lead image. This is the BAM clone that we're named after.
41:42
They just put out a new release this year. So you should probably check that out. It's definitely gonna play havoc with our marketing. But you notice that I, so those fields are already there. You notice I can only move that bottom block and I can still add more because I allowed that on this page.
42:01
So this is gonna give you a lot of flexibility in what you can allow your editors to do. They can have full control, no control at all or somewhere in between. Yeah, so we have multilingual support, lazy loading, which quite a performance optimization.
42:25
Yeah, I already talked about those. And the other thing I wanna show off is block display variations. So in this case, I'm gonna create a new folder and upload some images quickly. So this is a new folder, contents view.
42:43
Add a new folder called images. I'm gonna do a bulk upload here. So I'm just gonna drag and drop these images from my desktop. And hit next.
43:01
This is, I usually wind up having to edit my clone videos just to cut out some time. This is all real time. So that upload went from here to Germany super quickly. I'm just really impressed with the snappiness of the UI. Yeah, so I'm gonna add a listing view here.
43:22
So these are our standard, like has the same collection behaviors. So I can say, just give me all images. I can add a criteria to say which folder I wanna pull those from. So I'm gonna pull it from that images folder. So by default, this is using
43:40
just a regular listing view. So this will show any type of content in an order, but we can also switch it to a different, switch that same block to a different view, which allows us to, in this case, have a gallery view. So we could do things like sliders, tabular views,
44:02
that sort of thing. And basically take the exact same content and just display it in different ways and add that ability to change that per layout. So there's been a lot of work on add-ons. I don't have time to talk about them now, but you can check out that awesome Volto repo
44:21
in the collective, has a lot more information. There's a unified style guide, which I mentioned earlier with the Pasta Naga, which is basically helping to ensure us a similar look and feel across the entire platform, whether you're adding add-ons or not. And I hear there is a refresh coming this year. All those demos were from the volto.kitconcept.com
44:43
websites, so you can go and check that out now. It refreshes, I believe, hourly and try it out right now. Victor has a talk immediately after mine that I recommend watching, where he's going to talk about all of this. There are multiple companies using this in production now, and it's time to, as a community,
45:01
it's time to start trying it out and really making it as amazing as it has the potential to be. Yep, so that's the state of Plone and friends. Thank you. And with that, I want to thank Eric and Maurits
45:23
for a great keynote. It was really fascinating for me to watch even a more recent demo of Volto than I'd seen before and to hear all the plans that Maurits has in place for, I guess, for older versions of Plone and our scheduled roadmap for releases.
45:41
So with that, thank you very much to the both of you. And I'm looking forward to seeing all the more work that you're going to be doing for us. Thanks. Thanks.