
On Friday 21 November 2008 10:00:44 Dean Michael Berris wrote:
We all want to have well tested code, but the best tests we can run/write are those tests that actually test the software we do write -- because only these tests are the ones that really matter in the context of the software we are writing and in deciding whether to upgrade the libraries we use or not.
Well said. From a mere user's point of view, most of the complaints about interface changes are bogus: 1. No one forces anyone else to upgrade from one boost version to another; some of the projects I work on use 1.33.1 and others use svn versions; every change in external dependencies must be validated against internal tests (of the client software). Whenever external dependencies (even compilers) change, be prepared for breakage unless you have a rigorous test suite. 2. One person's bug fix is another's breaking change. The only arbiter is the library author. Boost explicitly avoids design by committee and unless that policy is changed, there cannot be multiple arbiters. The only valid claim that can be made is that all changes must be properly documented. 3. In a corporate environment, building a new version of boost is extremely simple; as Volodya said, only 5-10min of actual human time is required. The only real work is in validating local conformance tests, which must be done for every change in external dependencies anyway. 4. Boost interfaces have been pretty stable for the most part. The core Boost libraries whose interface will rarely ever change are the ones supplied by your compiler vendor, i.e., the ones accepted by the C++ committee. All others are in continuous improvement; changes are made by the authors because they believe it improves the library. Judgements regarding library upgrades (e.g., trading off interface changes for the benefits of upgrading that accrue to that particular user) are subjective; see point 2 above about arbiters. Boost goes through similar discussions every few months almost as if on schedule, and the regardless of the conensus (if any), the procedure simply has stayed unchanged because any change requires more manpower which is simply not available. I don't believe any changes will be precipitated by this discussion either. Regards, Ravi