We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Plone Loves Python 3

00:00

Formal Metadata

Title
Plone Loves Python 3
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
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
The upcoming version Plone 5.2 will support Plone 3, what does that mean for you? When should you start to use Python 3 in your new Plone projects? When and how should you migrate existing projects to Python 3? How do you migrate addons and your custom code? Drawing from the experience with the migration of Plone itself I'll answer all the questions that arise from moving to Python 3.
40
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
Codierung <Programmierung>Error messageAttribute grammarData conversionCASE <Informatik>Different (Kate Ryan album)Multiplication signString (computer science)Lecture/Conference
Execution unitCodeLine (geometry)Software developerMathematicsVideo gameCodierung <Programmierung>CASE <Informatik>Suite (music)Revision controlOffice suiteSurvival analysisSpacetimeMultiplication signCloningOperator (mathematics)WordLattice (order)Circle
Series (mathematics)PlanningBlogMultiplication sign
User interfaceMereologyGoodness of fit
Software developerResultantWhiteboardDeterminismRevision controlBitWordMultiplication signCloning
MereologySoftware developerBranch (computer science)CloningComputer animation
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
AbstractionImplementationPlane (geometry)Time zoneCodeSoftware testingChainCloningNumberStrategy gameLecture/ConferenceComputer animation
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
Beta functionGoodness of fitTable (information)
Electric currentDemo (music)State of matterAlpha (investment)CloningMultiplication signCore dumpChord (peer-to-peer)Streaming mediaComputer animationLecture/Conference
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
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
Letterpress printingSoftware engineeringMeeting/InterviewLecture/Conference
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Which which allows the following to work So this is Volto running on clone on Python 3 so that also works
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
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
Probably we don't know by how much we have no performance tests We need performance tests performance tests don't just
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
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?
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
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
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?
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
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
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
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
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
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
Do I put a label on it in on pi pi or how do I show it? There is?
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
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
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
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
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
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
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
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
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
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?
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
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
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
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
You sure thank you rich and real next next question Anyone? Okay. Thank you very much for your time. Enjoy the lightning talks