We could probably have this discussion until the cows come home, but since you brought it up, let's address it. I've been around and around with the Asterisk developers on this same subject.
My position is and always has been the same. If a new version of code (in this case FreePBX) breaks existing modules regardless of who wrote them, the primary responsibility for documenting the changes (SO THAT THE THIRD-PARTY APPS CAN BE FIXED) lies with the person(s) that broke the existing code. It's unreasonable to expect any outside party to wade through hundreds of thousands of lines of code looking for what's been "improved." Sorry.
And blocking old apps from being installed is not a fix! This is particularly true in the case of major modules such as Google Voice, CallerID Superfecta, and EndPoint Manager which are used by hundreds of thousands of end-users. They are the reason FreePBX has been able to make a business case for continuing development!
There have been very few new versions of FreePBX that broke existing code of third-party developers. I've been through dozens of upgrades. FreePBX 2.9 is an exception thankfully.
The
module.xml link you provided doesn't provide the first clue as to what has been changed in 2.9, how those changes affected existing third-party modules, and what steps could be taken to get these modules working with 2.9. Somebody knows!
Finally, if it hadn't been for tm1000 and Moshe Brevda, the transition to FreePBX 2.9 would have been a disaster for most end users. I hope the FreePBX Development Team will reconsider what appears to be a new approach to software development.