Skip to content

Commit 239036f

Browse files
committed
Merge remote-tracking branch 'origin/8.4' into 9.0
2 parents 6dffd2c + 62a5149 commit 239036f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+512
-345
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
working-directory: .
7676

7777
- name: Checkout
78-
uses: actions/checkout@v2
78+
uses: actions/checkout@v4
7979
with:
8080
path: ${{ env.FLOW_FOLDER }}
8181

@@ -106,7 +106,7 @@ jobs:
106106
mysql root password: 'neos'
107107

108108
- name: Checkout development distribution
109-
uses: actions/checkout@v2
109+
uses: actions/checkout@v4
110110
with:
111111
repository: neos/flow-development-distribution
112112
ref: ${{ env.FLOW_TARGET_VERSION }}
@@ -123,7 +123,7 @@ jobs:
123123
124124
- name: Cache Composer packages
125125
id: composer-cache
126-
uses: actions/cache@v2
126+
uses: actions/cache@v4
127127
with:
128128
path: |
129129
~/.cache/composer

.github/workflows/experimental.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
working-directory: .
8787

8888
- name: Checkout
89-
uses: actions/checkout@v2
89+
uses: actions/checkout@v4
9090
with:
9191
path: ${{ env.FLOW_FOLDER }}
9292

@@ -99,7 +99,7 @@ jobs:
9999
ini-values: date.timezone="Africa/Tunis", opcache.fast_shutdown=0, apc.enable_cli=on
100100

101101
- name: Checkout development distribution
102-
uses: actions/checkout@v2
102+
uses: actions/checkout@v4
103103
with:
104104
repository: neos/flow-development-distribution
105105
ref: ${{ env.FLOW_TARGET_VERSION }}
@@ -116,7 +116,7 @@ jobs:
116116
117117
- name: Cache Composer packages
118118
id: composer-cache
119-
uses: actions/cache@v2
119+
uses: actions/cache@v4
120120
with:
121121
path: |
122122
~/.cache/composer

Neos.Cache/Classes/Backend/RedisBackend.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,15 @@ public function flush(): void
233233
{
234234
// language=lua
235235
$script = "
236-
local keys = redis.call('KEYS', ARGV[1] .. '*')
237-
for k1,key in ipairs(keys) do
238-
redis.call('DEL', key)
239-
end
236+
local cursor = '0'
237+
repeat
238+
local result = redis.call('SCAN', cursor, 'MATCH', ARGV[1] .. '*')
239+
cursor = result[1]
240+
local keys = result[2]
241+
for _, key in ipairs(keys) do
242+
redis.call('DEL', key)
243+
end
244+
until cursor == '0'
240245
";
241246
$this->redis->eval($script, [$this->getPrefixedIdentifier('')], 0);
242247

Neos.Flow.Log/Classes/Backend/FileBackend.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ public function append(string $message, int $severity = LOG_INFO, $additionalDat
239239
} else {
240240
$processId = ' ' . str_pad((string)getmypid(), 10);
241241
}
242-
$ipAddress = ($this->logIpAddress === true) ? str_pad(($_SERVER['REMOTE_ADDR'] ?? ''), 15) : '';
242+
$ipAddress = ($this->logIpAddress === true) ? str_pad(($_SERVER['REMOTE_ADDR'] ?? ''), 15) . ' ' : '';
243243
$severityLabel = $this->severityLabels[$severity] ?? 'UNKNOWN ';
244244
$output = (new \DateTime())->format('y-m-d H:i:s') . $processId . ' ' . $ipAddress . $severityLabel . ' ' . str_pad((string)$packageKey, 20) . ' ' . $message;
245245

Neos.Flow.Log/Tests/Unit/Backend/FileBackendTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public function appendRendersALogEntryWithRemoteIpAddressAndAppendsItToTheLogfil
9090
$backend->append('foo');
9191

9292
$pidOffset = function_exists('posix_getpid') ? 10 : 0;
93-
self::assertSame(68 + $pidOffset + strlen(PHP_EOL), vfsStreamWrapper::getRoot()->getChild('test.log')->size());
93+
self::assertSame(69 + $pidOffset + strlen(PHP_EOL), vfsStreamWrapper::getRoot()->getChild('test.log')->size());
9494
}
9595

9696
/**

Neos.Flow/Classes/Core/Bootstrap.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ protected function defineConstants()
497497
$expectedPath = Files::getUnixStylePath(realpath(FLOW_PATH_FLOW)) . '/';
498498
if ($testPath !== $expectedPath) {
499499
echo('Flow: Invalid root path. (Error #1248964375)' . PHP_EOL . '"' . $testPath . '" does not lead to' . PHP_EOL . '"' . $expectedPath . '"' . PHP_EOL);
500+
http_response_code(500);
500501
exit(1);
501502
}
502503
define('FLOW_PATH_ROOT', $rootPath);
@@ -547,15 +548,18 @@ protected function ensureRequiredEnvironment()
547548
{
548549
if (DIRECTORY_SEPARATOR !== '/' && PHP_WINDOWS_VERSION_MAJOR < 6) {
549550
echo('Flow does not support Windows versions older than Windows Vista or Windows Server 2008 (Error #1312463704)' . PHP_EOL);
551+
http_response_code(500);
550552
exit(1);
551553
}
552554
if (!extension_loaded('Reflection')) {
553555
echo('The PHP extension "Reflection" is required by Flow.' . PHP_EOL);
556+
http_response_code(500);
554557
exit(1);
555558
}
556559
$method = new \ReflectionMethod(__CLASS__, __FUNCTION__);
557560
if ($method->getDocComment() === false || $method->getDocComment() === '') {
558561
echo('Reflection of doc comments is not supported by your PHP setup. Please check if you have installed an accelerator which removes doc comments.' . PHP_EOL);
562+
http_response_code(500);
559563
exit(1);
560564
}
561565

@@ -568,12 +572,14 @@ protected function ensureRequiredEnvironment()
568572
if (!is_dir(FLOW_PATH_DATA) && !is_link(FLOW_PATH_DATA)) {
569573
if (!@mkdir(FLOW_PATH_DATA)) {
570574
echo('Flow could not create the directory "' . FLOW_PATH_DATA . '". Please check the file permissions manually or run "sudo ./flow flow:core:setfilepermissions" to fix the problem. (Error #1347526552)');
575+
http_response_code(500);
571576
exit(1);
572577
}
573578
}
574579
if (!is_dir(FLOW_PATH_DATA . 'Persistent') && !is_link(FLOW_PATH_DATA . 'Persistent')) {
575580
if (!@mkdir(FLOW_PATH_DATA . 'Persistent')) {
576581
echo('Flow could not create the directory "' . FLOW_PATH_DATA . 'Persistent". Please check the file permissions manually or run "sudo ./flow flow:core:setfilepermissions" to fix the problem. (Error #1347526553)');
582+
http_response_code(500);
577583
exit(1);
578584
}
579585
}
@@ -582,6 +588,7 @@ protected function ensureRequiredEnvironment()
582588
$oldMask = umask(000);
583589
if (!@mkdir(FLOW_PATH_TEMPORARY, 0777, true)) {
584590
echo('Flow could not create the directory "' . FLOW_PATH_TEMPORARY . '". Please check the file permissions manually or run "sudo ./flow flow:core:setfilepermissions" to fix the problem. (Error #1441354578)');
591+
http_response_code(500);
585592
exit(1);
586593
}
587594
umask($oldMask);

Neos.Flow/Classes/Persistence/Doctrine/Service.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
use Doctrine\Migrations\Metadata\ExecutedMigration;
3535
use Doctrine\Migrations\Metadata\ExecutedMigrationsList;
3636
use Doctrine\Migrations\MigratorConfiguration;
37-
use Doctrine\Migrations\Tools\Console\ConsoleLogger;
3837
use Doctrine\Migrations\Tools\Console\Exception\InvalidOptionUsage;
3938
use Doctrine\Migrations\Tools\Console\Exception\VersionAlreadyExists;
4039
use Doctrine\Migrations\Tools\Console\Exception\VersionDoesNotExist;
@@ -56,6 +55,7 @@
5655
use Neos\Utility\ObjectAccess;
5756
use Psr\Log\LoggerInterface;
5857
use Symfony\Component\Console\Formatter\OutputFormatter;
58+
use Symfony\Component\Console\Logger\ConsoleLogger;
5959
use Symfony\Component\Console\Output\BufferedOutput;
6060
use Symfony\Component\Console\Output\OutputInterface;
6161

Neos.Flow/Classes/Validation/Validator/FileSizeValidator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ protected function isValid($value)
6464
return;
6565
}
6666
if ($this->options['minimum'] && $filesize < $this->options['minimum']) {
67-
$this->addError('The file is larger than allowed.', 1677934908);
67+
$this->addError('The file is smaller than allowed.', 1677934908);
6868
return;
6969
}
7070
if ($this->options['maximum'] && $filesize > $this->options['maximum']) {
71-
$this->addError('The file is smaller than allowed.', 1677934903);
71+
$this->addError('The file is larger than allowed.', 1677934903);
7272
return;
7373
}
7474
}

Neos.Flow/Configuration/Settings.Resource.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ Neos:
4646
target: 'localWebDirectoryStaticResourcesTarget'
4747
pathPatterns:
4848
- '*/Resources/Public/'
49-
- '*/Resources/Public/*'
5049

5150
# Collection which contains all persistent resources
5251
persistent:
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
`8.3.10 (2024-08-14) <https://github.com/neos/flow-development-collection/releases/tag/8.3.10>`_
2+
================================================================================================
3+
4+
Overview of merged pull requests
5+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6+
7+
`BUGFIX: DateTime translation for validator <https://github.com/neos/flow-development-collection/pull/3374>`_
8+
-------------------------------------------------------------------------------------------------------------
9+
10+
This will close `#3323 <https://github.com/neos/flow-development-collection/issues/3323>`_
11+
12+
* Packages: ``Flow``
13+
14+
`BUGFIX: Streamline exit(1) to web response with HTTP status code 500 <https://github.com/neos/flow-development-collection/pull/3365>`_
15+
---------------------------------------------------------------------------------------------------------------------------------------
16+
17+
With this critical error messages like the following now sends the HTTP status code 500 instead 200 in order to state something is not okay on the server side:
18+
19+
``Flow could not create the directory "/var/www/html/Data/Persistent". Please check the file permissions manually or run "sudo ./flow flow:core:setfilepermissions" to fix the problem. (Error #1347526553)``
20+
21+
Resolved: `#3364 <https://github.com/neos/flow-development-collection/issues/3364>`_
22+
23+
24+
* Packages: ``Flow``
25+
26+
`BUGFIX: Avoid insecure composer/composer versions <https://github.com/neos/flow-development-collection/pull/3366>`_
27+
--------------------------------------------------------------------------------------------------------------------
28+
29+
This adjusts the dependency to ``~2.2.24 || ^2.7.7`` to avoid versions vulnerable to multiple command injections via malicious branch names.
30+
31+
More details in:
32+
33+
- https://blog.packagist.com/composer-2-7-7/
34+
- https://github.com/advisories/GHSA-v9qv-c7wm-wgmf
35+
- https://github.com/advisories/GHSA-47f6-5gq3-vx9c
36+
37+
38+
* Packages: ``Flow``
39+
40+
`BUGFIX: First exception cannot be written in subcontext when booting <https://github.com/neos/flow-development-collection/pull/3362>`_
41+
---------------------------------------------------------------------------------------------------------------------------------------
42+
43+
**Upgrade instructions**
44+
45+
46+
* Packages: ``Flow``
47+
48+
`BUGFIX: ReflectionService must always initialize <https://github.com/neos/flow-development-collection/pull/3360>`_
49+
-------------------------------------------------------------------------------------------------------------------
50+
51+
The ReflectionService lazy loads reflection data from cache, but every method making use of the data needs to call initialize.
52+
This change adds missing calls that seem to never happen first in regular flow applications. Still better to prevent broken reflection in case we optimize other uses in the future.
53+
54+
* Packages: ``Flow``
55+
56+
`TASK: Update "egulias/email-validator" version constraints <https://github.com/neos/flow-development-collection/pull/3356>`_
57+
------------------------------------------------------------------------------------------------------------------------------
58+
59+
Updates the version constraints of "egulias/email-validator" and allows to use 4.x versions.
60+
Also removes the support of the 2.x versions
61+
62+
* Packages: ``Flow``
63+
64+
`Detailed log <https://github.com/neos/flow-development-collection/compare/8.3.9...8.3.10>`_
65+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
`8.3.11 (2024-09-17) <https://github.com/neos/flow-development-collection/releases/tag/8.3.11>`_
2+
================================================================================================
3+
4+
Overview of merged pull requests
5+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6+
7+
8+
`Detailed log <https://github.com/neos/flow-development-collection/compare/8.3.10...8.3.11>`_
9+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
`8.3.12 (2024-11-18) <https://github.com/neos/flow-development-collection/releases/tag/8.3.12>`_
2+
================================================================================================
3+
4+
Overview of merged pull requests
5+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6+
7+
`BUGFIX: Fix unit test for changed logging <https://github.com/neos/flow-development-collection/pull/3409>`_
8+
------------------------------------------------------------------------------------------------------------
9+
10+
* See: `#3408 <https://github.com/neos/flow-development-collection/issues/3408>`_
11+
12+
* Packages: ``Flow`` ``Flow.Log``
13+
14+
`BUGFIX: Always add space between IP and severity in file logs <https://github.com/neos/flow-development-collection/pull/3408>`_
15+
--------------------------------------------------------------------------------------------------------------------------------
16+
17+
For all IP addresses of length 15 or longer (most ipv6 addresses) no space was added between the IP address and the Severity.
18+
19+
This bugfix always adds a space character between IP and severity.
20+
21+
**Review instructions**
22+
23+
Check if IPv6 addresses are separated with a space in log files.
24+
25+
26+
* Packages: ``Flow`` ``Flow.Log``
27+
28+
`TASK: Use `SCAN` for redis flush <https://github.com/neos/flow-development-collection/pull/3387>`_
29+
---------------------------------------------------------------------------------------------------
30+
31+
This should speed up flush operations and lower the load on Redis.
32+
33+
**Review instructions**
34+
35+
The functional tests run ``flush()``…
36+
37+
38+
* Packages: ``Cache``
39+
40+
`TASK: Drop code for PHP < 8 <https://github.com/neos/flow-development-collection/pull/3412>`_
41+
----------------------------------------------------------------------------------------------
42+
43+
This drops code that was only executed on PHP < 8.0, and thus will never ever be run again.
44+
45+
* Packages: ``Flow``
46+
47+
`Detailed log <https://github.com/neos/flow-development-collection/compare/8.3.11...8.3.12>`_
48+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Neos.Flow/Resources/Private/Translations/ar/ValidationErrors.xlf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@
3232
<target state="translated">القيمة المعطاة ليست تاريخاً صحيحاً</target>
3333
</trans-unit>
3434
<trans-unit id="1325615630" xml:space="preserve">
35-
<source>The given date must be between {0,datetime,datetime} and {1,datetime,datetime}</source>
36-
<target state="translated">يجب أن يكون التاريخ المعطى بين {0,datetime,datetime} و {1,datetime,datetime}</target>
35+
<source>The given date must be between {0,datetime,dateTime} and {1,datetime,dateTime}</source>
36+
<target state="translated">يجب أن يكون التاريخ المعطى بين {0,datetime,dateTime} و {1,datetime,dateTime}</target>
3737
</trans-unit>
3838
<trans-unit id="1324315107" xml:space="preserve">
39-
<source>The given date must be after {0,datetime,datetime}</source>
40-
<target state="translated">يجب أن يكون التاريخ المعطى بعد {0,datetime,datetime}</target>
39+
<source>The given date must be after {0,datetime,dateTime}</source>
40+
<target state="translated">يجب أن يكون التاريخ المعطى بعد {0,datetime,dateTime}</target>
4141
</trans-unit>
4242
<trans-unit id="1324315115" xml:space="preserve">
43-
<source>The given date must be before {0,datetime,datetime}</source>
44-
<target state="translated">يجب أن يكون التاريخ المعطى قبل {0,datetime,datetime}</target>
43+
<source>The given date must be before {0,datetime,dateTime}</source>
44+
<target state="translated">يجب أن يكون التاريخ المعطى قبل {0,datetime,dateTime}</target>
4545
</trans-unit>
4646
<!-- DateTimeValidator -->
4747
<trans-unit id="1281454676" xml:space="preserve">

Neos.Flow/Resources/Private/Translations/cs/ValidationErrors.xlf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@
3232
<target state="translated">Zadaná hodnota není platné datum</target>
3333
</trans-unit>
3434
<trans-unit id="1325615630" xml:space="preserve">
35-
<source>The given date must be between {0,datetime,datetime} and {1,datetime,datetime}</source>
36-
<target state="translated">The given date must be between {0,datetime,datetime} and {1,datetime,datetime}</target>
35+
<source>The given date must be between {0,datetime,dateTime} and {1,datetime,dateTime}</source>
36+
<target state="translated">The given date must be between {0,datetime,dateTime} and {1,datetime,dateTime}</target>
3737
</trans-unit>
3838
<trans-unit id="1324315107" xml:space="preserve">
39-
<source>The given date must be after {0,datetime,datetime}</source>
40-
<target state="translated">The given date must be after {0,datetime,datetime}</target>
39+
<source>The given date must be after {0,datetime,dateTime}</source>
40+
<target state="translated">The given date must be after {0,datetime,dateTime}</target>
4141
</trans-unit>
4242
<trans-unit id="1324315115" xml:space="preserve">
43-
<source>The given date must be before {0,datetime,datetime}</source>
44-
<target state="translated">The given date must be before {0,datetime,datetime}</target>
43+
<source>The given date must be before {0,datetime,dateTime}</source>
44+
<target state="translated">The given date must be before {0,datetime,dateTime}</target>
4545
</trans-unit>
4646
<!-- DateTimeValidator -->
4747
<trans-unit id="1281454676" xml:space="preserve">

Neos.Flow/Resources/Private/Translations/da/ValidationErrors.xlf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@
3232
<target state="final">Den angivne værdi er ikke en gyldig dato</target>
3333
</trans-unit>
3434
<trans-unit id="1325615630" xml:space="preserve">
35-
<source>The given date must be between {0,datetime,datetime} and {1,datetime,datetime}</source>
36-
<target state="translated">The given date must be between {0,datetime,datetime} and {1,datetime,datetime}</target>
35+
<source>The given date must be between {0,datetime,dateTime} and {1,datetime,dateTime}</source>
36+
<target state="translated">The given date must be between {0,datetime,dateTime} and {1,datetime,dateTime}</target>
3737
</trans-unit>
3838
<trans-unit id="1324315107" xml:space="preserve">
39-
<source>The given date must be after {0,datetime,datetime}</source>
40-
<target state="translated">The given date must be after {0,datetime,datetime}</target>
39+
<source>The given date must be after {0,datetime,dateTime}</source>
40+
<target state="translated">The given date must be after {0,datetime,dateTime}</target>
4141
</trans-unit>
4242
<trans-unit id="1324315115" xml:space="preserve">
43-
<source>The given date must be before {0,datetime,datetime}</source>
44-
<target state="translated">The given date must be before {0,datetime,datetime}</target>
43+
<source>The given date must be before {0,datetime,dateTime}</source>
44+
<target state="translated">The given date must be before {0,datetime,dateTime}</target>
4545
</trans-unit>
4646
<!-- DateTimeValidator -->
4747
<trans-unit id="1281454676" xml:space="preserve" approved="yes">

0 commit comments

Comments
 (0)