SlideShare a Scribd company logo
1 of 15
Download to read offline
© 2017 Magento, Inc. All rights reserved.
© 2017 Magento, Inc. Page | 2
History. First Release. Magento 2 RC. November 5, 2015
#1. Dev. Manager
#4. QA Manager
#3. Director of M2#2. Lead M2 Architect
#5. VP of M2 Technology
(making a photo)
Developer
5 Managers + 1 Developer = One Magento 2 release
© 2017 Magento, Inc. Page | 3
Where we are…
 2.0.0 – November 16, 2015
 2.0.1 – January 19, 2016
 …..
 2.0.8 – July 18, 2016
 2.0.9 – August 3, 2016
 2.0.10 – October 7, 2016
 2.0.11 – December 13, 2016
 2.0.12 – January 27, 2017
 2.0.15 – February 13, 2017
 2.1.0 – June 23, 2016
 2.1.1 – August 25, 2016
 2.1.2 – October 10, 2016
 2.1.3 – December 8, 2016
 2.1.4 – January 23, 2017
 2.1.5 – February 15, 2017
 …..
 2.2.0 - TBD
Minor Release
Minor Release
20 patch releases, 1 minor release
© 2017 Magento, Inc. Page | 4© 2017 Magento, Inc. Page | 4
1 Platform Version vs Module Version
© 2017 Magento, Inc. Page | 5
Platform Version vs Module Version
A Platform Patch Release can trigger an increase in the PATCH
version of the module.
Platform Version
Minor Patch .
2 . 1 . 4
100 . 1 . 4
Major Minor Patch
Module Version
A Platform Minor Release can trigger an increase in the MINOR or
MAJOR version of the module.
Note: In exceptional cases, we can increase the MINOR version of the
module in the scope of a PATCH platform release.
For example: magento/module-vault version was changed from
100.1.1 to 100.2.0 in the scope of the Magento 2.1.3 release (added
new method to API interface).
© 2017 Magento, Inc. Page | 6
Platform Version vs Module Version
Module Name Release 2.0.0-rc Release 2.0.12 Release 2.1.0 Release 2.1.4
Catalog 100.0.0 100.0.12 101.0.0 101.0.4
Checkout 100.0.0 100.0.11 100.1.0 100.1.4
CMS 100.0.0 100.0.5 101.0.0 101.0.3
Customer 100.0.0 100.0.10 100.1.0 100.1.4
Sales 100.0.0 100.0.12 100.1.0 100.1.4
Platform Version
2 . 1 . 4
Minor Patch
Module Version
100 . 1 . 4
Major Minor Patch
© 2017 Magento, Inc. Page | 7© 2017 Magento, Inc. Page | 7
2 The Code
© 2017 Magento, Inc. Page | 8
The Code
Public vs Private code
• Private code should not be used by third-party
modules.
• Modifications will trigger only PATCH version bumps.
• Significant changes to private code of a module will
trigger a bump to its MINOR or MAJOR number.
Private Code
• Public code may consist of Public API (Application
Programming Interface) and public customization
points.
• Changes to public code always trigger MINOR or
MAJOR version bumps.
Public Code
© 2017 Magento, Inc. Page | 9
PHP Interfaces/Classes (marked with @api)
 inject in constructor and/or call
methods
 add a plugin to class/interface
 extend from abstract class
 configure class preference
in di.xml
 configure constructor argument
in di.xml
 implement interface
 redefine interface preference
in di.xml
Dependency on MAJOR version Dependency on MINOR version
100 . 1 . *
Major Minor Patch
100 . * . *
Major Minor Patch
API and Customization Points: Part I
© 2017 Magento, Inc. Page | 10
The Code
API and Customization Points: Part II
API Version of dependency Code change
Events triggered by component
(both static & dynamic)
subscribe to event - MAJOR • removed event argument
• removed event
Layout handles declared by modules • add block instance – MAJOR
• move/remove blocks and containers –
MAJOR
• new layout page handle – MINOR
• new container/block added to handle
– MINOR
• removed/renamed container/block -
MAJOR
• removed layout handle - MAJOR
XML configuration type • provide additional configuration to the
configuration type – MAJOR
• extend existing XSD - MINOR
• renamed/removed schema file or
configuration type - MAJOR
• added obligatory node/attribute
• removed node/attribute - MAJOR
• add new optional node/attribute -
MINOR
Structure of system configuration • configure module through system
configuration values – MAJOR
• read system configuration using
config path - MAJOR
• removed/renamed config path -
MAJOR
© 2017 Magento, Inc. Page | 11
Module Dependency Rules
Core module dependency rules
1. Specify a dependency on all used modules in the 'require' section of the
module’s composer.json file.
2. Specify a dependency only on used modules, not on meta packages ('product-
community-edition').
3. Specify the MAJOR and/or MINOR version number of a used module if the module API
or customization points are used.
4. Specify the MAJOR, MINOR, and PATCH versions of a used module if the module
private code is used (called or customized).
© 2017 Magento, Inc. Page | 12© 2017 Magento, Inc. Page | 12
3 Code Deprecation
© 2017 Magento, Inc. Page | 13
Code Deprecation
Deprecation Example
• We will remove deprecated @api code only in the next minor product version.
• If we are deprecating an API or customization point in favor of a new implementation, we will add
suggested implementation in @see annotation.
© 2017 Magento, Inc. Page | 14
Code Deprecation
Deprecation use cases (@api and not @api)
http://devdocs.magento.com/guides/v2.1/extension-dev-guide/backward-compatibility.html
PHP use cases Alternative implementation
interface/class removal Mark with @deprecated tag instead of removing it. Also mark all its methods as
deprecated.
public & protected method
removal
Mark with @deprecated tag instead.
Continue returning the same results from the method if possible, so the old
functionality is preserved.
constructor modification Add the new optional parameter to the constructor at the end of the arguments
list. Fetch the dependency from ObjectManager
Mark as @deprecated any outdated constructor arguments.
public & protected property
removal
Mark with @deprecated tag instead.
Continue storing the value in the property, if possible, so the old functionality is
preserved.
© 2017 Magento, Inc. Page | 15
Magento 2 Backward Compatible Policy
Thank you!

More Related Content

What's hot

What's hot (18)

Meet Magento Belarus - Elena Leonova
Meet Magento Belarus - Elena LeonovaMeet Magento Belarus - Elena Leonova
Meet Magento Belarus - Elena Leonova
 
Ups and Downs of Real Projects Based on Magento 2
Ups and Downs of Real Projects Based on Magento 2Ups and Downs of Real Projects Based on Magento 2
Ups and Downs of Real Projects Based on Magento 2
 
Sergii Shymko - Code migration tool for upgrade to Magento 2
Sergii Shymko - Code migration tool for upgrade to Magento 2Sergii Shymko - Code migration tool for upgrade to Magento 2
Sergii Shymko - Code migration tool for upgrade to Magento 2
 
How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)
 
Magento 2 + composer
Magento 2 + composerMagento 2 + composer
Magento 2 + composer
 
Convert Magento 1 Extensions to Magento 2
Convert Magento 1 Extensions to Magento 2Convert Magento 1 Extensions to Magento 2
Convert Magento 1 Extensions to Magento 2
 
Toronto Virtual Meetup #12 - Testing Strategies and MUnit Test Recorder
Toronto Virtual Meetup #12 - Testing Strategies and MUnit Test RecorderToronto Virtual Meetup #12 - Testing Strategies and MUnit Test Recorder
Toronto Virtual Meetup #12 - Testing Strategies and MUnit Test Recorder
 
Magento 2: A technical overview
Magento 2: A technical overviewMagento 2: A technical overview
Magento 2: A technical overview
 
Magento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryMagento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 Summary
 
Backwards Compatibility Developers Guide. #MM17NL
Backwards Compatibility Developers Guide. #MM17NLBackwards Compatibility Developers Guide. #MM17NL
Backwards Compatibility Developers Guide. #MM17NL
 
MuleSoft MUnit Test Recorder Meetup
MuleSoft MUnit Test Recorder MeetupMuleSoft MUnit Test Recorder Meetup
MuleSoft MUnit Test Recorder Meetup
 
Ahmadabad mule soft_meetup_17april2021_mule4_cryptography
Ahmadabad mule soft_meetup_17april2021_mule4_cryptographyAhmadabad mule soft_meetup_17april2021_mule4_cryptography
Ahmadabad mule soft_meetup_17april2021_mule4_cryptography
 
Backward Compatibility Developer's Guide in Magento 2. #MM17CZ
Backward Compatibility Developer's Guide in Magento 2. #MM17CZBackward Compatibility Developer's Guide in Magento 2. #MM17CZ
Backward Compatibility Developer's Guide in Magento 2. #MM17CZ
 
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid DeploymentMulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
 
Which is better asp.net mvc vs asp.net
Which is better  asp.net mvc vs asp.netWhich is better  asp.net mvc vs asp.net
Which is better asp.net mvc vs asp.net
 
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpracticesBhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
 
20210916 mule soft_meetup_nz_online_uploadedversion
20210916 mule soft_meetup_nz_online_uploadedversion20210916 mule soft_meetup_nz_online_uploadedversion
20210916 mule soft_meetup_nz_online_uploadedversion
 

Viewers also liked

Angelo Coletta - Dalla Mass production alla mass customization
Angelo Coletta - Dalla Mass production alla mass customizationAngelo Coletta - Dalla Mass production alla mass customization
Angelo Coletta - Dalla Mass production alla mass customization
Meet Magento Italy
 

Viewers also liked (20)

Vitalyi Golomoziy - Integration tests in Magento 2
Vitalyi Golomoziy - Integration tests in Magento 2Vitalyi Golomoziy - Integration tests in Magento 2
Vitalyi Golomoziy - Integration tests in Magento 2
 
Dirk Pinamonti - User Experience, Mobile, Cross Border: grow your business wi...
Dirk Pinamonti - User Experience, Mobile, Cross Border: grow your business wi...Dirk Pinamonti - User Experience, Mobile, Cross Border: grow your business wi...
Dirk Pinamonti - User Experience, Mobile, Cross Border: grow your business wi...
 
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
 
Andrea Zwirner - Magento security and hardening strategies
Andrea Zwirner - Magento security and hardening strategiesAndrea Zwirner - Magento security and hardening strategies
Andrea Zwirner - Magento security and hardening strategies
 
Mauro Lorenzutti - Il passaggio da Magento 1 a Magento 2: le 5W
Mauro Lorenzutti - Il passaggio da Magento 1 a Magento 2: le 5WMauro Lorenzutti - Il passaggio da Magento 1 a Magento 2: le 5W
Mauro Lorenzutti - Il passaggio da Magento 1 a Magento 2: le 5W
 
Alejandro Cordero - Secure Electronic Commerce New Business and Repeat Busine...
Alejandro Cordero - Secure Electronic Commerce New Business and Repeat Busine...Alejandro Cordero - Secure Electronic Commerce New Business and Repeat Busine...
Alejandro Cordero - Secure Electronic Commerce New Business and Repeat Busine...
 
Alan Rhode: Ecommerce export: IVA, dazi doganali, accise e altri importanti t...
Alan Rhode: Ecommerce export: IVA, dazi doganali, accise e altri importanti t...Alan Rhode: Ecommerce export: IVA, dazi doganali, accise e altri importanti t...
Alan Rhode: Ecommerce export: IVA, dazi doganali, accise e altri importanti t...
 
Giovanni Cappellotto - Come gestire le recommendation e le personalizzazioni ...
Giovanni Cappellotto - Come gestire le recommendation e le personalizzazioni ...Giovanni Cappellotto - Come gestire le recommendation e le personalizzazioni ...
Giovanni Cappellotto - Come gestire le recommendation e le personalizzazioni ...
 
Giulio Drei - Studio di fattibilità di un progetto eCommerce
Giulio Drei - Studio di fattibilità di un progetto eCommerceGiulio Drei - Studio di fattibilità di un progetto eCommerce
Giulio Drei - Studio di fattibilità di un progetto eCommerce
 
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
 
Angelo Coletta - Dalla Mass production alla mass customization
Angelo Coletta - Dalla Mass production alla mass customizationAngelo Coletta - Dalla Mass production alla mass customization
Angelo Coletta - Dalla Mass production alla mass customization
 
Alessandro La Ciura - Live Chat ed Ecommerce: (ma) la chat vende veramente di...
Alessandro La Ciura - Live Chat ed Ecommerce: (ma) la chat vende veramente di...Alessandro La Ciura - Live Chat ed Ecommerce: (ma) la chat vende veramente di...
Alessandro La Ciura - Live Chat ed Ecommerce: (ma) la chat vende veramente di...
 
Federico Minzoni - Software as a Service
Federico Minzoni - Software as a ServiceFederico Minzoni - Software as a Service
Federico Minzoni - Software as a Service
 
Roberto Fumarola - Il marketing nel post spedizione, tante opportunità da cog...
Roberto Fumarola - Il marketing nel post spedizione, tante opportunità da cog...Roberto Fumarola - Il marketing nel post spedizione, tante opportunità da cog...
Roberto Fumarola - Il marketing nel post spedizione, tante opportunità da cog...
 
William Sbarzaglia - Le buyer personas nell'e-commerce
William Sbarzaglia - Le buyer personas nell'e-commerceWilliam Sbarzaglia - Le buyer personas nell'e-commerce
William Sbarzaglia - Le buyer personas nell'e-commerce
 
Gian Mario Infelici - Marketing automation e omnicanalità: come unire i canal...
Gian Mario Infelici - Marketing automation e omnicanalità: come unire i canal...Gian Mario Infelici - Marketing automation e omnicanalità: come unire i canal...
Gian Mario Infelici - Marketing automation e omnicanalità: come unire i canal...
 
Iacopo Pecchi - Aprire un E-commerce in CINA dalla A alla Z
Iacopo Pecchi - Aprire un E-commerce in CINA dalla A alla ZIacopo Pecchi - Aprire un E-commerce in CINA dalla A alla Z
Iacopo Pecchi - Aprire un E-commerce in CINA dalla A alla Z
 
Francesca Bazzi - Lo scenario e-commerce in Italia e nel mondo: dati, trend e...
Francesca Bazzi - Lo scenario e-commerce in Italia e nel mondo: dati, trend e...Francesca Bazzi - Lo scenario e-commerce in Italia e nel mondo: dati, trend e...
Francesca Bazzi - Lo scenario e-commerce in Italia e nel mondo: dati, trend e...
 
Max Pronko - Best practices for checkout customisation in Magento 2
Max Pronko - Best practices for checkout customisation in Magento 2Max Pronko - Best practices for checkout customisation in Magento 2
Max Pronko - Best practices for checkout customisation in Magento 2
 
Irene Iaccio - Magento2 e RequireJS. The right way
Irene Iaccio - Magento2 e RequireJS. The right wayIrene Iaccio - Magento2 e RequireJS. The right way
Irene Iaccio - Magento2 e RequireJS. The right way
 

Similar to Oleksii Korshenko - Magento 2 Backwards Compatible Policy

Similar to Oleksii Korshenko - Magento 2 Backwards Compatible Policy (20)

Architecture and Analytical Study of Magento
Architecture and Analytical Study of MagentoArchitecture and Analytical Study of Magento
Architecture and Analytical Study of Magento
 
Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
 
Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2
 
How to migrate from Magento 1 to Magento 2
How to migrate from Magento 1 to Magento 2How to migrate from Magento 1 to Magento 2
How to migrate from Magento 1 to Magento 2
 
Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17
 
Backward Compatibility Developer's Guide in Magento 2
Backward Compatibility Developer's Guide in Magento 2Backward Compatibility Developer's Guide in Magento 2
Backward Compatibility Developer's Guide in Magento 2
 
Magento 2 Composer for Extensions Distribution
Magento 2 Composer for Extensions DistributionMagento 2 Composer for Extensions Distribution
Magento 2 Composer for Extensions Distribution
 
Migrating from Magento 1 to Magento 2
Migrating from Magento 1 to Magento 2Migrating from Magento 1 to Magento 2
Migrating from Magento 1 to Magento 2
 
Magento 2.2: It's Coming Right For You! | Colorado Magento Meetup
Magento 2.2: It's Coming Right For You! | Colorado Magento MeetupMagento 2.2: It's Coming Right For You! | Colorado Magento Meetup
Magento 2.2: It's Coming Right For You! | Colorado Magento Meetup
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2
 
Migrating from Magento 1 to Magento 2 @ Magento Meetup Wien
Migrating from Magento 1 to Magento 2 @ Magento Meetup WienMigrating from Magento 1 to Magento 2 @ Magento Meetup Wien
Migrating from Magento 1 to Magento 2 @ Magento Meetup Wien
 
Pivotal Cloud Foundry 2.5: A First Look
Pivotal Cloud Foundry 2.5: A First LookPivotal Cloud Foundry 2.5: A First Look
Pivotal Cloud Foundry 2.5: A First Look
 
Mli 2017 technical backward compatibility
Mli 2017 technical backward compatibilityMli 2017 technical backward compatibility
Mli 2017 technical backward compatibility
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
Angular vs React: Building modern SharePoint interfaces with SPFx
Angular vs React: Building modern SharePoint interfaces with SPFxAngular vs React: Building modern SharePoint interfaces with SPFx
Angular vs React: Building modern SharePoint interfaces with SPFx
 
Yoav Kutner Dutchento
Yoav Kutner DutchentoYoav Kutner Dutchento
Yoav Kutner Dutchento
 
Backward Compatibility Developer's Guide Webinar
Backward Compatibility Developer's Guide WebinarBackward Compatibility Developer's Guide Webinar
Backward Compatibility Developer's Guide Webinar
 
API design best practices
API design best practicesAPI design best practices
API design best practices
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento Cloud
 
In Mind Cloud - Product Release - 1904
In Mind Cloud - Product Release - 1904In Mind Cloud - Product Release - 1904
In Mind Cloud - Product Release - 1904
 

More from Meet Magento Italy

Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
Meet Magento Italy
 

More from Meet Magento Italy (20)

Dirk Pinamonti - Come affrontare la sfida del nuovo mercato multicanale e del...
Dirk Pinamonti - Come affrontare la sfida del nuovo mercato multicanale e del...Dirk Pinamonti - Come affrontare la sfida del nuovo mercato multicanale e del...
Dirk Pinamonti - Come affrontare la sfida del nuovo mercato multicanale e del...
 
Vinai Kopp - How i develop M2 modules
Vinai Kopp - How i develop M2 modules Vinai Kopp - How i develop M2 modules
Vinai Kopp - How i develop M2 modules
 
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Eugene Shaksuvarov - Tuning Magento 2 for Maximum PerformanceEugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
 
Muliadi jeo - How to sell online in Indonesia
Muliadi jeo - How to sell online in IndonesiaMuliadi jeo - How to sell online in Indonesia
Muliadi jeo - How to sell online in Indonesia
 
Max Pronko - 10 migration mistakes from Magento 1 to Magento 2
Max Pronko - 10 migration mistakes from Magento 1 to Magento 2Max Pronko - 10 migration mistakes from Magento 1 to Magento 2
Max Pronko - 10 migration mistakes from Magento 1 to Magento 2
 
Alessandro La Ciura - Progettare la migliore integrazione tra live chat ed e-...
Alessandro La Ciura - Progettare la migliore integrazione tra live chat ed e-...Alessandro La Ciura - Progettare la migliore integrazione tra live chat ed e-...
Alessandro La Ciura - Progettare la migliore integrazione tra live chat ed e-...
 
Bodin - Hullin & Potencier - Magento Performance Profiling and Best Practices
Bodin - Hullin & Potencier - Magento Performance Profiling and Best PracticesBodin - Hullin & Potencier - Magento Performance Profiling and Best Practices
Bodin - Hullin & Potencier - Magento Performance Profiling and Best Practices
 
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
 
Vinai Kopp - FPC Hole punching in Magento 2
Vinai Kopp - FPC Hole punching in Magento 2Vinai Kopp - FPC Hole punching in Magento 2
Vinai Kopp - FPC Hole punching in Magento 2
 
Jacopo Nardiello - From CI to Prod: Running Magento at scale with Kubernetes
Jacopo Nardiello - From CI to Prod: Running Magento at scale with KubernetesJacopo Nardiello - From CI to Prod: Running Magento at scale with Kubernetes
Jacopo Nardiello - From CI to Prod: Running Magento at scale with Kubernetes
 
James Zetlen - PWA Studio Integration…With You
James Zetlen - PWA Studio Integration…With YouJames Zetlen - PWA Studio Integration…With You
James Zetlen - PWA Studio Integration…With You
 
Talesh Seeparsan - The Hound of the Malwarevilles
Talesh Seeparsan - The Hound of the MalwarevillesTalesh Seeparsan - The Hound of the Malwarevilles
Talesh Seeparsan - The Hound of the Malwarevilles
 
Miguel Balparda - A day in support
Miguel Balparda - A day in supportMiguel Balparda - A day in support
Miguel Balparda - A day in support
 
Volodymyr Kublytskyi - Develop Product, Design Platform
Volodymyr Kublytskyi - Develop Product, Design PlatformVolodymyr Kublytskyi - Develop Product, Design Platform
Volodymyr Kublytskyi - Develop Product, Design Platform
 
Rosario Toscano - Processi di ottimizzazione per una crescita continua
Rosario Toscano - Processi di ottimizzazione per una crescita continuaRosario Toscano - Processi di ottimizzazione per una crescita continua
Rosario Toscano - Processi di ottimizzazione per una crescita continua
 
Henrik Feld Jakobsen - How to sell online Scandinavia
Henrik Feld Jakobsen - How to sell online ScandinaviaHenrik Feld Jakobsen - How to sell online Scandinavia
Henrik Feld Jakobsen - How to sell online Scandinavia
 
Rabia Qureshi - How to sell online in UK
Rabia Qureshi - How to sell online in UKRabia Qureshi - How to sell online in UK
Rabia Qureshi - How to sell online in UK
 
Matteo Schuerch - How to sell online in Switzerland
Matteo Schuerch - How to sell online in SwitzerlandMatteo Schuerch - How to sell online in Switzerland
Matteo Schuerch - How to sell online in Switzerland
 
Il data-driven nell’e-commerce: il caso studio Alessi
Il data-driven nell’e-commerce: il caso studio AlessiIl data-driven nell’e-commerce: il caso studio Alessi
Il data-driven nell’e-commerce: il caso studio Alessi
 
Philippe Bernou - Seamless omnichannel solutions with Magento order management
Philippe Bernou - Seamless omnichannel solutions with Magento order managementPhilippe Bernou - Seamless omnichannel solutions with Magento order management
Philippe Bernou - Seamless omnichannel solutions with Magento order management
 

Recently uploaded

Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
raffaeleoman
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
Kayode Fayemi
 

Recently uploaded (20)

Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
Causes of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCauses of poverty in France presentation.pptx
Causes of poverty in France presentation.pptx
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animals
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 

Oleksii Korshenko - Magento 2 Backwards Compatible Policy

  • 1. © 2017 Magento, Inc. All rights reserved.
  • 2. © 2017 Magento, Inc. Page | 2 History. First Release. Magento 2 RC. November 5, 2015 #1. Dev. Manager #4. QA Manager #3. Director of M2#2. Lead M2 Architect #5. VP of M2 Technology (making a photo) Developer 5 Managers + 1 Developer = One Magento 2 release
  • 3. © 2017 Magento, Inc. Page | 3 Where we are…  2.0.0 – November 16, 2015  2.0.1 – January 19, 2016  …..  2.0.8 – July 18, 2016  2.0.9 – August 3, 2016  2.0.10 – October 7, 2016  2.0.11 – December 13, 2016  2.0.12 – January 27, 2017  2.0.15 – February 13, 2017  2.1.0 – June 23, 2016  2.1.1 – August 25, 2016  2.1.2 – October 10, 2016  2.1.3 – December 8, 2016  2.1.4 – January 23, 2017  2.1.5 – February 15, 2017  …..  2.2.0 - TBD Minor Release Minor Release 20 patch releases, 1 minor release
  • 4. © 2017 Magento, Inc. Page | 4© 2017 Magento, Inc. Page | 4 1 Platform Version vs Module Version
  • 5. © 2017 Magento, Inc. Page | 5 Platform Version vs Module Version A Platform Patch Release can trigger an increase in the PATCH version of the module. Platform Version Minor Patch . 2 . 1 . 4 100 . 1 . 4 Major Minor Patch Module Version A Platform Minor Release can trigger an increase in the MINOR or MAJOR version of the module. Note: In exceptional cases, we can increase the MINOR version of the module in the scope of a PATCH platform release. For example: magento/module-vault version was changed from 100.1.1 to 100.2.0 in the scope of the Magento 2.1.3 release (added new method to API interface).
  • 6. © 2017 Magento, Inc. Page | 6 Platform Version vs Module Version Module Name Release 2.0.0-rc Release 2.0.12 Release 2.1.0 Release 2.1.4 Catalog 100.0.0 100.0.12 101.0.0 101.0.4 Checkout 100.0.0 100.0.11 100.1.0 100.1.4 CMS 100.0.0 100.0.5 101.0.0 101.0.3 Customer 100.0.0 100.0.10 100.1.0 100.1.4 Sales 100.0.0 100.0.12 100.1.0 100.1.4 Platform Version 2 . 1 . 4 Minor Patch Module Version 100 . 1 . 4 Major Minor Patch
  • 7. © 2017 Magento, Inc. Page | 7© 2017 Magento, Inc. Page | 7 2 The Code
  • 8. © 2017 Magento, Inc. Page | 8 The Code Public vs Private code • Private code should not be used by third-party modules. • Modifications will trigger only PATCH version bumps. • Significant changes to private code of a module will trigger a bump to its MINOR or MAJOR number. Private Code • Public code may consist of Public API (Application Programming Interface) and public customization points. • Changes to public code always trigger MINOR or MAJOR version bumps. Public Code
  • 9. © 2017 Magento, Inc. Page | 9 PHP Interfaces/Classes (marked with @api)  inject in constructor and/or call methods  add a plugin to class/interface  extend from abstract class  configure class preference in di.xml  configure constructor argument in di.xml  implement interface  redefine interface preference in di.xml Dependency on MAJOR version Dependency on MINOR version 100 . 1 . * Major Minor Patch 100 . * . * Major Minor Patch API and Customization Points: Part I
  • 10. © 2017 Magento, Inc. Page | 10 The Code API and Customization Points: Part II API Version of dependency Code change Events triggered by component (both static & dynamic) subscribe to event - MAJOR • removed event argument • removed event Layout handles declared by modules • add block instance – MAJOR • move/remove blocks and containers – MAJOR • new layout page handle – MINOR • new container/block added to handle – MINOR • removed/renamed container/block - MAJOR • removed layout handle - MAJOR XML configuration type • provide additional configuration to the configuration type – MAJOR • extend existing XSD - MINOR • renamed/removed schema file or configuration type - MAJOR • added obligatory node/attribute • removed node/attribute - MAJOR • add new optional node/attribute - MINOR Structure of system configuration • configure module through system configuration values – MAJOR • read system configuration using config path - MAJOR • removed/renamed config path - MAJOR
  • 11. © 2017 Magento, Inc. Page | 11 Module Dependency Rules Core module dependency rules 1. Specify a dependency on all used modules in the 'require' section of the module’s composer.json file. 2. Specify a dependency only on used modules, not on meta packages ('product- community-edition'). 3. Specify the MAJOR and/or MINOR version number of a used module if the module API or customization points are used. 4. Specify the MAJOR, MINOR, and PATCH versions of a used module if the module private code is used (called or customized).
  • 12. © 2017 Magento, Inc. Page | 12© 2017 Magento, Inc. Page | 12 3 Code Deprecation
  • 13. © 2017 Magento, Inc. Page | 13 Code Deprecation Deprecation Example • We will remove deprecated @api code only in the next minor product version. • If we are deprecating an API or customization point in favor of a new implementation, we will add suggested implementation in @see annotation.
  • 14. © 2017 Magento, Inc. Page | 14 Code Deprecation Deprecation use cases (@api and not @api) http://devdocs.magento.com/guides/v2.1/extension-dev-guide/backward-compatibility.html PHP use cases Alternative implementation interface/class removal Mark with @deprecated tag instead of removing it. Also mark all its methods as deprecated. public & protected method removal Mark with @deprecated tag instead. Continue returning the same results from the method if possible, so the old functionality is preserved. constructor modification Add the new optional parameter to the constructor at the end of the arguments list. Fetch the dependency from ObjectManager Mark as @deprecated any outdated constructor arguments. public & protected property removal Mark with @deprecated tag instead. Continue storing the value in the property, if possible, so the old functionality is preserved.
  • 15. © 2017 Magento, Inc. Page | 15 Magento 2 Backward Compatible Policy Thank you!