
Refactoring a large open source app: Take promotions out of Solidus
Applying promotions in Solidus, a rather large open-source e-commerce framework, is a bit buggy. The bugs are hard to fix, because backwards-compatibility is a big concern in the community and deprecation cycles can last years. This talk documents the process of fixing the promotion system within Solidus by first re-writing it as a gem, then finding the seams, then extracting the original promotion system into another gem, then making the two gems interchangeable. I hope it's fun to watch.