The EU VAT Assistant for WooCommerce is still “alive and kicking”!
On the 9 December 2018, the WordPress Team removed our popular EU VAT Assistant from the public repository on WordPress.org. In this article, we are going to explain why they took that decision.
Before explaining the reason for the removal, we would like to clarify that the EU VAT Assistant is still working fine, it’s fully supported and it will be maintained for the foreseeable future. There isn’t any technical issue, we’re just dealing with a minor conflict with the regulations on WordPress.org.
Why the plugin was closed on WordPress.org
The WordPress Team closed the EU VAT Assistant on the 9th of December, 2018, because that plugin, like (almost) every other Aelia plugin, requires our mini-framework, called Aelia Foundation Classes (or AFC, for short). That mini-framework comes as an independent plugin, which has to be installed separately. We introduced such framework in our development cycle back in 2013, when we realised that the old approach of bundling multiple copies of the same files and libraries in each plugin was inefficient. Since WordPress didn’t include a dependency management system (and still doesn’t), we implemented our own, simple solution. That allowed us to get the result we were looking for:
- We were able to the files and libraries common to multiple plugins to a shared framework (the Aelia Foundation Classes).
- We were able to leverage the functions offered by WordPress to detect when such plugin is missing, and prompt the administrator to install it.
Thanks to the above, the EU VAT Assistant and our other plugins can detect if the AFC framework is not installed. When that is the case, they ask the administrators if they want to install it manually. To make thins even easier, our plugins also offers a convenient “one click” interface to do that installation. This is how the EU VAT Assistant always worked, ever since we released its first version, back in 2014. Apparently, now this presents an issue.
The rules for the WordPress repository indicate that a plugin can’t download another plugin from sources other than WordPress.org. Since the “one click install” downloads the framework from our site, that feature is no longer allowed. Due to that, the WordPress team deemed necessary to close the plugin, and informed us about that closure right after it was performed. Unfortunately, we didn’t receive an advance notice about this, or we would have informed our users about it.
As mentioned, the reason for the plugin closure is not technical. The EU VAT Assistant works perfectly fine as it is, and it’s not affected by bugs or technical issues. More simply, there’s a disagreement about our plugin’s architecture, as the WordPress team deemed such design to no longer conform with the repository guidelines. Due to this, they decided to remove the plugin, despite its popularity and the fact that it has been running smoothly for over 4 years.
The only reported non-conformity in the EU VAT Assistant is the dependency management that the plugin uses. Our solution allows administrators to download the required AFC mini-framework from our site, which is external to WordPress.org. From a technical perspective, this could be solved easily in a few ways:
- The AFC framework could be hosted on WordPress.org.
- The framework could be bundled within the EU VAT Assistant, which would then take care of installing it as a separate plugin, without having to download it from an external source.
- The “once click install” feature could be removed from the EU VAT Assistant, thus removing the “download from an external site” altogether.
Unfortunately, the WordPress team didn’t accept any of the above:
- The first solution won’t be allowed by another regulation, which doesn’t allow to use WordPress.org to host framework plugins.
- The third solution would involve “bundling a plugin within a plugin”, which is also not allowed.
- The third solution won’t be allowed either. Requiring a manual installation of the framework would imply that the EU VAT Assistant “doesn’t work” straight out of the box (unless the framework is installed first), which is another of the requirements on WordPress.org repository to ensure a smooth user experience.
Feedback from the WordPress Team
The WordPress Team suggested that we change the the EU VAT Assistant so that it doesn’t require the AFC framework, or so that the files from the framework are part of the plugin itself. Unfortunately, that won’t be an option. The decision of having the framework as an external plugin was deliberate, to make our plugins modular and more robust. Such design, fairly common on other platforms, allows to keep modules lean, and greatly reduces the chance of conflicts caused by the presence of multiple copies of the same files. Our target was to move away from the obsolete “monolithic” architecture, and all the bloating that it involves, and have a single, shared framework. Other developers adopted such approach (popular themes like Genesis and Avada also use a framework plugin), and it works well.
Rewriting the EU VAT Assistant to go back to the old “bundle everything” design would be a significant step backward, and it would introduce a high risk of causing conflicts with our other plugins, which are based on current “shared framework” architecture. Regrettably, we can’t redesign all the plugins we developed just to comply with a restriction on WordPress.org, which affects a single plugin.
Current status (updated 10 December 2018)
We had an extensive conversation with the WordPress Team about the removal of the EU VAT Assistant from the repository, and how it could be restored. As of the the 10th of December, we haven’t reached an agreement. We proposed a few solutions that would not require a radical changes in the plugin’s architecture. They would also avoid a cascade effect with other plugins based on the same design. Unfortunately, the WP Team keeps insisting that the only solution they deem acceptable by them is to rewrite the plugin and bundle the framework in it. As explained above, that’s basically the only approach we can’t follow. It’s simply not feasible.
We are aware that this sudden change could cause alarm among the merchants who are using our EU VAT Assistant. We received several enquiries, from our customers, asking what the future of the our VAT plugin is going to be. All of them expressed their support to us, and were puzzled by such sudden decision about an established and useful solution. You can read the conversation on the plugin’s public support forum, available here: https://wordpress.org/support/topic/plugin-removed-from-wordpress-repository/.
As anticipated, the EU VAT Assistant is still fully functional and supported, still free and it will be maintained for the time being. We will keep checking with the WordPress Team if we can find a compromise that can allow to restore our plugin on the WordPress repository. In the meantime, the EU VAT Assistant will still be available, free of charge, directly from our website. We will also take care of serving updates for our solution directly, while the files hosted on WordPress.org are offline.
Any questions? Always happy to answer!
Should you have any questions about the EU VAT Assistant, please feel free to contact us. We will get back to you as soon as possible.
Thanks for reading this long post, and apologies for the inconvenience caused by the sudden change, which was outside our control.
The Aelia Team
I’m glad you got your plugin back in the repository. N.B….
> The new rules for the WordPress repository indicate that a plugin can’t download another plugin from sources other than WordPress.org
This isn’t new; it’s been a rule for many years, at least 5. You can check on the Internet Archive. I’ve been discussing it with the wordpress.org plugins team since at least then. I explored many ways to reduce the inconvenience of users upgrading from UpdraftPlus (free, from wordpress.org) to UpdraftPlus Premium (not at wordpress.org). Many ingenious ideas were devised. The short version is: they’ve all been forbidden, because the rule forbids the end effect of running code that was received over the network from somewhere that isn’t wordpress.org, not the mechanism used to achieve that.
Thanks for your feedback. The “no external framework” rule is news to me, because the external framework has been part of the architecture ever since the EU VAT Assistant was released, back in 2014. The plugin has been going strong ever since, and nobody said anything about that. Perhaps the rule was there, and nobody checked, but it was a surprise, from my side, hence the “new”.
Ironically, they could avoid the issue altogether by allowing hosting all the code on WordPress.org. By forbidding frameworks, they are creating an “artificial” issue, which blocks attempts to implement a more modular architecture in WordPress plugins.
Regardless, now a (very effective) workaround is in place, so that issue should be out of the way.