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.

Before:

    * 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.

Regards,

-- 
Joel de Guzman
http://www.boost-consulting.com
http://spirit.sf.net

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