Boost logo

Boost :

Subject: Re: [boost] What Should we do About Boost.Test?
From: John Maddock (boost.regex_at_[hidden])
Date: 2012-09-17 12:18:08


> I don't know what to do about this. Because of the lack of redundancy
> (i.e. tests and documentation), it's hard to tell whether this library
> is correct or even to define what "correct" should mean. It seems like,
> as long as the code is incompletely / incorrectly documented and tested,
> it's just someone's personal coding project that we happen to keep
> shipping with Boost, and not really a library for general use. This
> situation reflects poorly on Boost as a whole and the fact that it
> centers around a _testing_ library, which is concerned with
> robustness... well, let's just say that the irony isn't lost on me.

Just one other data point: major updates to Boost.Test have broken my stuff
on more than one occation (actually it feels like *every* time there's been
an update, but that's probably an exageration).

As a result for the multiprecision library I decided not to use it, and
wrote my own extensions to the lightweight test framework in /boost/detail/
that emulate (nearly) all the BOOST_CHECK* macros. It's not ideal, but at
least I know it's stable and lightweight.

> As a straw man, I'll make this suggestion:
>
> - Boost.Test is officially deprecated in the next release

OK. Though I'd note we don't have a mechanism for that... we should invent
one though as Pool really should be depricated as well (as previously
discussed somewhere around here).

> - Its documentation, such as it is, is removed from the release after
> that

OK.

> - Meanwhile, other tests in Boost that use this library are rewritten to
> use a different mechanism

Which is?

> - The code is removed from Boost thereafter

That could be problematic for a lot of people IMO.

Leaving Boost.Test aside for a moment, as a basic procedure, how about:

* Deprecated libraries are moved to separate section in the library's index,
along with a reason why they're deprecated (no maintainer, replaced by
something better, in need of serious work etc).
* Libraries can move off the deprecated list if their issues are addressed -
this may entail a new maintainer (if there isn't one), and/or a mini review
to ensure things are back in good order.
* Libraries that are deprecated for more than a year without attracting
support, are removed, as long as it's possible to do so without breaking too
much in Boost (moving into /boost/deprecated/ would be another option).

John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk