This document discusses interface versioning in C++ libraries. It describes the problems that occur when library interfaces change, forcing clients to redeploy. The goal is to design libraries that can grow over time without forcing constant redeployment of clients. The solution presented is to hide interface changes behind new versions of an interface class while maintaining backward compatibility. This allows new functionality to be added without breaking existing clients.