New comment by ahesford on void-packages repository https://github.com/void-linux/void-packages/pull/18691#issuecomment-581037963 Comment: > The revbumps should each be in separate commits. The versioned sub-packages were introduced to be able to install two versions of the library at the same time and avoid staging on the build servers so they should probably be kept. The replaces is incorrect in any case I think. Please hold. I'm locally testing rework based on your suggestions and what I've seen with boost packaging: * Keep libprotobuf18 and libprotoc18 * Version all existing protobuf subpackages: - protobuf -> protobuf18 - protobuf-lite -> protobuf18-lite - libprotoc-devel -> libprotoc18-devel * Rename libprotobuf-lite18 -> libprotobuf18-lite; add a replaces declaration in the subpackage for this name change (this is easier to parse in directory listings, it fits with the protobuf->protobuf18 change, and makes logical sense because the library is the light version of protobuf 18) * Create new, non-versioned (sub)packages protobuf{,-devel,lite} and libprotoc-devel for protobuf 3.11.2 * Create new, versioned subpackages libprotobuf22{,-lite} and libprotoc22 * Add conflicts with the unversioned new packages in protobuf18{,-devel} and libprotoc18-devel In future updates, the procedure would look the same: migrate the unversioned packages to protobuf22 or libprotoc22, create a new unversioned master package with {-devel,-lite} and libprotoc-devel subpackages, and create new versioned subpackages for the shared libraries. Does this seem reasonable? When my local tests pass, I'll push them here.