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

Moving big projects to Python 3

00:00

Formal Metadata

Title
Moving big projects to Python 3
Subtitle
Did you think the language differences were difficult bit?
Title of Series
Number of Parts
118
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Next year Python 2 is no longer maintained. But you have a monster code base with clever tricks and libraries that don't support Python 2, and your data may be stored in a format that is hard to move Python 3. And that's the easy bit. This talk focuses on the process of moving, not the code changes. Because it's the process that is the hard part. How do you get your code in a state where it's ready to move? How do you get the whole team on the boat to Python 3? All Python 3 talks I have seen, including those I have given, and all the texts on how to port, including the book I wrote, focus on the code changes. With increasing backwards compatibility in Python 3 and forward-compatibility in Python 2, this actually became a lesser problem for big code bases. The extra issues of large, old code bases Can you stop adding features? (1 min) Separate team vs getting everyone on it (2 min) Python 2 compatibility: You need it (1 min) The steps Fix your development process (2 min) Replace old libraries, or take over maintenance and port them (2 min) Make sure your tests are solid (1 min) Run 2to3 but only backwards compatible fixers (2 min) Run tests on Python 3 to stop backsliding (4 min) Run all tests: Expansive or slow Store passed tests Detect tests that change Turning it off adds a lot of extra work Port all your little utilities and tool scripts (1 min) Fix fix fix fix (1 min) Add tests with Python 2 data, to test migration (2 min) You might need migration scripts Extra careful staging tests (1 min) Production: Try, fail, repeat (1 min) Clean the code up (3 min)
Keywords
GoogolPoint cloudPhysical systemMaxima and minimaCharge carrierScale (map)Service (economics)Core dumpDigital signalContinuous integrationServer (computing)Integrated development environmentVirtual realityMultiplication signComputer-assisted translationIntegrated development environmentCuboidMedical imagingLevel (video gaming)Statistical hypothesis testingCore dumpAdditionProduct (business)Process (computing)QuicksortStatistical hypothesis testingPhysical systemMereologySoftware developerCartesian coordinate systemWeb 2.0Software frameworkServer (computing)Interactive televisionStability theoryProjective planeProbability density functionComa BerenicesRevision controlComplex systemMathematicsSoftwareWeb applicationError messageType theoryState of matterAsynchronous Transfer ModePoint (geometry)Procedural programmingSlide ruleBitNormal (geometry)Service (economics)LengthContinuous integrationNetwork topologySinc functionLatent heatTurbo-CodeTraffic reportingSelf-organizationOpen sourceLogical constantBranch (computer science)PiLecture/ConferenceComputer animation
Level (video gaming)Revision controlHash functionCurvatureLatent heatOvalHash functionInstallation artMultiplication signUnit testingSoftware maintenanceLine (geometry)PlanningFunctional (mathematics)Statement (computer science)CASE <Informatik>Statistical hypothesis testingRevision controlSoftware developerLevel (video gaming)Standard deviationSelf-organizationLibrary (computing)Type theoryPersonal identification numberProjective planePoint (geometry)CodeMathematicsService (economics)Execution unitMedical imagingElectronic mailing listStatistical hypothesis testingBitPhysical systemComputer fileINTEGRALSystem callSinc functionMetropolitan area networkFlow separationComputer animation
Strategy gameCodeOperations researchRevision controlTotal S.A.Normal (geometry)Military operationStatistical hypothesis testingNormal operatorSoftware developerTask (computing)Extension (kinesiology)BitMultiplication signInsertion lossError messageGoodness of fitDuality (mathematics)TrailRevision controlService (economics)CodeWhiteboardMathematicsGame theoryPhysical systemStrategy gameContinuous integrationStatistical hypothesis testingStatistical hypothesis testingFunctional (mathematics)Software bugSet (mathematics)Branch (computer science)Structural loadProduct (business)Total S.A.Level (video gaming)
Integrated development environmentString (computer science)ASCIIWritingHuman migrationStatistical hypothesis testingMiniDiscStatistical hypothesis testingLevel (video gaming)CodeCore dumpScripting languageError messagePlanningComputer fileDatabaseMultiplication signoutputStatistical hypothesis testingPlug-in (computing)Uniform resource locatorMereologyPhysical systemReal-time operating systemStatistical hypothesis testingIntegrated development environmentProduct (business)CodeHuman migrationLine (geometry)Virtual realityRead-only memoryWritingMiniDiscDirectory serviceProjective planeMobile appOrder (biology)Level (video gaming)Revision controlQuicksortStructural loadCartesian coordinate systemUnicodeComputer animation
Term (mathematics)Multiplication signElectronic mailing listProjective planeDrop (liquid)Core dumpResultantMereologyLecture/Conference
Lecture/Conference
Transcript: English(auto-generated)