SlideShare a Scribd company logo
Distributed patching with composer
Christian Opitz
Netresearch GmbH & Co. KG - Nonnenstraße 11d - 04229 Leipzig - www.netresearch.de - Info@netresearch.de
Why?
Why?
• We are dedicated to open source technologies and using
them in our everydays business
• Open source projects:
• A lot of stakeholders involved
• Great for the vitality of the projects and for the dynamic of
the development
• Also challenging as you never know if the development
will match your requirements
• If your requirements aren’t met, you can go various but
stony ways…
⇒ We want an easy and flexible way!
How?
How?
• If your requirements aren’t met, you can go various but
stony ways:
• working around if possible - that’s what we do all day
• patching: full flexibility but hard to keep track of and maintain especially across projects
• waiting until a change/bugfix did it to the release - conformist but
potentially deadly for your project
• forking - also fully flexible but completely separates you from the
project by all means
• switching to another product - well...

• As a first step, we want to reduce the drawbacks of
patching, make it easier and reliable
What?
What?
• We’ve developed a composer plugin that allows packages to
provide patches for other packages
• Patches are applied/reverted when both of those are
installed/updated
• Before update or uninstallation of one of the packages
(patch or patched) the patches will be reverted
• The plugin tests all patches before it applies them
• When one patch would fail, current behaviour is that:
• All already applied patches will be reverted
• The installation won’t fail as the plugin applies the patches after the
complete installation/update
What?
• Patch packages can provide the patches configuration
(JSON) completely via composer.json or include them
completely or partly from an URL
• Patches are referred to via URLs - works also with local files
(within the patch packages)
• The patches are strictly bound to a version - if the package
to patch is not installed in a supported version it won’t be
patched
Showcase
Showcase
Roadmap / ideas
Roadmap / ideas
• Make the patching process interactive (f.i. ask whether to
stop on patch failure)
• Implement a reporting feature to allow agencies or patch
distributors to keep track of which installations have which
patches installed
(could f.e. be used to collect usages of TYPO3 patches to
indicate their relevance and quality)
• Implement a patch management backend - either as web
app on Flow basis or as satis extension
By the way
By the way
• Along with the composer patches plugin we’ve developed
another composer typo3 installer which
• enables installation of TYPO3 in the preferred way
(with symlinks to vendor or with direct copies, when symlinking is not
possible)
• implements the common update procedure

• Is there interest to make an official typo3/cms package on
packagist that uses f.i. this installer?
Use it
Composer packages (available from packagist):
•netresearch/composer-patches-plugin
• https://packagist.org/packages/netresearch/composerpatches-plugin

•netresearch/composer-installers
• https://packagist.org/packages/netresearch/composerinstallers
Thank you for your attention!

More Related Content

PDF
Contributing to Koha
PDF
Develop Operation, Operate Development: A journey towards service delivery at...
PDF
Lightweight continuous delivery for small schools
PPTX
Develop 4 Developers
PPTX
Git and GitFlow branching model
PDF
A Git Workflow Model or Branching Strategy
PPT
icebreakerwithdevops-150218112943-conversion-gate02
PDF
VersionEye for PHP User Group Berlin
Contributing to Koha
Develop Operation, Operate Development: A journey towards service delivery at...
Lightweight continuous delivery for small schools
Develop 4 Developers
Git and GitFlow branching model
A Git Workflow Model or Branching Strategy
icebreakerwithdevops-150218112943-conversion-gate02
VersionEye for PHP User Group Berlin

What's hot (20)

PPTX
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
ODP
OpenNTF Essentials
PDF
Eric tucker - Eliminating "Over the Fence"
PDF
How We Use GitHub
PPTX
A successful Git branching model
PDF
EFL QA: Where Are We and Where Should We Go?
PPTX
Back to basic: continuous integration (Madrid DevOps)
ODP
Dev01 - Don't Reinvent the Wheel
PPTX
Testing Without a GUI Using TestComplete
PDF
Natron lgm2014
PPTX
Advanced deployment scenarios
PDF
Trunk based development for Beginners
PPTX
Advanced deployment scenarios (netcoreconf)
PPTX
Dev ops engineering and chatbots
PDF
How to เสร็จเร็ว (Use Agile for your project with team)
PDF
Introduction to continuous delivery
PPT
Continuous deployment steve povilaitis
PDF
Embracing the Change: How to Win with Gutenberg
PPT
Continuous Delivery Agiles 2014 Medellin
PDF
How do you agile your global team to contribute to openstack
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
OpenNTF Essentials
Eric tucker - Eliminating "Over the Fence"
How We Use GitHub
A successful Git branching model
EFL QA: Where Are We and Where Should We Go?
Back to basic: continuous integration (Madrid DevOps)
Dev01 - Don't Reinvent the Wheel
Testing Without a GUI Using TestComplete
Natron lgm2014
Advanced deployment scenarios
Trunk based development for Beginners
Advanced deployment scenarios (netcoreconf)
Dev ops engineering and chatbots
How to เสร็จเร็ว (Use Agile for your project with team)
Introduction to continuous delivery
Continuous deployment steve povilaitis
Embracing the Change: How to Win with Gutenberg
Continuous Delivery Agiles 2014 Medellin
How do you agile your global team to contribute to openstack
Ad

Similar to Distributed patching with composer (20)

PDF
Best practices for using open source software in the enterprise
PDF
Webinar - Continuous Integration with GitLab
PPTX
Microservices
PPTX
Respina shaper presentation
PDF
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
PPTX
An introduction to the office devpnp community initiative
PPTX
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
PDF
Continuous delivery
PDF
Vimeo and Open Source (SMPTE Forum 2015)
PDF
Understanding DevOps in simpler way with Continuous Delivery
PDF
Building a custom cms with django
PPTX
Continuous Integration
PPTX
Mastering Complex Application Deployments
PDF
OpenChain at EOLE 2017
PPTX
Continuous Deployment to the cloud
PDF
Continuous Deployment of your Application - SpringOne Tour Dallas
PPTX
Warsaw MuleSoft Meetup #6 - CI/CD
PDF
The Agile and Open Source Way (AgileTour Brussels)
PPT
Mobile media module part 6 - app development rev-mf
PDF
From hello world to goodbye code
Best practices for using open source software in the enterprise
Webinar - Continuous Integration with GitLab
Microservices
Respina shaper presentation
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
An introduction to the office devpnp community initiative
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
Continuous delivery
Vimeo and Open Source (SMPTE Forum 2015)
Understanding DevOps in simpler way with Continuous Delivery
Building a custom cms with django
Continuous Integration
Mastering Complex Application Deployments
OpenChain at EOLE 2017
Continuous Deployment to the cloud
Continuous Deployment of your Application - SpringOne Tour Dallas
Warsaw MuleSoft Meetup #6 - CI/CD
The Agile and Open Source Way (AgileTour Brussels)
Mobile media module part 6 - app development rev-mf
From hello world to goodbye code
Ad

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PPTX
sap open course for s4hana steps from ECC to s4
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPT
Teaching material agriculture food technology
KodekX | Application Modernization Development
sap open course for s4hana steps from ECC to s4
“AI and Expert System Decision Support & Business Intelligence Systems”
Encapsulation_ Review paper, used for researhc scholars
Review of recent advances in non-invasive hemoglobin estimation
20250228 LYD VKU AI Blended-Learning.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Digital-Transformation-Roadmap-for-Companies.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Network Security Unit 5.pdf for BCA BBA.
Reach Out and Touch Someone: Haptics and Empathic Computing
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Teaching material agriculture food technology

Distributed patching with composer

  • 1. Distributed patching with composer Christian Opitz Netresearch GmbH & Co. KG - Nonnenstraße 11d - 04229 Leipzig - www.netresearch.de - Info@netresearch.de
  • 3. Why? • We are dedicated to open source technologies and using them in our everydays business • Open source projects: • A lot of stakeholders involved • Great for the vitality of the projects and for the dynamic of the development • Also challenging as you never know if the development will match your requirements • If your requirements aren’t met, you can go various but stony ways… ⇒ We want an easy and flexible way!
  • 5. How? • If your requirements aren’t met, you can go various but stony ways: • working around if possible - that’s what we do all day • patching: full flexibility but hard to keep track of and maintain especially across projects • waiting until a change/bugfix did it to the release - conformist but potentially deadly for your project • forking - also fully flexible but completely separates you from the project by all means • switching to another product - well... • As a first step, we want to reduce the drawbacks of patching, make it easier and reliable
  • 7. What? • We’ve developed a composer plugin that allows packages to provide patches for other packages • Patches are applied/reverted when both of those are installed/updated • Before update or uninstallation of one of the packages (patch or patched) the patches will be reverted • The plugin tests all patches before it applies them • When one patch would fail, current behaviour is that: • All already applied patches will be reverted • The installation won’t fail as the plugin applies the patches after the complete installation/update
  • 8. What? • Patch packages can provide the patches configuration (JSON) completely via composer.json or include them completely or partly from an URL • Patches are referred to via URLs - works also with local files (within the patch packages) • The patches are strictly bound to a version - if the package to patch is not installed in a supported version it won’t be patched
  • 12. Roadmap / ideas • Make the patching process interactive (f.i. ask whether to stop on patch failure) • Implement a reporting feature to allow agencies or patch distributors to keep track of which installations have which patches installed (could f.e. be used to collect usages of TYPO3 patches to indicate their relevance and quality) • Implement a patch management backend - either as web app on Flow basis or as satis extension
  • 14. By the way • Along with the composer patches plugin we’ve developed another composer typo3 installer which • enables installation of TYPO3 in the preferred way (with symlinks to vendor or with direct copies, when symlinking is not possible) • implements the common update procedure • Is there interest to make an official typo3/cms package on packagist that uses f.i. this installer?
  • 15. Use it Composer packages (available from packagist): •netresearch/composer-patches-plugin • https://packagist.org/packages/netresearch/composerpatches-plugin •netresearch/composer-installers • https://packagist.org/packages/netresearch/composerinstallers
  • 16. Thank you for your attention!