we plan to introduce some non-backward-compatible changes[0] in librados in the coming nautilus release. to be specific, these changes are not API/ABI compatible with existing librados2. so i think it's time to bump up the soversion of librados from 2 to 3. as bumping up soversion is a major change in the life cycle of a library, i think we will expect following changes: 0. piggyback more non-backward-compatible changes listed in https://pad.ceph.com/p/librados3 in this change, so we can have less soversion bump up. 1. in nautilus, librados3 and librados3-{dev,devel} will be packaged instead, librados2* will be maintained in LTS releases. 2. we will have separated C++ and C API librados after this change. so librados3 will only provide the C API of librados, the C++ API will be offered by libradospp, (the name may vary if you suggest a better one). and they will be versioned and packaged separately, and will not depend on each other. a PR is posted to do this, see [1] 3. in order to enable user to install librados2 and librados3 at the same time, libceph-common.so will be versioned since nautilus. libceph-common.so is an internal shared library used by ceph libraries, tools and daemons. librados depends on libceph-common. 4. some executables/libraries' dependencies will be updated accordingly . for instance, librbd will depend on libradospp. if this model works fine, i guess we probably could expand it to librbd. any concerns? BTW, we discussed this topic last year the same time, see https://www.spinics.net/lists/ceph-devel/msg38830.html =) --- [0] for instance, https://github.com/ceph/ceph/pull/24498 [1] https://github.com/ceph/ceph/pull/24616 [2] a trello card for librados3: https://trello.com/c/pmRkawYV/165-librados3-api-update-cleanup -- Regards Kefu Chai