Skip to content

BC ("Be careful") when dealing with BC ("Backwards compatibility")!

Avatar of Konrad Oboza Konrad Oboza

Maintaining compatibility promises is part of keeping healthy relationship with community and customers. As maintainers of a framework that builds upon Symfony, being in turn used by other developers, we have a taste of both worlds.

We will explore different approaches, starting with semantic versioning and going through different libraries. We will go behind the reasons why certain choices are made, and what consequences they have to both developers and maintainers. We will also emphasize how those dilemmas affect our everyday planning and development.

Finally, we will take a look at a particular case of performing major changes across entire codebase, by looking at a specific case that happened to our own product – a rebranding while maintaining compatibility. We will dive into specific solutions we came up with, and what challenges needed to be overcome – some of which proved to be a surprise.

“How to enforce class residing under two namespaces?”, “does class_alias work as one would expect?”, “how would autoloading work in this scenario?” are, among others, questions we needed to answer and that would like to share answers to.

Delivered in English
Room:
Platform.sh room

Friday, December 8, 2023 at 14:30 PM – 15:05 PM

Intermediate talk, some familiarity with the topic required.