On Monday, 10 April 2017 at 22:26:46 UTC, Joseph Rushton Wakeling
wrote:
On Monday, 10 April 2017 at 13:20:00 UTC, Matthias Klumpp wrote:
This has worked nicely for every language. If you don't have
templates in your API or don't change the templates between
releases, you can survive with one library for a long time.
But the vast majority of D libraries _do_ have templates
(starting with Phobos). How should this situation be dealt
with?
How does Debian deal with, e.g., fixes to the templated code in
Boost, which impact on other packages built using those
header-only libraries?
Boost's soversion is changed on every release, and the version is
included in it's -dev package as well. That's why we have
libboost1.62-dev:
https://packages.debian.org/de/sid/libboost1.62-dev (and possibly
more).
There is also a boost-defaults package setting the current
default Boos version for packages to depend on.
If a new Boost comes out, it's soversion and -dev package name
changes, triggering a package transition and subsequently a full
rebuild of all stuff depending on Boost.
Doing something like this with D libraries would obviously be
possible as well.