On 27/03/2024 17:47, Andrey Semashev via Boost wrote:
The biggest obstacle to removing any library is that the library may have users. This is true regardless of the perceived quality or "modern-ness" of the library.
If boost remains stuck with this, no libraries will ever be removed. In my opinion at some point it's necessary to say clear and loud "this library will be deprecated in Boost 1.87.0 and removed in 1.90.0". Users that will use the library will have time to update their code, and if it's some legacy code that cannot be removed, simply they will not update boost anymore in their environment, remaining stuck to the last version that they will use and that support that library. It's always possible, if necessary, to give a patch release for that version if necessary. For example if boost is updated to 1.95.0, and we discover a severe bug, it's always possible to release a 1.89.1 release, that is the last release that support the removed library. But only if needed. It should be also possible to define the last supported version, saying that bugs in version that are newer that this one will be patched if needed like I've said, otherwise the version is out of support. For example, for smart pointers (I don't say that we need to remove it, it's only an example) we can write in the site and in the documentation - this library is deprecated since version 1.87.0 - this library will be removed in version 1.91.0 And also - The oldest version of Boost actively supported is the 1.84.0 (that means that it's possible to have 1.84.1, but not 1.83.1). This way it's possible to: - Remove old libraries (i.e. smart pointers, since they are supported in C++11) - Give time to people that use deprecated libraries to update their code - Support people that cannot update the code for any reason for a defined period of time. Regards Daniele Lupo