Boost logo

Boost :

From: Joel de Guzman (joel_at_[hidden])
Date: 2007-11-05 09:52:38

Beman Dawes wrote:
> At the suggestion of Emil Dotchevski, seconded by Chris Kohlhoff, on my
> trunk working copy I've moved the system-specific portions of the header
> <boost/system/error_code.hpp> into new headers. They are named:
> <boost/system/cygwin_error.hpp>
> <boost/system/linux_error.hpp>
> <boost/system/windows_error.hpp>
> This is a breaking change for asio, and any other boost code that
> depends on <boost/system/error_code.hpp> containing system-specific
> enums. New #includes are required for whichever headers apply.
> This isn't a disruptive change (because the effects are very localized),
> and normally I'd just coordinate it offline with Chris. But I'd like to
> shakedown the procedure that should be followed for disruptive breaking
> changes. Thus this posting to give others a chance to comment.
> I think the procedure for such breaking changes should be something like:
> * Create a branch, branches/system. The contents are the entire
> boost tree.
> * Apply the Boost.System changes to that branch.
> * Announce the branch on the list, and encourage any developers
> affected to update their libraries on the branch.
> * Once all affected libraries are changed on the branch and
> passing tests on developer's machines, merge the changes into
> a working copy of the trunk and do a single commit.
> * Watch regression tests closely to be sure nothing else broke.
> Does this sound right?

I'd add:

    * Try to fix all affected dependent boost libraries, if possible.


    * Announce the branch on the list, and encourage any developers
      affected to update their libraries on the branch.

This is how I did it with the recent fusion tweaks. I also recall that
the MPL author(s) also graciously tweaked all dependent libraries
when they changed apply_if to eval_if.


Joel de Guzman

Boost list run by bdawes at, gregod at, cpdaniel at, john at