Plone Loves Python 3
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 | 53 | |
Author | ||
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/54852 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
Plone Conference 201837 / 53
2
3
11
12
13
16
19
20
21
24
34
35
37
38
39
40
42
50
52
00:00
UnicodeString (computer science)MiniDiscSqueeze theoremString (computer science)Cartesian coordinate systemRepresentation (politics)Computer fileException handlingCloningBitType theoryVideo gameUnicodeMiniDiscCodeSqueeze theoremShape (magazine)WhiteboardProcess (computing)WordDifferent (Kate Ryan album)Uniqueness quantificationLecture/ConferenceComputer animation
02:37
Codierung <Programmierung>Error messageAttribute grammarData conversionCASE <Informatik>Different (Kate Ryan album)Multiplication signString (computer science)Lecture/Conference
03:51
Execution unitCodeLine (geometry)Software developerMathematicsVideo gameCodierung <Programmierung>CASE <Informatik>Suite (music)Revision controlOffice suiteSurvival analysisSpacetimeMultiplication signCloningOperator (mathematics)WordLattice (order)Circle
06:48
Series (mathematics)PlanningBlogMultiplication sign
07:27
User interfaceMereologyGoodness of fit
08:34
Software developerResultantWhiteboardDeterminismRevision controlBitWordMultiplication signCloning
10:01
MereologySoftware developerBranch (computer science)CloningComputer animation
10:34
Plane (geometry)AbstractionLibrary (computing)Maxima and minimaMIDILimit (category theory)DemonSoftware developerVideo gameAlpha (investment)Table (information)Multiplication signEmailProcess (computing)Computer configurationBranch (computer science)Connectivity (graph theory)Computer architectureInterface (computing)Software testingTheory of relativityDependent and independent variablesHuman migrationWordTerm (mathematics)Information securityCloning1 (number)Computer animation
13:16
AbstractionImplementationPlane (geometry)Time zoneCodeSoftware testingChainCloningNumberStrategy gameLecture/ConferenceComputer animation
13:55
Software testingDemo (music)Right angleMaxima and minimaCloningPerspective (visual)Moment (mathematics)Wave packetError messageSoftware testingDemo (music)MathematicsWebsiteNumberTotal S.A.Goodness of fitWeb browserStrategy gameSoftware bugMultiplication sign
17:25
Beta functionGoodness of fitTable (information)
17:59
Electric currentDemo (music)State of matterAlpha (investment)CloningMultiplication signCore dumpChord (peer-to-peer)Streaming mediaComputer animationLecture/Conference
18:38
Plane (geometry)WebsiteEvent horizonWeb pagePasswordInformation securityWindowMenu (computing)Law of large numbersLibrary catalogRevision controlDependent and independent variablesIntegrated development environmentDatabaseConfiguration spaceComputer configurationSoftware developerInheritance (object-oriented programming)Web pageRevision controlComputer animation
19:17
StatisticsInteractive televisionInformationContext awarenessPlane (geometry)Law of large numbersForm (programming)Web pageBoom (sailing)Normed vector spaceEvent horizonDecision tree learningDemo (music)Electric currentState of matterValue-added networkSineSoftware developerForm (programming)Multiplication signCloningInteractive televisionTesselationDemo (music)Video gameElectronic mailing listGodComputer animation
21:48
Letterpress printingSoftware engineeringMeeting/InterviewLecture/Conference
22:21
Process (computing)Drop (liquid)Type theoryComplex (psychology)CodeHuman migrationLattice (order)Configuration spaceRevision controlDatabaseFile Transfer ProtocolDrop (liquid)Software developerCore dumpWeb 2.0Software bugCodeHuman migrationProduct (business)Software testingElectronic program guideMultiplication signProgramming languageCloningPoisson-KlammerForcing (mathematics)Client (computing)PlanningNormal (geometry)Default (computer science)2 (number)MathematicsOnline helpProjective planeForm (programming)Type theoryServer (computing)NumberSerial portInclusion mapAlpha (investment)Process (computing)Expert systemInternet forumSampling (statistics)Noise (electronics)Row (database)Computer animation
30:18
Drop (liquid)Programmable read-only memoryWebDAVFile Transfer ProtocolCAN busRed HatBackupData storage deviceDatabaseSoftware testingDefault (computer science)Projective planeFile Transfer ProtocolLaptopRevision controlWindowBitBinary fileProgramming languageDebuggerHuman migrationProduct (business)CloningInstance (computer science)Moment (mathematics)Survival analysisShared memoryTemplate (C++)String (computer science)Wave packetData storage deviceChord (peer-to-peer)MereologyProcess (computing)File systemSoftware developerCore dumpVideoconferencingPower (physics)Server (computing)MathematicsPlanningEqualiser (mathematics)Software frameworkType theoryMultiplication signContent (media)Metric systemLine (geometry)Equivalence relationWeb 2.0MiddlewareBackupForm (programming)Moving averageCompilation albumVideo game consoleoutputWebsiteConfiguration spaceLecture/Conference
37:57
Kolmogorov complexitySystem programmingWrapper (data mining)Electronic program guideAlpha (investment)EmailElectronic mailing listMatrix (mathematics)Similarity (geometry)Disk read-and-write headSoftware testingRevision controlNumberOvalChord (peer-to-peer)Core dumpOpen setLocal ringTraffic reportingCloningComputer animationLecture/Conference
40:15
Kolmogorov complexity40 (number)CloningPlanningTerm (mathematics)Moment (mathematics)Point (geometry)Control flowQuicksortNormal (geometry)Information securityRevision controlState of matterReal numberEnterprise architecturePhysical systemProgramming languageOperating systemFlow separationMobile appLevel (video gaming)Musical ensembleMultiplication signComputer animationLecture/Conference
Transcript: English(auto-generated)
00:05
Thanks a lot that was nice Got no trials here though although my last job as a member of the plumb board of directors was to put forth a motion to buy Rainbow trout's pillow shaped rainbow at Rainbow trout paid shaped pillows
00:22
Excellent, we'll have yeah, that's a bit too dark. Maybe no. I like it dark. Why not? Okay, let's get some technical facts out of the way first Python 3 was released in 2008 and the main difference between try pythons 2 and Python 3 is the handling of strings or rather text and bytes
00:47
Text is what used to be what used to be unicode in Python 2 and bytes is what used to be string So now string is bytes in Python 2 and string is text in Python 3 which is confusing
01:03
But there is something that might help you bytes are measured in kilos stored on disks and transferred through cables it's just a Little helper for you. So in the future, please call them by the correct name They're called bytes and text or text and bytes and never say unicode or string again
01:22
I don't want to hear that words these words So if you have an application this is what you should do usually it's called the unicode sandwich Which means outside the application there's bytes inside the application There's text and whatever get goes out or to the disk or over the cable is bytes again
01:42
But as life is there's lots of exceptions exam for example transforms export import file representations and applications made might ring a bell Type checking and so on so things are a bit more complex than they see
02:02
But we in clone have had nice helpers and still have nice helpers For that one is used to be called safe unicode now It's called safe text this the both work still so you don't have to change your code And the other is used to be safe and code is called safe bytes
02:21
And there's also a third one is called safe native string which returns bytes in Python 3 and text and Bytes in Python 2 sorry typo and text in Python 3 So why is that important to have these because in Python 3 a couple of things changed? The first thing is implicit conversion
02:43
so if you have Compare a byte to a text which string to unicode. I'm never going to say that again. That was the last time I said that That's going to be true, and if you add byte to text it's going to be text And if you add text to bytes also also going to be text so that was the fun Python two times in Python 3
03:03
none of this will work because Bytes is not text is something different. It's not equal you can't add byte to tech Bytes to text or the other way around but both don't work
03:23
you Switching to explicit conversion also a stuff changed because you were able to encode A byte to a byte in Python 2 you can't do that anymore in Python 3 When you try to encode a byte to a byte you get a attribute error and the same
03:41
Is true with text you could decode decode in this case text to text in Python 2 and in Python 3 That is no longer possible also super fun iterating Iterating over bytes is well Python 2 absolutely normal in Python 3
04:00
super unexpected for unless you are already a Python 3 developer, so The last line is actually what you need when you need when you need code that does exactly what it did in Python 2 So that whole thing is weird and there are a ton more changes in Python 3 compared to Python 2 and
04:21
most of them are really great, and you're gonna love them once you start working with them, but Except that you actually have to learn them Python 3 3.3 was released in 2012 and I consider it as mature or a lot of people considered as mature because
04:41
Because we're lazy because now you were able to do you text and Which and in Python 2 was always allowed to do B bytes which allows you Works nicer and allows you to write code that runs in Python 2 and Python 3 at the same time
05:01
So there are you and B. You could call them. No ops, but I had a longer discussion They're actually not no ops so in some cases when if you have weird encodings Stuff is actually happening there, but you don't have to care about that So text versus bytes is the main issue that you're gonna encounter when migrating code and it makes
05:22
Much more sense in Python 3 so your life is going to be better in the future But writing code that works in Python 2 and Python 3 is not that easy Okay, that's the technical stuff Let's talk about Brazil The plon conference in Brazil in 2013 Python 3 3 was released the day before
05:45
pyramid already supported Python 3 Jenga was working on version 1 dot They were working on release 1.5 with the Python 3 support Paul ever Everett and me we had a little talk and he told me that
06:02
Plone was in for a hard time The end of life for Python 2 was scheduled for January 1st 2020 and With this in mind. I invited everybody to an open space and we mingled in the hallway sat around a huge circle Eric short showed a slide and
06:21
Before that meeting Paul told me he would not say a word Because he didn't want to push his opinion on me. He was not a plone stakeholder. He didn't use Plone He didn't develop loan. He was just interested in us our survival. So who have you know Paul? So those who know him you might be aware that keeping his young last shot is not his strongest suit
06:46
so he said said this and We were Thinking about that problem for a long time So the thing is he was right soap was dead in 2010. There was a soap
07:04
summit in Germany and it ended without any plans for the future and If you're really interested into that in that you can read a series of blog posts by my time Fasten or talk to other people who were there some of them are here and in the following years since 2010 not a lot happened
07:21
And so it seemed likely that soap will not be ported to Python 3 After that conference and after the conference sprint a couple of us did a trip to drop his saw on the east coast of Brazil and By the way, it was an excellent sprint and should be a hard requirement for every sprint to have sprint stand-ups in the pool
07:44
a couple of us during that thing made a bike trip to Down the road basically to the easternmost part of the American continent We had cheap and good caipirinhas
08:02
cheers and We had dip in the ocean and as I swam there I started get anxious Because I became aware that to the east north and south of me There was nothing but a seemingly endless body of water and beneath me more of the same
08:23
So I headed back to the beach again to my caipirinha And I dreamed of a coast that seemed very far away. Let's put that away let's give this coast a name is let's call it Python 3 and We knew we needed to get there because the continent we were on was doomed
08:45
I'm not talking about the Brazilian elections, even though the Brazilians might disagree that Doomed is Brazil So Plone needed something to carry it across substance D was all the rage back then and
09:02
Paul Everett was an understandably interested to get us across to pyramid and A lot of ideas got kicked back and forth for example Spanky being his over enthusiastic self Said sure, let's just rewrite it all on pyramid will be done by Christmas
09:24
Was the year he joined the board and Both things didn't yield very many a lot of results actually so fun fact substance D. Was released yesterday Version 1.0 is not a joke Yes
09:42
Other ideas were kicked around like taking over the whole development of soap and but to keep it short basically We had no fucking clue what we're gonna do and Paul's words sounded a bit worrying for to us But you know what happens to prophets of doom. There's they're proven wrong most of the times and
10:02
Soap was not dead in actually in large parts due to the renaissance of the soap developer community is Big is that the fact becoming true that we can land to Python 3 Sale over the seas, okay enough lame metaphors
10:21
Last year in Barcelona Eric said that before already Eric merged these of four clip into the clone 5-2 master branch and the work to get there actually took Two years to finish the clip Hannes wrote was innocently innocent. How do you say that word innocently called?
10:44
Updates of dependencies and Was created now three years ago And you see the clip still says we were not able to switch to pyramid of substance D soon Somewhere in the text is there so that was still an an option so after a year of unsteady development
11:03
we finally had all tests passing on soap for zero alpha one and From the ashes rose Hanush lifting and broke everything again At least that's what that's how I felt when all of our tests started to fail again
11:21
The soap community had actually kicked back to life again Not 100% the same people or a couple couple new coming in and development had picked up And I remember in Boston after the conference and the sprint I was Prepared to write an angry angry email. I was working with Jens on these old for
11:40
Stuff and I tried to write an angry email how dare you break all of our stuff Fortunately David talked me out of it and Made me realize that it makes much more sense to be grateful that these upcoming unity actually started working on that again But use you need to understand that at that time
12:03
The soap and Clone were not on the best terms. We decided had decided to fork a couple of soap packages because the responsiveness to even security related issues had virtually ceased to exist so It seemed like though was in controllably twitching sometimes dead and sometimes
12:25
Partly alive instead of being angry. We were happy so That all worked out So even though a lot of time went into the sprints. It was clear that Plone would not fix the soap migration problem itself
12:45
Because what was ported in the first place was the soap component architecture packages of components Soap interface and all that stuff and the zodb Soap to itself was not touched for a long time took a while But flip one three five one was finally merged at the conference in Barcelona and the new branch
13:05
was ready to start porting prone porting clone to Python 3 because Michael hobbits had Created a branch of soap that was running on Python 3 So how do you port clone when you have 250 packages steep?
13:22
Dependency chain and none of that stuff is actually running on Python 3 yet Actually a lot of them are but none of your own stuff There was no way to test what we were doing because the whole testing stack was not ported You couldn't start a clone. You couldn't even run built out in Python 3 itself. So
13:42
Right at the sprint in Barcelona a bunch of people started going through all the packages in our dependencies Plone dot plone These packages and try to migrate them to Python 3 With strategy number one flying blind so we used a couple of nice tools six sixer and Python modernize
14:03
We tried our best at educated guessing and we tested the changes that we did in Python 2 So as long as the Python 2 tests were not breaking We had not yet broken clone at least so again we were flying blind because we could neither test nor run clone, but
14:24
After at a who are you missing something, but there was a the at the sprint in Innsbruck in February this year a Moment came when I finally were started to approach the problem from the other perspective
14:42
Others were still working on the test infrastructure and porting packages Wrote whiskey setups and whatnot and I took the Liberty and Started to try to start up clone in Python 3 so you have to know that when you start up clone in Python 3 and it's not Python 3 compatible like any other package. It'll stop
15:03
It won't finish the startup We sit on any syntax error and import errors and I had about had to fix about 500 of those that we had missed using these tools that we had used before and Only weeks later full of work on March 19 2018 this year I was on a train to the plon tag on in Berlin and Max West Max
15:25
Somewhere hey Max you were snoring to the right of me loudly keeping me awake and Finally plon managed to start up for the very first time in Python 3 I was able to create a site
15:40
It was a great day But there was nothing yet to see in the browser since rendering and theming was all still broken But at least in Python worked and I could PDB into the site and like see stuff happening there And after that plon tag on in Berlin with very important contributions from David Alessandro and Michael Hovitz
16:02
Theming and rendering started to work and we were actually able to look at clone and start to test features There were still a lot of There was still a lot of stuff broken But we were able to create a nightly demo put that out to the public and have people test that
16:23
And very true to the tradition of the plon community We did not test any of that or did anyone ever open that website hands up Yay, good. We could have Stefan we could have just gone to the beer garden at that sprint so
16:41
We'd rather not test and complain afterwards about the total lack of quality assurance The third perspective started to approach started to become realistic as well fast forward through a summer of joyful bugs that needed fixing test isolation issues that are
17:01
heartbreaking and need to be hunted down and there was Even the very epic sprint in Halle the assault lab sprint that you might have heard about yet already and One week after that sprint in October 13th 2018. We finally had 10,000 passing tests in Python 2 7 3 6 and 3 7
17:26
That was a good day another good day a lot of good days So in the following week, we pressed a lot of buttons and Python 3 support finally landed and clone master and On to a release not so fast. Thank you
17:42
first though for needed to be released for betas beta 7 because a lot of stuff changed there that was done this Monday and since then Eric and Moritz and a lot of others were busy releasing package after package after package and Actually
18:00
Ten minutes ago Eric and me did a fist bump now actually half an hour ago before my talk because we finally released Plone 5.2 alpha 1 pending on This clone org and it's ready for the grabs
18:25
So I'm gonna still demo the core dev because that it wouldn't I wouldn't have time for the other thing So let me show you oh Not seeing anything so this is
18:40
After a lot of work everything looks the same excellent Super boring. So this is the front page if you if you really want you can edit it and Everything works Try to find the safe button So there is also a couple of development tools that were ported already including the debug toolbar and
19:07
To so that you know, I'm not kidding you there is the here is the Python version and There is the you can do interactive
19:20
PDB stuff here. So, you know that add-on that's should be in everybody develop every developers toolbox There's also How do I close that like this During the sprint we also ported
19:40
Easy form it's not there's not a final release out yet that runs on Python 3, but it it works So porting add-ons is not that hard And you can here you can create a form and also I ported clone tiles to Python 3
20:03
Which which allows the following to work So this is Volto running on clone on Python 3 so that also works
20:23
Since you all know clone and that's all I'm gonna demo So let's continue with this Okay So You might ask yourself
20:41
who Who paid for this all who did who made that possible? No one paid for it as it's Usually in the plum community was all pro bono and a community effort and it's time to thank a lot of people who? Did a lot of work there? Mostly because they're all not here the many people in these up community
21:03
Michael who with Stefan I don't know how the Sharners listing and receivers and many many others Marius get me nuts Jason Madden Jim Fulton a lot of people who were busy and helped us getting stuff released and merged and tested and they Contributed in a big way, and there are a lot of people from the plum community who were
21:26
Very active in helping there this list is definitely not complete But since yesterday when Eric Said please stand up if you worked on that only four people stood up There are some more we it's not only four people who did that and without all of us
21:45
That wouldn't have been possible. So you might think a life of a person who's doing Python 3 Porting for Plone is terrible. It actually is not I I got to go to a lot of sprints. This was Finland in the middle of the night and summer actually
22:03
This is the bush and shank sprint. We actually worked in that hot We also emptied a whole fridge of white wine. It was huge that fridge, but you know, we're Plone That's also a bush and shank sprint Innsbruck fun sprint at home
22:21
also Just an excuse a mini sprint to meet people and Get set go sailing with Eric. That was great and the smallest sprint ever in my garden and the biggest sprint in salt labs and in Halla, so
22:41
To thank all the people who did that work It would be really really nice if you would not decide that this Python 3 stuff is for sissies and you'd rather continue to use Python 2 Instead you should adopt Python 3 in your Plone projects and maybe hire us and others who helped To help you. So you should go how should you go about porting to Python 3 your own projects?
23:08
First thing plan ahead. You only got 14 months left After those you'll have to tell your clients that you're running on a super secure system on a unsupported and terribly outdated Programming language that might be okay if you're running your dentists website
23:24
But if you're doing that for the armed forces of the University of the Armed Forces or the CIA This will simply not do So there's a simple brackets There are six steps. You'll have to follow to upgrade to Python 3 first is upgrade to Plone 5 to
23:44
Still use Python 2 7 for that shouldn't be too hard the changes between 5 1 and 5 2 are Not that big There are really nice features in that Eric told talked about them. So you're gonna gain them and as well second Drop archetypes. That's not asking too much because like I wrote the migration or for default types in
24:06
2013 and we had added helper methods and even a form where you can click your migrations together In 2015, so you had ample warning third and I don't know. There's probably the easiest of all of these
24:24
Migrate your code to Python 3 do that without a database And write your code that it supports Python 2 and Python 3 if You have a small add-on Your code is in a small add-on just start up and fix whatever pops up if it's a bit bigger
24:43
Use Python modernize first and do the exact same thing with tests the only really terrible thing is some serialization issues emails maybe and doc tests That's scary sometimes and
25:02
Test everything manually that is not tested Number four do exactly the same with migrate add-ons that you didn't migrate right yourself The good thing is everyone benefits who uses these add-ons Number five is migrate your database. I'm not gonna say anything to you to that about that go to David's talk tomorrow
25:21
It's very important. That's actually not that easy, but he's doing all the work. So it's gonna be easy for you There will be a downtime or a read-only time in your database Unless someone has a lot of time and money and will do some in-place stuff, but probably not
25:41
Number six done deploy on Python 3 and please test your setup Early because we're now using waitress a whiskey publisher server and that's That's it it's easy You should start that process as early as possible because you're gonna have unexpected problems
26:02
Probably add-ons that you didn't know the other actually used or that actually used archetypes and you didn't know about that 2019 might be much busier for you than you expect and it I would not wait for a final release of clone 5-2 to start the planning and testing of that migration and
26:21
Hire experts to help you if you get stuck You can and you should work iteratively That means you do not have to do everything at the same time You can migrate from clone for three with lingua clone a way to clone up multilingual From archetypes to dexterity on Python 5-2 while still running Python 3 you can even run
26:45
Include with dexterity on Python 3. I don't think anyone tested lingua clone on Python 3 But you can still run it might still on Python Clone 5-2. Sorry on Python 3. It'll never work
27:01
But you can still run archetypes on clone 5-2, but only in Python 2 Instead of doing everything at the same time go step by step and remember that your Python 3 compatible code Can be run on Python 2 without any issues You might want to know when there's a final release 5 alpha 1 5 2 alpha 1 is out now and
27:24
5 2 should be out in February. That's cutting it close I know, but we want to give you at least 10 months of time To test and start your migrations and we're gonna do five to one five to two bug fix releases if you find any bugs And maybe even help fix those and that will be nice
27:44
so There are some to do's still Those people who really need a replacement for FTP or web dev need to figure out how to do that I'm pretty sure that the core developer community will not provide that
28:02
There may be an option if you're interested in that and look need to look at that a data make Database migrations need to be finished and documented Also, we need an upgrade and porting guide that needs to be written and published and read and corrected because if there's something wrong
28:24
Thank you Some important add-ons need to be ported and released so that it makes easier makes it easier for non-technical people to who use these To adopt that version and we should have some performance tests, which we don't
28:42
Come to the sprint these these are all major sprint topics for this weekend and Bring your add-ons I And maybe others will be available to help you migrate add-ons that you need in your products I
29:00
Say help not migrate because I don't want to make give the impression that I will do all the Python 3 migrations from here for here on So please bring a core dev build-out with Python 3 as it's explained in a as a ticket 2041 in CMF clone
29:20
I updated that the day before yesterday, so it that should work bring that to the sprint at the add-on you want to migrate to the configuration and I'll help you migrate your add-ons so I Anticipated a couple of questions, so I'm gonna ask them myself because that's quicker
29:46
You can you can add yourself your own questions afterwards, so what about Python for? Python 4 is not going to be a problem because Python 4 supposed to be a minor normal release upgrade release like between Python 3 7 & 3 8 they just don't want to have a
30:05
310 version so they call that Python 4 so don't worry about that When will clone drop support for Python 2 The answer is not before we have a very good reason to do so maybe in clone 7
30:21
It might allow us to clean up some code and remove these lines if 6 pi 2 then blah blah blah do something But it would not At the moment we don't have a reason if I'm on or someone else comes up with a very good reason that It runs in async now being which wouldn't work in Python 2 we might do that earlier
30:44
But it not in Python and not in clone 6 What about soap 5 next question? There was no plan no roadmap Yet, but there were discussions for further cleanup speed up and stuff but
31:01
If you're interested in that you need to contact Michael Hovitz or others from these our community But it's not gonna be as big a change as from the soap to To soap for that was a nightmare Okay
31:22
No Don't don't try to postpone the entire inevitable that is a really bad idea We get we're a small community compared to others, and we're supporting two Python versions developing and maintaining two front ends
31:41
We don't have the the power to also maintain two content-type frameworks don't ask for that How do we replace FTP and web def there may be a solution in a whiskey middleware at least for web def There is something it's called whiskey dev Whiskey dev don't read the Doc's iOS the documentation
32:04
Who's interested in can check that out FTP? I don't know that feels so very 80s. I'm Don't know Why did yes why not So Ramon answered that question before
32:23
At in the talk in the room above There is no equivalent add-on ecosystem feature equality is not achieved, and it's not a replacement it is a completely different thing it has a Reason to exist on its own it is not the future of clone 7 maybe
32:44
clone 8 Maybe 7 2 I don't know we do these big changes in small versions There is no migration path different database so many things so Can I now use async and wait in my clone projects?
33:03
You can but it won't really help you because it's still flown and soap Feel free to experiment and change that Okay my favorite question Are you kidding me so yes Python 3 will make clone run faster
33:34
Probably we don't know by how much we have no performance tests We need performance tests performance tests don't just
33:43
Appear like magic they need to be written Configured there needs to be a server that does that there need to be some historical metrics. I have the Impression that 5-1 is actually slower than 5-2 at 5-0 I don't know why because I've never tested it properly
34:03
So we need these at the sprints people could work on that yoni or ponin He said he has us here. He knows how to do that, but he doesn't have the time. It's the same as everything Can I run the same database in Python 2 and Python 3 no you can't?
34:23
Probably not Unless it's easy form no but it will Prevent clones market share from dropping to zero So it was a question of survival and not a question of
34:44
Huge marketability. It's just a total marketing fail to say we're running on an outdated programming language That's a tough one because nobody has tested that yet we are shipping with a waitress set up by default which is actually a
35:02
Historically evolved from How's it called Medusa so from soap? So it's close to our hearts You should wait for documentation We're still learning or you should write the documentation yourself the setup at the moment is still the same So how you run it?
35:21
It's been instance fg bins instance start and it runs Medusa because that's a new dependency for us so for a That actually we I merged that Two hours ago before that it was been whiskey now. We made it a bit simpler for you We're still learning and you should help us
35:45
Probably do you have a Windows laptop we can test it at the sprint production tools Backup is probably not working because it's not part of the core def and not tested yet, but
36:01
That would be a nice sprint topic because it's a it's a recipe is also an add-on. It's a pipey package That RS and roll storage probably Burke. I think there are releases that support Python 3 Although we have not tried because we're we just made a release an hour ago
36:23
So everything has to be tested and the people who are testing that are you There's no secret Plone core developer cabal who tests and fixes everything This is a community job. This is an important question Bob templates plone
36:44
Packages already work in Python 3 So the the the package that we create during the master in clone trainings called clone console Plone yeah comp on site that works in Python 3 but Bob templates plone might not because it does a lot of string stuff and file system stuff and
37:04
same is true with the CLI so these need to be ported and That's all I have for questions, maybe you have some more please Alexander maybe you answer ask the question I repeated for the video do I
37:39
Do I put a label on it in on pi pi or how do I show it? There is?
37:46
We have troph now. You're not answering these questions Alexander. I'm he's asking me questions. Thank you You can answer the questions in your talks So there each package has troph classifiers in the setup py and you just add support for the Python version that you're testing
38:04
we're testing with Python 3 6 & 3 7 and We are Yes, you can add a tag to a pull request that would be nice and Once it's working we make a release on Python 3 on pi P And also we have this the list of most favored add-ons. I guess
38:27
there should be a checkbox next to these if they run on Python 3 and just send an email to or yeah make a Make a ticket and say please add that to the to the list of add-ons and that it's running on Python 3
38:44
Thank you another one Did I ask all the questions that you had in your head that was my intention David similar question if I'm
39:01
Reporting an add-on. How can I test my add-on to make sure that it continues to work in both Python 2 and Python 3? That's an excellent version You probably need to use Travis for that with a test matrix and you so you need to update the build out to use clone 5 to alpha 1
39:22
Please not Please not let's do it. We can't discuss that over the sprint. It needs to go in that in the porting guide Well, we're using we should use talks for the test wrapper thing But a lot of old add-ons do not have that yet Let's we need to figure something out. I put mostly ported stuff. That is
39:46
From somehow in the core and the core dev and I just used the core dev and added my add-on to the test eggs and to the eggs I didn't commit that and Then ran the tests against the newest clone stack because there was no clone release. You can do that as well locally
40:03
There's a locals. There's a low in the ticket for how how to run flow. I'm gonna open that tick No, I'm not gonna do that I'm gonna show you the number maybe say and tell you the number again That would be
40:23
2041 2041 that has the documentation. Okay more questions I'm such just to confirm that The normal promise around like security will be sort of covered for the last two major plan versions doesn't only counts if you're running
40:41
Like when six is released Hopefully before to seven finishes then it's five two on three like I didn't get that question Sorry, can you repeat it with what do we tell customers in terms of security? With regard like basically when two seven is is is gone we can't make any promises, right?
41:01
So we can't say that last two Python up plan versions are supported anymore. Can we well that's that's a question for the release for the security team Hello, we never the clone Never makes a promise for the operating system or the programming language. We only support
41:23
Plone itself. Yeah, so That is just not our concern We know this this issue But it's we don't make guarantees and we don't break these guarantees because we never made them these so Maybe from the point of the security team at the state
41:42
We are at the moment. We still support Python versions in several setups that are already outdated and out of the security support as We as the clone security team only support clone and
42:01
In some ways the soap Packages it depends on you if you're running a system There are solutions like redhead enterprise that will support Python to seven till Another few years, but yeah, don't don't don't advertise that
42:22
You sure thank you rich and real next next question Anyone? Okay. Thank you very much for your time. Enjoy the lightning talks