Since the recommended way to install plugins is to use Composer, this greedy configuration would occasionally cause issues where running composer update would fail because the currently installed version of a plugin would have dependencies that would be merged as part of the main composer.json file that would conflict with the next version of the plugin; meaning that in order to install the next version of the plugin you could be forced to first delete the existing one.
It is now recommended to treat this line more like the workspaces section in package.json and manually specify the paths you wish to have the merge plugin handle on a per project basis.
This fixes#578 by adding the ability to pass the CMS Controller instance to the CMS Twig Extension removing the reliance on context variables as well as making the expected "global" twig variables inside of the CMS Twig environment actually global within that environment.
Replaces #598 & #593.
Credit to @RomainMazB for the initial implementation.
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.
Commands like php8.1 composer.phar install resulted in a successful installation but failed during the execution of the "post-update-cmd"-Script.
`@php` should fix this (and did it on my environment), according to:
https://getcomposer.org/doc/articles/scripts.md#executing-php-scripts
- No longer need AssertGD in main repo, as it was only used for library tests.
- Allow different version of ArraySubset asserts depending on PHP version
Since we are now relying on different versions of some dependencies depending on whether PHP 7 or 8 is used, we can no longer lock the PHP version down.
The Rain library is separately tested with a TestCase base class which does not instantiate an application. This removes the conflict caused from the TestCase class which is within October CMS itself, which instantiates an applications and handles things differently.
This change implements an improved "set build" utility through the "october:version" Artisan command that, instead of checking the October CMS server for the latest build, checks the module files against a source manifest kept on GitHub.
This check allows us to accurately determine the build based on the module files in the October CMS installation, and can even detect versions if the module files are modified (except in the cases of extreme modification).
An additional utility has been implemented, "october:manifest", which will build the manifest JSON file in order to provide the maintainers with a way of generating this manifest file as required.
Replaces #4615.
Composer does not support commit specific requirements when it comes to fetching the composer.json metadata, which means that this particular fix has to specify a tag instead of a commit hash.
Support was removed in d21d197a60 (and later relaxed to 7.2.0 as a minimum requirement in the next commit). This change should be reverted when the L6 upgrade is merged in.