Adam Heath wrote:
Adrian Crum wrote:
David and I are in agreement on the end result, and this point is where
we disagree. Like you, David wants all changes to be made in the branch.
I don't think a branch is needed. The interface extractions can be done
a little at a time in the trunk.
A branch with the kind of extensive changes that are planned will open
up a HUGE can of worms when it is merged with the trunk. Consider that
this one interface extraction resulted in three bug reports - what would
happen if we introduced dozens of interface extractions in a single commit?
I agree with you as well, this does *not* need to be done in a
separate branch.
However, what you did by doing the last step first, in trunk, is the
wrong approach.
* Adding a new interface to some base component does not break
unreleated code(short amount of time).
* Implementing said interface by an existing object does not break
unreleated code(short amount of time).
* Modifying other code to use the interface does not break unrelated
code(takes a long time to do, and can be done incrementally by many
people).
* When other code no longer references concrete class, then
remove/rename it(breaks unreleated code, but that needs to be
announced, not just discussed).
This set of changes does *not* need to be done in a hole; it can be
done incrementally.
I was thinking of the hundreds of OFBiz users who will have to rewrite
add-ons/modifications if it was done that way. I was trying to keep
things reasonably backwards-compatible.
I'm working on the revert now. It will take a while to review and test.
-Adrian