Seth via Boost
On Tue, Dec 6, 2022, at 1:14 PM, Boris Kolpackov via Boost wrote:
Like libboost-multi-index depending on libboost-regex and thus ICU.
I was so baffled I had to check: https://pdimov.github.io/boostdep-report/boost-1.80.0/multi_index.html
It's actually Boost Range, which is a completely sane dependency for Boost Multi Index. Regex could probably be an optional dependency for Boost Range (which only uses Regex inside the `tokenized` adaptor).
Yeah, here are all the direct dependents of libboost-regex (as of the 1.78.0 release): libboost-iostreams libboost-graph libboost-range libboost-spirit libboost-log libboost-algorithm libboost-asio Quite a few of these besides range rise an eyebrow (graph, algorithm, iostreams). In fact, when we package the next release of Boost, we are going to try to make these dependencies optional. But I think this highlights the bigger underlying problem: Boost is not using adequate tooling that would make dealing with this tractable. It's probably not that difficult to make most of the above dependencies optional. But that's not for free: now you have double the number of configurations to test (if your CI service has support for testing such custom build configurations, that is). Add a couple more such optional dependencies and you are looking at a couple of hundreds build configurations. At this point your pull-style CI service will likely start having scaling issues and you have to wait hours for your feature branch to be completely tested. Maybe what you have changed doesn't have anything to do with the optional dependencies, but there is probably no easy way to communicate this to the pull-style CI service.