On 22.9.2014 17:24, Ihar Hrachyshka wrote: > On 22/09/14 17:07, Radomir Dopieralski wrote: >> Horizon's tests were recently broken by a change in the Ceilometer >> client that removed a deprecated exception. The exception was >> deprecated for a while already, but as it often is, nobody did the >> work of removing all references to it from Horizon before it was >> too late. Sure, in theory we should all be reading the release >> notes of all versions of all dependencies and acting upon things >> like this. In practice, if there is no warning generated in the >> unit tests, nobody is going to do anything about it. > >> So I sat down and started thinking about how to best generate a >> warning when someone is trying to catch a deprecated exception. I >> came up with this code: > >> http://paste.openstack.org/show/114170/ > >> It's not pretty -- it is based on the fact that the `except` >> statement has to do a subclass check on the exceptions it is >> catching. It requires a metaclass and a class decorator to work, >> and it uses a global variable. I'm sure it would be possible to do >> it in a little bit cleaner way. But at least it gives us the >> warning (sure, only if an exception is actually being thrown, but >> that's test coverage problem). > >> I propose to do exception deprecating in this way in the future. > > > Aren't clients supposed to be backwards compatible? Isn't it the exact > reason why we don't maintain stable branches for client modules?
Supposed, yes. However, it's not ensured/enforced any way, so it's as good as an empty promise. > So, another reason to actually start maintaining those stable branches > for clients. We already do it in RDO (Red Hat backed Openstack > distribution) anyway. We kinda do that in RHOSP as well, no? Each rhos-X.Y-rhel-Z branch was forked from RDO stable client branch (redhat-openstack)... Cheers, Jakub _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev