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?

passive heating system with trombe wall
passive heating system with trombe wall passive heating system with trombe wall
passive heating system with trombe wall GrkemDiken
 
Ashrae standards for energy efficiency in buildings
Ashrae standards for energy efficiency in buildingsAshrae standards for energy efficiency in buildings
Ashrae standards for energy efficiency in buildingsUNEP OzonAction
 
Environment for architecture.ppt
Environment for architecture.pptEnvironment for architecture.ppt
Environment for architecture.pptSanthushFernando2
 
Wind effect on high rise buildings
Wind effect on high rise buildingsWind effect on high rise buildings
Wind effect on high rise buildingsKumar Roshan
 
Sustainable Cities: Urban Heat Island
Sustainable Cities: Urban Heat IslandSustainable Cities: Urban Heat Island
Sustainable Cities: Urban Heat IslandAnuradha Mukherji
 
Green Building Materials
Green Building MaterialsGreen Building Materials
Green Building MaterialsPulkit Shukla
 
Passive heating and cooling
Passive heating and coolingPassive heating and cooling
Passive heating and coolingKhushiBibolia
 
Presentacion, arquitectura solar
Presentacion, arquitectura solarPresentacion, arquitectura solar
Presentacion, arquitectura solar1973824
 
Materials for Passive Solar Heating
Materials for Passive Solar HeatingMaterials for Passive Solar Heating
Materials for Passive Solar HeatingPiyush Verma
 
5. Thermal comfort 2 (indices)
5. Thermal comfort 2 (indices)5. Thermal comfort 2 (indices)
5. Thermal comfort 2 (indices)Rohit Kumar
 

Was ist angesagt? (20)

passive heating system with trombe wall
passive heating system with trombe wall passive heating system with trombe wall
passive heating system with trombe wall
 
Ashrae standards for energy efficiency in buildings
Ashrae standards for energy efficiency in buildingsAshrae standards for energy efficiency in buildings
Ashrae standards for energy efficiency in buildings
 
Passive design strategy
Passive design strategyPassive design strategy
Passive design strategy
 
Urban Heat Island Effect
Urban Heat Island EffectUrban Heat Island Effect
Urban Heat Island Effect
 
Warm humid climate
Warm humid climate Warm humid climate
Warm humid climate
 
Environment for architecture.ppt
Environment for architecture.pptEnvironment for architecture.ppt
Environment for architecture.ppt
 
Wind effect on high rise buildings
Wind effect on high rise buildingsWind effect on high rise buildings
Wind effect on high rise buildings
 
Thermal Comfort
Thermal ComfortThermal Comfort
Thermal Comfort
 
Sustainable Cities: Urban Heat Island
Sustainable Cities: Urban Heat IslandSustainable Cities: Urban Heat Island
Sustainable Cities: Urban Heat Island
 
Green Building Materials
Green Building MaterialsGreen Building Materials
Green Building Materials
 
Austin Shelter for Women and Children - LEED Report
Austin Shelter for Women and Children - LEED ReportAustin Shelter for Women and Children - LEED Report
Austin Shelter for Women and Children - LEED Report
 
Housing
Housing Housing
Housing
 
Dbn163 # 04. macro micro climate
Dbn163 # 04. macro micro climateDbn163 # 04. macro micro climate
Dbn163 # 04. macro micro climate
 
Passive heating and cooling
Passive heating and coolingPassive heating and cooling
Passive heating and cooling
 
Presentacion, arquitectura solar
Presentacion, arquitectura solarPresentacion, arquitectura solar
Presentacion, arquitectura solar
 
Materials for Passive Solar Heating
Materials for Passive Solar HeatingMaterials for Passive Solar Heating
Materials for Passive Solar Heating
 
Green Buildings
Green BuildingsGreen Buildings
Green Buildings
 
5. Thermal comfort 2 (indices)
5. Thermal comfort 2 (indices)5. Thermal comfort 2 (indices)
5. Thermal comfort 2 (indices)
 
Triple net zero overview recorded gbc 012416
Triple net zero overview recorded   gbc 012416Triple net zero overview recorded   gbc 012416
Triple net zero overview recorded gbc 012416
 
Daylighting Buildings
Daylighting BuildingsDaylighting Buildings
Daylighting Buildings
 

Ä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

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 

Kürzlich hochgeladen (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 

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