diff --git a/Neos.Flow/Documentation/TheDefinitiveGuide/PartV/ChangeLogs/8313.rst b/Neos.Flow/Documentation/TheDefinitiveGuide/PartV/ChangeLogs/8313.rst new file mode 100644 index 0000000000..d08ab8cd6b --- /dev/null +++ b/Neos.Flow/Documentation/TheDefinitiveGuide/PartV/ChangeLogs/8313.rst @@ -0,0 +1,131 @@ +`8.3.13 (2025-01-15) `_ +================================================================================================ + +Overview of merged pull requests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`BUGFIX: Fix race-condition when initializing I18n Service `_ +---------------------------------------------------------------------------------------------------------------------------- + +We noticed in our error logs that we had quite a few errors being thrown from ``here `_/Neos.Flow/Classes/I18n/Service.php#L256-L257>`_: +``` +Call to a member function findBestMatchingLocale() on bool +``` + +My best guess is that this is due to a race-condition when the service is called for the first time on a host by multiple requests simultaneously. + +In general, the pattern of first checking if some value is in the cache, and then reading the value out afterwards without checking it is never safe, as a different process/thread could have removed it. + +The safe way is to read the value out once, and verify that it is set correctly (e.g. it should not ``=== false``). + +I think there's `a few other places `_ that follow the same unsafe pattern, but I suggest that they are addresses separately from this PR. + +I haven't added any tests for this case, but please let me know if you have any ideas of how to test this. + + +* Packages: ``Flow`` + +`BUGFIX: Add missing validation labels `_ +-------------------------------------------------------------------------------------------------------- + +When you use Neos.Form and the Neos.Form.FusionRenderer with the File Upload, there’s a chance that the file extension isn’t valid. In that case, the validation error should be displayed, but the labels are in Flow, and the label for the case is missing. + +This change adds the missing label for the validation error message. + +* Fixes: `#3430 `_ + +* Packages: ``Flow`` ``FluidAdaptor`` + +`BUGFIX: Adjust to PHP 8.3 get_parent_class() deprecation `_ +--------------------------------------------------------------------------------------------------------------------------- + +Somehow, https://github.com/neos/flow-development-collection/pull/3351/files only targeted Flow 9.0, but per the docs, Flow 8.3 also supports PHP 8.3. +This is just a backport of these changes. + +* Packages: ``Flow`` + +`BUGFIX: Fix method param type expansion for partial annotation coverage `_ +------------------------------------------------------------------------------------------------------------------------------------------ + +Adjusts the behavior of ``ReflectionService::getMethodParameters()`` such that ``@param`` annotations are mapped to the corresponding method argument based in their _name_ instead of the _index_. + +* Fixes: `#3423 `_ + +* Packages: ``Flow`` + +`BUGFIX: Don’t load the same files twice in the static resource collection `_ +---------------------------------------------------------------------------------------------------------------------------------------------- + +The second pattern included a 99% subset of the first pattern except the files in the public folders themselves. Therefore all files in subfolders were loaded twice in the ``\\Neos\\Flow\\ResourceManagement\\Collection::getObjects`` method and afterwards also published twice. + +In a medium sized project the first pattern loaded 1165 files and the second pattern 1155 which were all duplicates. + +An additional change is required to deduplicate paths loaded in the ``Collection`` class to prevent further configuration regressions for cases like this. + +* Resolves: `#3417 `_ + +**Review instructions** + +* Delete the ``Web/_Resources/Static`` folder in a demo distribution +* Run ``./flow resource:publish --collection static`` +* Reload the Neos backend and all the static resources like JS and CSS should still be there. + +* Packages: ``Flow`` + +`TASK: Correctly mark nullable method parameters as nullable `_ +------------------------------------------------------------------------------------------------------------------------------ + +Replaces `#3427 `_ + +This PR will correctly mark implicit nullable types as nullable, which will remove deprecation warnings in PHP 8.4. + +I've used rector to migrate all occurrences. +https://getrector.com/rule-detail/explicit-nullable-param-type-rector + +See also for Neos: https://github.com/neos/neos-development-collection/pull/5433 + +Note: We should run the rector migration again on 9.0 after upmerging this PR + + +Thanks to @Benjamin-K for bringing this up and providing the first PR (#3427). + +* Packages: ``Cache`` ``Eel`` ``Error.Messages`` ``Flow.Log`` ``Flow`` ``FluidAdaptor`` ``Http.Factories`` ``Utility.Files`` ``Utility.MediaTypes`` ``Utility.ObjectHandling`` ``Utility.OpcodeCache`` ``Utility.Unicode`` + +`TASK: Uniquify exception codes in Abstract(Template)View `_ +--------------------------------------------------------------------------------------------------------------------------- + +Exception codes are supposed to be unique, so this makes sure those places get a code of their own. + +**Upgrade instructions** + +If you rely on that exception code (``1359625876``) for whatever reason, consider taking the new codes into account, too: + +- ``1359625877`` +- ``1359625878`` +- ``1359625879`` +- ``1359625880`` +- ``1359625881`` +- ``1359625882`` +- ``1359625883`` + +**Review instructions** + +You could check if any of the new codes is in use already, in turn… 😬 + + +* Packages: ``Flow`` + +`TASK: Use Symfony ConsoleLogger instead of Doctrine `_ +---------------------------------------------------------------------------------------------------------------------- + +Resolves: https://github.com/neos/flow-development-collection/issues/3404 + +In next minor release (3.9) doctrine/migration will remove the ConsoleLogger +See: https://github.com/doctrine/migrations/pull/1449 + +To prevent any issues after release of this we replace the ConsoleLogger of doctrine with ConsoleLogger of Symfony. + +* Packages: ``Flow`` + +`Detailed log `_ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~