Boost logo

Boost :

From: David Abrahams (abrahams_at_[hidden])
Date: 2000-07-23 10:52:46


The problem:

How to allow development of new, as-yet-unaccepted libraries without
"infecting" the main CVS release trunk.

My proposal:

Alongside the boost and libs directories at the top level, we add a
directory "pre-release". Beneath pre-release, we have individual directories
for unreleased boost components. In each of these directories, there is a
subdirectory "boost" which contains the relevant headers. For example:

boost/ (top level)
  boost/
    detail/
      type_traits.hpp
      ob_type_traits.hpp
      ...
     operators.hpp
     functional.hpp
     ...
  libs/
    utility/
    timer/
    ...

  pre-release/
    iterator_adaptors/
      boost/
        iterator_adaptor.hpp
        indirect_iterator.hpp
        ...
    associative/
      boost/
        associative_vector.hpp
        ...
    pattern_matching/
      boost/
         ...
    ...

Programs and tests which need access to particular pre-release libraries may
put the appropriate directory in their include paths. For example, if the
test program for associative_vector.hpp needs to use iterator_adaptor.hpp,
it would put
    boost/pre-release/iterator_adaptors
in its #include path. That way, it can #include "boost/iterator_adaptor.hpp"
and no code will need to change if iterator_adaptors are accepted into
boost.

I realize that this probably means that the development history for
pre-release libs willl be disconnected from their post-release versions. I'm
not an expert on CVS by any means, so if there's a better approach, I'm open
to it.

Lastly, I wonder if we shouldn't find a better place for source files that
are required to support some of the headers. For example, shouldn't
random_device.cpp from the random library go in boost/boost/, right
alongside boost/random.hpp?

-Dave


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