I was watching this video CMake + Conan: 3 Years Later - Mateusz Pusz .
It seems like Conan is intended for libraries with stable interfaces that are properly semantically versioned.
Does this need to be the case?
Can it work for libraries that don’t have stable library interfaces and change frequently?
Sure. However, Conan’s version satisfier algorithm may make assumptions of whether version A can replace version B based on semantic versioning rules. If you’re a leaf package, this is probably fine to ignore. If you ship an SDK (headers, libraries, an API), you may get users that are frustrated about what Conan thinks is replaceable in a deptree.