Fixes https://github.com/wintercms/wn-blog-plugin/issues/33.
Note for @bennothommo @jaxwilko @mjauvin, we may have issues at some point if the replaced plugin goes past the version that the replacing plugin starts its replacement at (for example, if RainLab.Blog starts going past 2.0 then we're going to have to rethink how we handle that migration process so that we can support taking over existing migrations that go past 2.0 on the original plugin while starting the replacement plugin's migrations at 2.0, although there's potentially some issues with that too. Perhaps we could require confirmation to rollback a plugin to the last version that it could be taken over from before allowing the takeover to proceed?
Adds the "develop.debugSnowboard" config option to enable to disable Snowboard debugging, overriding the default behaviour in following the app debug mode.
Includes handling of Windows interrupt/break signals in Powershell to correctly cleanup when terminating the Mix commands early.
Co-authored-by: Ben Thomson <git@alfreido.com>
Fixes an issue where the version number reported by the database wasn't normalized causing issues when comparing with the normalized version from the filesystem.
This implements support for the ImageResizer within the media manager for thumbnail resizing & image cropping. This simplifies and centralizes the image resizing code within the media manager and allows for better support on readonly filesystems by relying on the ImageResizer class to process image modification requests.
This splits the testing suite into the separate modules as appropriate in order to improve the reliability of the testing suite as a whole and make it easier for developers to have an up to date testing suite from the core to build off of. Additionally the tests are now namespaced and some minor improvements to the PluginManager were made.
Now the PluginManager will internally treat plugin identifiers as lower case strings, only transforming them to their normalized versions when requested by methods like getPlugins() & getAllPlugins(). The idea behind this is that it provides a much simpler way to internally handle checking, especially for plugin replacement where casing could cause issues.
Replaces #576. Fixes#575.
Reworked the internal disabled status checking and monitoring system for plugins.
Added better support for plugin disabled status management.
Added improvements to loading (should aid in improving app bootup speed)
This should fix https://github.com/wintercms/winter/issues/177, but it will cause all existing installations to resize all of their already resized images.
Another alternative could have been to include the hash of the source image; but it would have been at the expense of more work every time this function is called, which could potentially include generating hashes of multiple extremely large (10+ MB) images on every page load if the page includes such images that need to be resized since the filter needs to identify the configuration in order to identify the path to the resized image to check if it needs to return a resizer/ URL or a /resized one.
Further improvements could potentially be made in the isResized()
Also improved the developer experience by making it easier to see what the actual issue is if an error is encountered during the resizer initialization process.
Also added System\Console\Traits\HasPluginArgument that can be added to any CLI commands that interact with plugins to provide autocompletion for the plugin argument.