Today @Michael.J's Auto Welcome plugin was updated with 4.5 support. As a part of the upgrade process in 4.5, an incrementing process runs to presumably move data out of a Not Good Place(tm) in the database into a place deemed acceptable by IPS Marketplace guidelines. As we have many, many members, this process was slowly incrementing, 50 at a time, toward the very large number of members that we have. This must have met the IPS standards and must have been blessed by IPS' review process.
Unfortunately, my internet connection blipped out during the upgrade, causing the process to fail, and leaving the plugin in a state where it's not fully updated, it's trying to rerun SQL queries that were already run, and there's no way to move forward. I can't download the 4.5 resource to see what it's doing, nor can I restart or pickup the upgrade process. Maybe I could uninstall and lose all data associated with it through a reinstall, but that's ... less than ideal.
What's the plan, IPS, for this sort of stuff? Who supports this? You? Michael, the third party developer? I'm out of luck? Thankfully we test rigorously before doing things in production, yet it seems that these sorts of things (moving data within the database) should be required to be developed as background processes that continue to run and aren't dependent on the administrator's internet connection. Is that not possible for plugin/application development? Are you not thinking to check for this? Did this get overlooked? Where's the developer documentation for background processes even located?
No criticism of Michael here. He's doing good work, and making a good product. IPS needs to take ownership of this nonsense by making it impossible to see these issues in advance and locking out downloads from the Marketplace. This isn't the Apple experienced we were promised. And if there's a place where Michael could have learned about how to setup background tasks in the upgrade process for a plugin or application, then I should be able to find it when I look at the developer docs.