I think we can do all this with minimal backward compatibility
(depending on how you define it), or none at all. The issue boils
down to extension developers writing dual-version 2.5+3.x code. The
main issue is handling exceptions in 3.x and JError in 2.5, which is
exactly the same problem we have here (getting developers to handle
more exceptions).
So, thinking out loud, I think getError method could change to just
return false; getErrors method could change to return an empty array;
and setError could change to throw an exception. Because dual-version
developers already have to cope with exceptions from 3.x, it should
impact minimally. Obviously 3.1 (I expect) developers will have some
slight issues because JError::* disappears but they can make the
appropriate changes now, in 3.0 land, to prepare for that. Anyone that
has an iPhone sees the same sort of things in the App store (Minor
update for iOS6/iPhone 5 compatibility) so it's not an unreasonable
expectation to have of developers.
Regards,
Andrew Eddie