Frankly, I don't believe Woody should have been in 2.1 as a block - it should have been in the scratchpad. The number of fundamental changes that have been made to it clearly indicate that it wasn't stable when 2.1.0 was released. It should never be tolerated that something that is "released" (i.e. in core or in a block) is allowed to have its interface or fundamental behavior change from one minor release to the next. It could have been moved from the scratchpad into a block at a minor release when it was deemed ready.
IMO you are wrong here to a certain extend. We introduced the blocks to have development independent on the core. Therefore we also introduced the status of a block, which can be stable, unstable or deprecated at the moment (see the gump descriptor in the Cocoon root dir). This gump descriptor is transformed into the file blocks.properties with the hint on stable and unstable (but all are included by default). But at latest at build time you get a warning about the status if it is unstable and what it means. So IMO nobody can complain about any changes for an unstable block.
I started development with 2.1.0 and found I had to modify everything when I upgraded to 2.1.3 simply because of the conversion from Composable to Serviceable. IMO, that should never happen.
Here you are right, for the core this should not happen. We (and maybe me in the first place) have not taken care about this issue.
Joerg
