Every time a shared library is going to be updated, there is a chance of incompatible changes in the library that will cause breakages in some of its clients. This happens, for example, when a symbol provided by the library is removed but the soname remains unchanged. Detecting such changes manually is getting more problematic nowadays when packages are updated automatically by scripts.
The approach implemented in ALT package repositories to address this problem is to encode all symbols provided by shared libraries in package Provide tags, and to encode all symbols required by clients of shared libraries in package Require tags.
In this talk the speaker will describe in detail how to implement such encoding efficiently, explain the computational costs associated with set-versioned package dependencies, and share his experience of maintaining package repositories based on set-versions.
The primary auditory of this talk are maintainers of package repositories and distributions who might be interested in addressing the problem of shared library updates.