SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
U P G R A D E T O P L O N E 5
P H I L I P B A U E R P L O N E C O N F E R E N C E 2 0 1 5
Philip Bauer
Munich
starzel.de
pbauer (github / irc)
StarzelDe (twitter)
PA R T 1 : G O O G L E F O R „ M I G R AT I O N S ,
U P G R A D E S A N D R E L A U N C H E S "
„Every non-trivial upgrade
should be approached as a relaunch.“
„The primary challenge is not development but
communication and project management.“
„Bring time. And space.“
„Expect everything to break!“
„Don't experiment, document.“
„Write your code as if your own kids will inherit the
code one day.“
„Write upgrade-steps.“
„Divide and conquer.“
„Don't try more than two new things at once.“
„Use the Help.“
U P G R A D I N G F R O M P L O N E 4 T O 5
Why?
Cui bono?
An easy sell?
L I V E D E M O
I T C A N ’ T B E T H AT E A S Y
A old site with content, configuration and add-ons
www.starzel.de
I T C A N ’ T B E T H AT E A S Y
I T C A N ’ T B E T H AT E A S Y
LinguaPlone is hard to get rid of
Theming is tricky
Some add-ons work nicely in Plone 5
I S S U E S
KeyError: 'Interface
`plone.app.iterate.interfaces.IIterateSettings`
defines a field `checkout_workflow_policy`, 

for which there is no record.'
I S S U E S
ComponentLookupError: (<InterfaceClass
plone.resource.interfaces.IResourceDirectory>,
'persistent')
I S S U E S
List of content to migrate from AT to DX is empty
L I N G U A P L O N E – O H M Y !
LinguaPlone ➟ plone.app.multilingual (2.x) in 4.3.x
Documentation: https://github.com/plone/
plone.app.multilingual/issues/181
wildcard.fixpersistentutilities to the rescue!
Can someone please sprint on this?
T H E U P G R A D E - G U I D E
http://docs.plone.org/manage/upgrading/
version_specific_migration/p4x_to_p5x_upgrade.html
Needs love at sprint
Your design will break unless it is a full diazo theme
T H E D E S I G N
Just joking ;-)
T H E D E S I G N
Your design will always break
T H E D E S I G N
Disable your custom theme before migrating!
T H E D E S I G N
C O N T E N T
S E T T I N G S
<record name="plone.displayed_types">
<value purge="false">
<element>talk</element>
</value>
</record>
C O D E
A R C H E T Y P E S D E X T E R I T Y
@@pac_installer
@@atct_migrator
@@migrate_from_atct
A R C H E T Y P E S D E X T E R I T Y
@@custom_migration
A R C H E T Y P E S D E X T E R I T Y
from plone.app.contenttypes.migration
import field_migrators
A R C H E T Y P E S D E X T E R I T Y
A R C H E T Y P E S D E X T E R I T Y
ISSUES:
memory
commits
U P G R A D I N G A D D - O N S F R O M 4 T O 5
That’s your job.
Thanks

Weitere ähnliche Inhalte

Was ist angesagt?

Dreikurs model logical consequences
Dreikurs model logical consequencesDreikurs model logical consequences
Dreikurs model logical consequencesNur Fazlin Mohd Naim
 
Preparation for Instructional Materials(powerpoint)
Preparation for Instructional Materials(powerpoint)Preparation for Instructional Materials(powerpoint)
Preparation for Instructional Materials(powerpoint)Manilyn Cabayao
 
Approaches About School Curriculum
Approaches About School CurriculumApproaches About School Curriculum
Approaches About School Curriculumjoy santos
 
Concept learning strategies [autosaved]
Concept learning strategies [autosaved]Concept learning strategies [autosaved]
Concept learning strategies [autosaved]Cassandra Mobley
 
Learning Theory - Constructivism
Learning Theory - ConstructivismLearning Theory - Constructivism
Learning Theory - Constructivismsjestus
 
Instructional Materials
Instructional MaterialsInstructional Materials
Instructional MaterialsIrvin Ecalnir
 
Effective Use of Teaching Aids
Effective Use of Teaching AidsEffective Use of Teaching Aids
Effective Use of Teaching AidsJasmin Ajaz
 
Holthoff & Eichsteller Social Pedagogy In Practice
Holthoff & Eichsteller   Social Pedagogy In PracticeHolthoff & Eichsteller   Social Pedagogy In Practice
Holthoff & Eichsteller Social Pedagogy In Practicegaz12000
 
Teaching Strategies
Teaching StrategiesTeaching Strategies
Teaching StrategiesJhen Intero
 
Constructivism in the classroom
Constructivism in the classroomConstructivism in the classroom
Constructivism in the classroommlegan31
 
Application of traction in orthopaedics
Application of traction in orthopaedicsApplication of traction in orthopaedics
Application of traction in orthopaedicsPrabhnoor Hayer
 
Median nerve palsy
Median nerve palsy Median nerve palsy
Median nerve palsy Bijay Mehta
 
CURRICULUM PLANNING.pptx
CURRICULUM PLANNING.pptxCURRICULUM PLANNING.pptx
CURRICULUM PLANNING.pptxNishitPatra
 
Learning Theory by Ausubel
Learning Theory by AusubelLearning Theory by Ausubel
Learning Theory by AusubelNiena Majid
 
Kounin Model
Kounin ModelKounin Model
Kounin Modelkal2129
 
Writing A Lesson Plan
Writing A Lesson PlanWriting A Lesson Plan
Writing A Lesson PlanJeffrey Key
 

Was ist angesagt? (20)

Dreikurs model logical consequences
Dreikurs model logical consequencesDreikurs model logical consequences
Dreikurs model logical consequences
 
Preparation for Instructional Materials(powerpoint)
Preparation for Instructional Materials(powerpoint)Preparation for Instructional Materials(powerpoint)
Preparation for Instructional Materials(powerpoint)
 
Approaches About School Curriculum
Approaches About School CurriculumApproaches About School Curriculum
Approaches About School Curriculum
 
Concept learning strategies [autosaved]
Concept learning strategies [autosaved]Concept learning strategies [autosaved]
Concept learning strategies [autosaved]
 
Learning Theory - Constructivism
Learning Theory - ConstructivismLearning Theory - Constructivism
Learning Theory - Constructivism
 
Instructional Materials
Instructional MaterialsInstructional Materials
Instructional Materials
 
Effective Use of Teaching Aids
Effective Use of Teaching AidsEffective Use of Teaching Aids
Effective Use of Teaching Aids
 
Instructional Strategies
Instructional StrategiesInstructional Strategies
Instructional Strategies
 
Holthoff & Eichsteller Social Pedagogy In Practice
Holthoff & Eichsteller   Social Pedagogy In PracticeHolthoff & Eichsteller   Social Pedagogy In Practice
Holthoff & Eichsteller Social Pedagogy In Practice
 
Teaching Strategies
Teaching StrategiesTeaching Strategies
Teaching Strategies
 
Constructivism in the classroom
Constructivism in the classroomConstructivism in the classroom
Constructivism in the classroom
 
Application of traction in orthopaedics
Application of traction in orthopaedicsApplication of traction in orthopaedics
Application of traction in orthopaedics
 
Lesson plan rubric
Lesson plan rubricLesson plan rubric
Lesson plan rubric
 
Principles of Teaching
Principles of TeachingPrinciples of Teaching
Principles of Teaching
 
Authentic Assessment Tools
Authentic Assessment ToolsAuthentic Assessment Tools
Authentic Assessment Tools
 
Median nerve palsy
Median nerve palsy Median nerve palsy
Median nerve palsy
 
CURRICULUM PLANNING.pptx
CURRICULUM PLANNING.pptxCURRICULUM PLANNING.pptx
CURRICULUM PLANNING.pptx
 
Learning Theory by Ausubel
Learning Theory by AusubelLearning Theory by Ausubel
Learning Theory by Ausubel
 
Kounin Model
Kounin ModelKounin Model
Kounin Model
 
Writing A Lesson Plan
Writing A Lesson PlanWriting A Lesson Plan
Writing A Lesson Plan
 

Ähnlich wie Upgrade to Plone 5

Prototype4Production Presented at FOSSASIA2015 at Singapore
Prototype4Production Presented at FOSSASIA2015 at SingaporePrototype4Production Presented at FOSSASIA2015 at Singapore
Prototype4Production Presented at FOSSASIA2015 at SingaporeDhruv Gohil
 
Alexa Skills Kit programing for dummies
Alexa Skills Kit programing for dummiesAlexa Skills Kit programing for dummies
Alexa Skills Kit programing for dummiesNaotaka Jay HOTTA
 
PowerPoint Presentation about Programming 101 for Girls
PowerPoint Presentation about Programming 101 for GirlsPowerPoint Presentation about Programming 101 for Girls
PowerPoint Presentation about Programming 101 for GirlsImelda Reyes
 
Won't You Take Me to Chunk-y Town: Component-based theming and the future of...
 Won't You Take Me to Chunk-y Town: Component-based theming and the future of... Won't You Take Me to Chunk-y Town: Component-based theming and the future of...
Won't You Take Me to Chunk-y Town: Component-based theming and the future of...Heather Brooke Drummond
 
State of Drupal keynote, DrupalCon Dublin
State of Drupal keynote, DrupalCon DublinState of Drupal keynote, DrupalCon Dublin
State of Drupal keynote, DrupalCon DublinDries Buytaert
 
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...Holden Karau
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet CodeDavid Danzilio
 
Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...Holden Karau
 
Evolving your Design System: People, Product, and Process
Evolving your Design System: People, Product, and ProcessEvolving your Design System: People, Product, and Process
Evolving your Design System: People, Product, and Processuxpin
 
Using React for the Mobile Web
Using React for the Mobile WebUsing React for the Mobile Web
Using React for the Mobile WebC4Media
 
PHP Doesn't Suck - Notes
PHP Doesn't Suck - NotesPHP Doesn't Suck - Notes
PHP Doesn't Suck - NotesJohn Hobbs
 
code review, style guides and tools for pythin
code review, style guides and tools for pythincode review, style guides and tools for pythin
code review, style guides and tools for pythinuniversité d'el jadida
 
What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)wesley chun
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT careerJohn Mark Troyer
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...Holden Karau
 

Ähnlich wie Upgrade to Plone 5 (20)

Prototype4Production Presented at FOSSASIA2015 at Singapore
Prototype4Production Presented at FOSSASIA2015 at SingaporePrototype4Production Presented at FOSSASIA2015 at Singapore
Prototype4Production Presented at FOSSASIA2015 at Singapore
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Ploneide
PloneidePloneide
Ploneide
 
Python in 15 minutes
Python in 15 minutesPython in 15 minutes
Python in 15 minutes
 
Alexa Skills Kit programing for dummies
Alexa Skills Kit programing for dummiesAlexa Skills Kit programing for dummies
Alexa Skills Kit programing for dummies
 
PowerPoint Presentation about Programming 101 for Girls
PowerPoint Presentation about Programming 101 for GirlsPowerPoint Presentation about Programming 101 for Girls
PowerPoint Presentation about Programming 101 for Girls
 
Won't You Take Me to Chunk-y Town: Component-based theming and the future of...
 Won't You Take Me to Chunk-y Town: Component-based theming and the future of... Won't You Take Me to Chunk-y Town: Component-based theming and the future of...
Won't You Take Me to Chunk-y Town: Component-based theming and the future of...
 
State of Drupal keynote, DrupalCon Dublin
State of Drupal keynote, DrupalCon DublinState of Drupal keynote, DrupalCon Dublin
State of Drupal keynote, DrupalCon Dublin
 
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code
 
Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...
 
Evolving your Design System: People, Product, and Process
Evolving your Design System: People, Product, and ProcessEvolving your Design System: People, Product, and Process
Evolving your Design System: People, Product, and Process
 
Using React for the Mobile Web
Using React for the Mobile WebUsing React for the Mobile Web
Using React for the Mobile Web
 
PHP Doesn't Suck - Notes
PHP Doesn't Suck - NotesPHP Doesn't Suck - Notes
PHP Doesn't Suck - Notes
 
DevstackPY
DevstackPYDevstackPY
DevstackPY
 
Code Forensics
Code ForensicsCode Forensics
Code Forensics
 
code review, style guides and tools for pythin
code review, style guides and tools for pythincode review, style guides and tools for pythin
code review, style guides and tools for pythin
 
What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT career
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
 

Mehr von Philip Bauer

Growing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaisesGrowing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaisesPhilip Bauer
 
Migrations migrations migrations
Migrations migrations migrationsMigrations migrations migrations
Migrations migrations migrationsPhilip Bauer
 
Plone ♥︎ Python 3
Plone ♥︎ Python 3Plone ♥︎ Python 3
Plone ♥︎ Python 3Philip Bauer
 
Mosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always WantedMosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always WantedPhilip Bauer
 
Migrations, Upgrades and Relaunches
Migrations, Upgrades and RelaunchesMigrations, Upgrades and Relaunches
Migrations, Upgrades and RelaunchesPhilip Bauer
 
It's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypesIt's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypesPhilip Bauer
 
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...Philip Bauer
 
Plone-Content-Typen mit Dexterity
Plone-Content-Typen mit DexterityPlone-Content-Typen mit Dexterity
Plone-Content-Typen mit DexterityPhilip Bauer
 

Mehr von Philip Bauer (10)

Growing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaisesGrowing pains - PosKeyErrors and other malaises
Growing pains - PosKeyErrors and other malaises
 
Migrations migrations migrations
Migrations migrations migrationsMigrations migrations migrations
Migrations migrations migrations
 
Plone ♥︎ Python 3
Plone ♥︎ Python 3Plone ♥︎ Python 3
Plone ♥︎ Python 3
 
pdb like a pro
pdb like a propdb like a pro
pdb like a pro
 
Mosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always WantedMosaic - The Layout Solution You Always Wanted
Mosaic - The Layout Solution You Always Wanted
 
Migrations, Upgrades and Relaunches
Migrations, Upgrades and RelaunchesMigrations, Upgrades and Relaunches
Migrations, Upgrades and Relaunches
 
Pimp my Plone
Pimp my PlonePimp my Plone
Pimp my Plone
 
It's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypesIt's the way of the present - Why you should use plone.app.contenttypes
It's the way of the present - Why you should use plone.app.contenttypes
 
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
Alles in Allem. Wie man mit Deliverance existierende Inhalte oder Anwendungen...
 
Plone-Content-Typen mit Dexterity
Plone-Content-Typen mit DexterityPlone-Content-Typen mit Dexterity
Plone-Content-Typen mit Dexterity
 

Kürzlich hochgeladen

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 

Kürzlich hochgeladen (20)

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 

Upgrade to Plone 5

  • 1. U P G R A D E T O P L O N E 5 P H I L I P B A U E R P L O N E C O N F E R E N C E 2 0 1 5
  • 3. PA R T 1 : G O O G L E F O R „ M I G R AT I O N S , U P G R A D E S A N D R E L A U N C H E S "
  • 4. „Every non-trivial upgrade should be approached as a relaunch.“
  • 5. „The primary challenge is not development but communication and project management.“
  • 6. „Bring time. And space.“
  • 9. „Write your code as if your own kids will inherit the code one day.“
  • 12. „Don't try more than two new things at once.“
  • 14. U P G R A D I N G F R O M P L O N E 4 T O 5 Why? Cui bono? An easy sell?
  • 15. L I V E D E M O
  • 16. I T C A N ’ T B E T H AT E A S Y A old site with content, configuration and add-ons www.starzel.de
  • 17. I T C A N ’ T B E T H AT E A S Y
  • 18. I T C A N ’ T B E T H AT E A S Y LinguaPlone is hard to get rid of Theming is tricky Some add-ons work nicely in Plone 5
  • 19. I S S U E S KeyError: 'Interface `plone.app.iterate.interfaces.IIterateSettings` defines a field `checkout_workflow_policy`, 
 for which there is no record.'
  • 20. I S S U E S ComponentLookupError: (<InterfaceClass plone.resource.interfaces.IResourceDirectory>, 'persistent')
  • 21. I S S U E S List of content to migrate from AT to DX is empty
  • 22. L I N G U A P L O N E – O H M Y ! LinguaPlone ➟ plone.app.multilingual (2.x) in 4.3.x Documentation: https://github.com/plone/ plone.app.multilingual/issues/181 wildcard.fixpersistentutilities to the rescue! Can someone please sprint on this?
  • 23. T H E U P G R A D E - G U I D E http://docs.plone.org/manage/upgrading/ version_specific_migration/p4x_to_p5x_upgrade.html Needs love at sprint
  • 24. Your design will break unless it is a full diazo theme T H E D E S I G N
  • 25. Just joking ;-) T H E D E S I G N
  • 26. Your design will always break T H E D E S I G N
  • 27. Disable your custom theme before migrating! T H E D E S I G N
  • 28. C O N T E N T
  • 29. S E T T I N G S <record name="plone.displayed_types"> <value purge="false"> <element>talk</element> </value> </record>
  • 30. C O D E
  • 31. A R C H E T Y P E S D E X T E R I T Y @@pac_installer @@atct_migrator @@migrate_from_atct
  • 32. A R C H E T Y P E S D E X T E R I T Y @@custom_migration
  • 33. A R C H E T Y P E S D E X T E R I T Y from plone.app.contenttypes.migration import field_migrators
  • 34. A R C H E T Y P E S D E X T E R I T Y
  • 35. A R C H E T Y P E S D E X T E R I T Y ISSUES: memory commits
  • 36. U P G R A D I N G A D D - O N S F R O M 4 T O 5 That’s your job.

Hinweis der Redaktion

  1. With a stable release of Plone 5 customers you should start planning to upgrade existing sites to Plone 5. In this talk I will discuss migrations in general and especially those from Plone 4 to Plone 5. When not to upgrade and on the code-part of migrations. Mainly I will discuss what you can and should do in Upgrade-Steps and which problems await you when migrating from one Plone-Version to another. I will also discuss migrations from Archetypes to Dexterity. This talk is for developers who don't regularly write Upgrade-Steps and want to know why they should be bothered. Also if you do not write upgrade steps without ftw.upgrade you need to see this talk.
  2. who am i
  3. This is a sequel to "Migrations, Upgrades and Relaunches" given 2013 in Brasilia (http://www.youtube.com/watch?v=1Qx0JALp3lQ) 1. Lessons from part 1 ---------------------- The most important lessons from part 1 Held in Brasilia at Ploneconf 2013 and available on video Google for "Migrations, Upgrades and Relaunches"
  4. Every non-trivial upgrade should be approached as a relaunch. Be careful with words: Update, Upgrade, Migration, Redesign, Rewrite, Relaunch Almost everything is a relaunch, at least you want it to be.
  5. The primary challenge is not development but communication and project management What does the client really want?
  6. Bring time. And space you will always forget hat you'll have to migrate multiple times. Double your estimates. Get lot's and lot's of Disk-Space (and a fast SSD) Your DB will double during migrations and you need several copies of it.
  7. Expect everything to break! You will have to - fix old javascript - figure out what custom skin-templates actually did
  8. Don't experiment, document Write every problem and every solution down! Make a Plan Write down how you want to approach it A to Z and change the plan as you go. Keep the plan for future reference.
  9. Write your code as if your own kids will inherit the code one day. Do you want them to hate you?
  10. Write upgrade-steps! I wrote a upgrade-step that migrated a site from P3->P4 and ran for 14 straight hours It consisted of ~30 single steps including: - migration to blobs - migration of comments - removal of old content - running upgrade-steps for about 15 Addons - Intermediary commits You don't want to do that by hand
  11. Divide and conquer Write single upgrade-steps with commits after each one If A works use a copy of the DB at that state to write B and so on Combine to ABCDE when they work
  12. Don't try to add more than two new technologies at once. You will make your customer pay for your inexperience
  13. Use the Help plone.api ftw.upgrade
  14. Why would you want to migrate to Plone 5? First mistake: It’s not about you. It’s about your client. You want to play with the newest shiny toys and bang you head against the resource-registry! But: Why would your customer want to migrate if she/he has a really nice running site based on Plone 4 Customers don't like paying for upgrades that give them no real benefit. They don't want you to have fun using the newest toys The want Design, Usability, Functionality Is Plone 5 an easy sell for a customer with a existing site? Great responsive design ootb -> Meh They probably have a great responsive design Web Editors -> Meh TinyMCE 4 not perfect either Security -> Meh! Is taken for granted. TTW Features -> Meh! Great for prototyping and clients who want to do stuff themselved. Not very important in most our setups. Dexteriy -> Meh! The probably use it already UX and Usability > That increases productivity \o/ Demo of P5 for a client. At the time I showed the new folder_contents it was a done deal. Most relevant for people who work with content. Not always an easy sell! We could discuss the marketing-side of upgrading to Plone 5 It's ok to wait with migrating until 5.0.1 is out. It's not ok to use P4 in new projects unless you have no budget at all to deal with new stuff When not to upgrade: No budget Many incompatible Addons Short site-lifespan No developer-resources I did not migrate any client-project yet.
  15. Show 4.3 demo-site $ cd buildout43 $ ./bin/instance fg http://localhost:8080/Plone/ http://localhost:8080/Plone/ein-oerdner/ein-termin Migrate live to 5.0 $ cd .. $ cd buildout/var $ extract 43.tar.gz $ cd .. $ ./bin/instance fg http://localhost:8080/manage Upgrade and show http://localhost:8080/Plone/ein-oerdner/ein-termin (comment, static portlet, workflow state) http://localhost:8080/Plone/ein-oerdner/a-newsuetem/@@sharing (local roles, image migrated to behavior) Then migrate to DX install pac migrate types show same links Summary: Easy as a pie! Can it really be that easy?
  16. Another example: Starzel migration $ cd ~/workspace/starzel $ ./bin/instance fg $ open http://localhost:8080/starzel $ open http://localhost:8080/starzel/portal_quickinstaller/manage_installProductsForm
  17. These are the add-ons
  18. For this talk I migrated our company-site and this was my experience: - LinguaPlone is hard to get rid of - Theming is tricky - Some addons actually work nicely in Plone 5: - collective.plonetruegallery - collective.disqus - Products.PloneFormGen - collective.js.jqueryui Use checkouts or newest versions Main issues: - Products.LinguaPlone - plone.app.theming was not installed by migration - Theme breaks everything -> Concentrate on content and logic first, design later If everything works as it should in Barceloneta then focus on the theme Not possible for people without developer skills!!!
  19. Reinstall plone.app.iterate (outdated version)
  20. install plone.app.theming (was not installed in old site)
  21. Remove Language-Index! Another issue: thousands of old spam comments skip migration of comments or upgrade-step to remove them (before migrating from 4 to 5)
  22. LinguaPlone > plone.app.multilingual !!! You should migrate from LinguaPLone to Plone.plone.app.multilingual 2.x before migrating from 4 to 5!!! Needs more work Needs more documentation Please sprint on this Wishlist: Working complete uninstall-method for LinguaPlone Documentation Don't expect people who wrote packages to take care of them forever! Someone please adopt/shepherd the maintenance of p.a.m! You still need wildcard.fixpersistentutilities to remove LP *phew*! We already migrated several 4.x-sites from LP to p.a.m but it is always a adventure and never fun.
  23. Read the Upgrade-Guide! Needs some more work! During the sprint: Write down all issues you encounter when upgrading add-ons (google-doc, we'll merge it into the rst after the sprint).
  24. Once the migration is done you can re-enable and fit it.
  25. The Theme will break Sunburst does not work in P5. structure of many elements has changed (html5!) Disable your custom theme before migrating! For www.starzel.de: The Design probably sucked anyways. Create a new one or keep default until we find time for that.
  26. Content Default AT content will work as before. The main thing is that you should actually migrate to Dexterity (next part)
  27. Settings When you modified plone-setting via GS (either with portal_properties or portal_registry) portal_properties is deprecated but works for you custom settings All plone-settings are kept and migrated to portal_registry add custom types to navigation api.portal.get_registry_value("plone.displayed_types")
  28. No code-examples. Would be too many… Before you work on custom code figure out if it is actually needed any more! Example: custom code replaced by LanguageSwitcher in plone.app.multilingual Use plone.api! Some imports changed (CMFDefault is gone). formlib is gone: controlpanels and custom forms should be moved to z3c.form portlets also moved to z3c.form your overrides/patches will likely break
  29. Install plone.app.contenttypes (@@pac_installer) Installs pac but only replaces types without any instances Migrate content with form: @@atct_migrator In code use the view @@migrate_from_atct: migration_view = api.get_view('migrate_from_atct', portal) results = migration_view(content_types=['News Item', 'Image']) Only works for default-types!!! Allows migration of schemaextendend types (contentleadimage -> leadimage-behavior). Is extendable. Has several in-place patches (linkintegrity, notifyModified, UUIDIndex etc...) Might be modified so that it is better reusable for custom types) Partial migrations Choose which types you want migrated. The others stay AT (not recommended but may be necessary if you have heavily customized types)
  30. Custom migration form form: @@custom_migration Show Example? Migrate ATEvent to NewsItem Create Site with ATCT: - Disable "setup_content" - Enable "Archetypes-based default content for Plone" @@pac_installer @@custom_migration Maybe has bugs. Please test and fix instead of writing custom addons
  31. Custom migrations Products.contentmigration is great! use field migrators in plone.app.contenttypes.migration.field_migrators! migrate relations with plone.app.contenttypes.migration.utils.link_items Migrate the branch you are standing on... e.g. all references are stored in an annotation on the portal and restored from there
  32. memory useage PR to add transactions after every X items and after each type is ready for review (thanks Daniel Jowett!) Create tickets please! And fix them as well.
  33. This is the main sprint topic. Does it solve a problem that actually still exists (collective.contentleadimage)? If there are content-types: - AT works in P5 (Example: Products.PloneFormGen) - Maybe migrate them to DX (provide a custom migration using the code-examples above) -> Warning: that means a lot of extra work! Fix resources (css/js) Functionality tied to content-types (e.g. a special field) -> turn into a behavior Some add-ons are not worth migrating since there are similar addons that already work with P5