In reply to Michael Visser.

We always try to maintain backwards compatibility. But sometimes breaking changes are required.

When it comes to hooks/filters, etc. we'll deprecate them and push developers to use the new hooks/filters, etc.

BUT sometimes you have to implement changes and it's a situation where deprecation and backwards compatibility isn't possible. Database changes are an example of this.

So there are most certainly situations where breaking changes are unavoidable. When that happens we give 3rd party developers plenty of notice and time via a long beta and release candidate phase prior to public release.

From what i've seen the WooCommerce team gave the 3rd party development community 3+ months to prepare for the WooCommerce 3.0 changes. That should be ample time for them to make changes to their customizations and extensions.