sorry, should be solved now, messed in conflict resolution
rebased
One more strong reason is that PHPUnit 10 no longer has bugfix support (since Feb'25) https://phpunit.de/supported-versions.html
So moving to 11 is required step to start transition to 12
for example upgrade of composer/composer
require to update justinrainbow/json-schema
to new major and adds new dependency
I set it draft because there's other updates (
Color legend:
- patch or minor release available - update recommended
- major release available - update possible
Direct dependencies required in composer.json:
composer/composer 2.8.6 2.8.9 Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.
drupal/coder 8.3.26 8.3.30 Coder is a library to review Drupal code.
justinrainbow/json-schema 5.3.0 6.4.1 A library to validate a json schema.
mglaman/phpstan-drupal 2.0.5 2.0.7 Drupal extension and rules for PHPStan
phpspec/prophecy-phpunit 2.3.0 2.4.0 Integrating the Prophecy mocking library in PHPUnit test cases
phpstan/phpstan 2.1.14 2.1.17 PHPStan - PHP Static Analysis Tool
phpunit/phpunit 10.5.46 12.1.6 The PHP Unit Testing framework.
Transitive dependencies not required in composer.json:
brick/math 0.12.3 0.13.1 Arbitrary-precision arithmetic library
doctrine/lexer 2.1.1 3.0.1 PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.
google/protobuf 4.30.2 4.31.1 proto library for PHP
phpstan/phpstan-deprecation-rules 2.0.2 2.0.3 PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.
phpunit/php-code-coverage 10.1.16 12.3.0 Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator 4.1.0 6.0.0 FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-invoker 4.0.0 6.0.0 Invoke callables with a timeout
phpunit/php-text-template 3.0.1 5.0.0 Simple template engine.
phpunit/php-timer 6.0.0 8.0.0 Utility class for timing
sebastian/cli-parser 2.0.1 4.0.0 Library for parsing CLI options
sebastian/code-unit 2.0.0 3.0.3 Collection of value objects that represent the PHP code units
sebastian/code-unit-reverse-lookup 3.0.0 4.0.1 Looks up which function or method a line of code belongs to
sebastian/comparator 5.0.3 7.0.1 Provides the functionality to compare PHP values for equality
sebastian/complexity 3.2.0 5.0.0 Library for calculating the complexity of PHP code units
sebastian/diff 5.1.1 7.0.0 Diff implementation
sebastian/environment 6.1.0 8.0.2 Provides functionality to handle HHVM/PHP environments
sebastian/exporter 5.1.2 7.0.0 Provides the functionality to export PHP variables for visualization
sebastian/global-state 6.0.2 8.0.0 Snapshotting of global state
sebastian/lines-of-code 2.0.2 4.0.0 Library for counting the lines of code in PHP source code
sebastian/object-enumerator 5.0.0 7.0.0 Traverses array structures and object graphs to enumerate all referenced objects
sebastian/object-reflector 3.0.0 5.0.0 Allows reflection of object attributes, including inherited and non-public ones
sebastian/recursion-context 5.0.0 7.0.0 Provides functionality to recursively process PHP variables
sebastian/type 4.0.0 6.0.2 Collection of value objects that represent the types of the PHP type system
sebastian/version 4.0.1 6.0.0 Library that helps with managing the version number of Git-hosted PHP projects
slevomat/coding-standard 8.18.0 8.18.1 Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.
squizlabs/php_codesniffer 3.12.2 3.13.0 PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.
updated
cld --from 11.x
+------------------------------------+--------------+--------+
| Production Changes | From | To |
+------------------------------------+--------------+--------+
| symfony/console | v7.3.0-BETA1 | v7.3.0 |
| symfony/dependency-injection | v7.3.0-BETA1 | v7.3.0 |
| symfony/deprecation-contracts | v3.5.1 | v3.6.0 |
| symfony/error-handler | v7.3.0-BETA1 | v7.3.0 |
| symfony/event-dispatcher | v7.3.0-BETA1 | v7.3.0 |
| symfony/event-dispatcher-contracts | v3.5.1 | v3.6.0 |
| symfony/filesystem | v7.3.0-BETA1 | v7.3.0 |
| symfony/finder | v7.3.0-BETA1 | v7.3.0 |
| symfony/http-foundation | v7.3.0-BETA1 | v7.3.0 |
| symfony/http-kernel | v7.3.0-BETA1 | v7.3.0 |
| symfony/mailer | v7.3.0-BETA1 | v7.3.0 |
| symfony/mime | v7.3.0-BETA1 | v7.3.0 |
| symfony/process | v7.3.0-BETA1 | v7.3.0 |
| symfony/psr-http-message-bridge | v7.3.0-BETA1 | v7.3.0 |
| symfony/routing | v7.3.0-BETA1 | v7.3.0 |
| symfony/serializer | v7.3.0-BETA1 | v7.3.0 |
| symfony/service-contracts | v3.5.1 | v3.6.0 |
| symfony/string | v7.3.0-BETA1 | v7.3.0 |
| symfony/translation-contracts | v3.5.1 | v3.6.0 |
| symfony/validator | v7.3.0-BETA1 | v7.3.0 |
| symfony/var-dumper | v7.3.0-BETA1 | v7.3.0 |
| symfony/var-exporter | v7.3.0-BETA1 | v7.3.0 |
| symfony/yaml | v7.3.0-BETA1 | v7.3.0 |
+------------------------------------+--------------+--------+
+------------------------------+--------------+--------+
| Dev Changes | From | To |
+------------------------------+--------------+--------+
| composer/ca-bundle | 1.5.6 | 1.5.7 |
| composer/spdx-licenses | 1.5.8 | 1.5.9 |
| open-telemetry/api | 1.2.3 | 1.3.0 |
| open-telemetry/exporter-otlp | 1.2.1 | 1.3.1 |
| open-telemetry/sdk | 1.3.0 | 1.5.0 |
| symfony/browser-kit | v7.3.0-BETA1 | v7.3.0 |
| symfony/css-selector | v7.3.0-BETA1 | v7.3.0 |
| symfony/dom-crawler | v7.3.0-BETA1 | v7.3.0 |
| symfony/lock | v7.3.0-BETA1 | v7.3.0 |
+------------------------------+--------------+--------+
fixing
PHPUnit 12 is unblocked https://github.com/phpspec/prophecy-phpunit/releases/tag/v2.4.0
a bit more
+---------------------------+------+----------+
| Production Changes | From | To |
+---------------------------+------+----------+
| drupal/core-recipe-unpack | NEW | 11.x-dev |
+---------------------------+------+----------+
+------------------------------+-------+-------+
| Dev Changes | From | To |
+------------------------------+-------+-------+
| composer/ca-bundle | 1.5.6 | 1.5.7 |
| composer/spdx-licenses | 1.5.8 | 1.5.9 |
| open-telemetry/api | 1.2.3 | 1.3.0 |
| open-telemetry/exporter-otlp | 1.2.1 | 1.3.1 |
| open-telemetry/sdk | 1.3.0 | 1.5.0 |
+------------------------------+-------+-------+
RC1 of Symfony released so I filed 📌 Update Composer dependencies for 11.2.0 Active
SF update
+------------------------------------+--------------+------------+
| Production Changes | From | To |
+------------------------------------+--------------+------------+
| symfony/console | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/dependency-injection | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/deprecation-contracts | v3.5.1 | v3.6.0 |
| symfony/error-handler | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/event-dispatcher | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/event-dispatcher-contracts | v3.5.1 | v3.6.0 |
| symfony/filesystem | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/finder | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/http-foundation | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/http-kernel | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/mailer | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/mime | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/process | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/psr-http-message-bridge | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/routing | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/serializer | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/service-contracts | v3.5.1 | v3.6.0 |
| symfony/string | v7.3.0-BETA1 | v7.2.6 |
| symfony/translation-contracts | v3.5.1 | v3.6.0 |
| symfony/validator | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/var-dumper | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/var-exporter | v7.3.0-BETA1 | v7.2.6 |
| symfony/yaml | v7.3.0-BETA1 | v7.3.0-RC1 |
| drupal/core-recipe-unpack | NEW | 11.x-dev |
+------------------------------------+--------------+------------+
+----------------------+--------------+------------+
| Dev Changes | From | To |
+----------------------+--------------+------------+
| symfony/browser-kit | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/css-selector | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/dom-crawler | v7.3.0-BETA1 | v7.3.0-RC1 |
| symfony/lock | v7.3.0-BETA1 | v7.3.0-RC1 |
+----------------------+--------------+------------+
andypost → created an issue.
Looks like only 2 issues from summary make sense now
Thank you! as follow-up created let's get it in and speed-up 11.2)
@xmacinfo this method is for detection, see the commit from 📌 Use avif with webp fallback for all core image styles Active
This guard is required
/var/www/html/web $ php -r 'var_dump(function_exists("imageavif"));'
bool(true)
/var/www/html/web $ php -d disable_functions=imageavif -r 'var_dump(function_exists("imageavif"));'
bool(false)
Not clear how it possible to by-pass guard function_exists('imageavif')
maybe this function exists but disabled somehow
back to RTBC as changes reflect latest core commits
not the same
yes, this settings enabling aggregation, now having aggregated assets core applies compression
Fixed https://www.drupal.org/node/3526344/revisions/view/14005103/14005483 →
It talks about a setting on /admin/config/development/performance but I see no such setting.
this is where aggregate js/css checkboxes are
smustgrave → credited andypost → .
Looks it mostly fixed https://github.com/php/php-src/issues/13648#issuecomment-2900612456
thank you!
Thank you! Let's get it in and discover perf issues in follow-up as jobs on mysqli looks little bit slower
It looks great idea to git in for D12!
btw it will raise a question of DI for elements as related still)
dww → credited andypost → .
tests are here
CI images now has brotli
0.17.0 with latest fixes https://github.com/kjdev/php-ext-brotli/commit/48c719a9f0e2b1ae53e08acf2...
now all 8.3-8.5 images has igbinary PECL enabled
added and enabled all 3 extensions
all 8.3-8.5 images updated
andypost → made their first commit to this issue’s fork.
I think we need to add PECL extension to CI images to make ball roll
both brotli and zstd supported out of box https://externals.io/message/127347
both supported out of box by https://les-tilleuls.coop/en/blog/frankenphp-is-now-officially-supported...
RTBC as it's green, curious if other jobs also has broken order of dealing with codebase
from slack
...a problem with the sequence of the steps: composer was getting called after the codebase had been already moved to /build
that for some reason makes the update script override core with the HEAD version
that does not occur if you call composer on the gitlab project directory, as the phpunit jobs do
no regressions
Moved the issue to gain access #3521198-2: Create 3.x branch to import core contact module →
Moving issue as I just send message via contact form according to https://www.drupal.org/node/3328294 →
Sure, let's focus the issue on title and there's so many "needs" tags so not sure it fits into 11.2
added both to 8.1-8.3 https://git.drupalcode.org/project/drupalci_environments/-/jobs/5283944
still no support from Safari but all major browsers support it https://caniuse.com/zstd
Added both brotli and zstd to dev images, rebased and looks like tests passed
PS: probably zstd could be added in
pushed dev image for PHP 8.3 (default core testing) and will rebuild 8.4/8.5 later after testing
andypost → made their first commit to this issue’s fork.
One more thing to add is smoke testing of images
Ref https://git.drupalcode.org/project/drupalci_environments/-/commit/528745...
Maybe bump PHPstan in separate issue?
just 5c as help module maintainer - why not #[HelpTopic]
?
backported
rebased and cleaned up the drupal/core-recipe-unpack
Re #36 as a custom patch for sure
I think it will be easy to close the issue as fixing comments looks like endless loop
curious to compare performance of both methods
yep, rector rule + php85 sounds a good fit here
next beta has no viable changes, let's wait for next https://github.com/symfony/symfony/releases/tag/v7.3.0-BETA2
Thank you! now deprecated attribute is available for core even on PHP 8.3 - ✨ Adopt #[Deprecated] attribute Active
polyfill added via 📌 Compatibility with Symfony 7.3 Active
renamed and updated IS
Looks it should be simple rector rule as there's only value
, type
and position
are actually used by core as test-only MR showing all is compatible
and maybe a middlegroud is to add middleware to append query string when header provided
btw that's exactly a place to extend because attachments also should be delivered and merged, and not sure about "ajax_page_state"
+1 to #14 it will use seriously less code selecting renderer earlier
btw about messages ...hope it covered with drupal.message
since 8.7 →
the only question when we can drop 5.x of it
added list of implemented https://wiki.php.net/rfc#php_85
rebased and added snipped
btw maybe it's useful to add forward compatibility with 8.5 as we already has testing it via nightly and new array/error functions has polyfills and attributes implemented
andypost → created an issue.
@quietone thank you, downgraded for it
removed coder from summary
still would be great to have this compatibility in 11.2
cld --from 11.x
+-----------------------+--------+--------------+
| Production Changes | From | To |
+-----------------------+--------+--------------+
| symfony/error-handler | v7.2.5 | v7.3.0-BETA1 |
| symfony/var-dumper | v7.2.6 | v7.3.0-BETA1 |
+-----------------------+--------+--------------+
+----------------------+--------+--------------+
| Dev Changes | From | To |
+----------------------+--------+--------------+
| drupal/coder | 8.3.26 | 8.3.29 |
| symfony/browser-kit | v7.2.4 | v7.3.0-BETA1 |
| symfony/css-selector | v7.2.0 | v7.3.0-BETA1 |
| symfony/dom-crawler | v7.2.4 | v7.3.0-BETA1 |
| symfony/lock | v7.2.6 | v7.3.0-BETA1 |
+----------------------+--------+--------------+
btw there's 1.32 https://github.com/symfony/polyfill-php85
Added polyfill without usage in 📌 Compatibility with Symfony 7.3 Active but not sure it will be accepted
yes, duplicate but I see that root composer and other dependencies are not updated in other issue.
also coder https://www.drupal.org/project/coder/releases/8.3.29 →
rebased after 📌 Update Composer dependencies for 11.2.0 Active
andypost → made their first commit to this issue’s fork.
about #9 - it's the next in a parent meta (step 2) ✨ Create new mailer service based on symfony Active - which is not yet started
but for #8 it needs follow-up to discus factory approach but for 11.2 I bet it enough to start with single transport
probably caused by https://github.com/symfony/symfony/pull/59257
maybe change record could be added here? that's very helpful
it needs to decide if 11.2 will be shipped based on Symfony 7.3 or not one test failure in
8.3+ unit test fails
---- Drupal\Tests\Core\DependencyInjection\YamlFileLoaderTest ----
Status Duration Info
--------------------------------------------------------------------------------------------------------
Error 0.060s testParseDefinitionsWithProvider
Pass 0.002s testExceptions with data set "_defaults must be an array"
Pass 0.001s testExceptions with data set "invalid _defaults key"
Pass 0.001s testExceptions with data set "default tags must be an array"
Pass 0.001s testExceptions with data set "default tags must have a name"
Pass 0.001s testExceptions with data set "default tag name must not be empty"
Pass 0.001s testExceptions with data set "default tag name must be a string"
Pass 0.001s testExceptions with data set "default tag attribute must be scalar"
Pass 0.000s testExceptions with data set "tags must be an array"
Pass 0.001s testExceptions with data set "tags must have a name"
Pass 0.001s testExceptions with data set "tag name must not be empty"
Pass 0.001s testExceptions with data set "tag attribute must be scalar"
Pass 0.000s testExceptions with data set "service must be array or @service"
Pass 0.000s testExceptions with data set "YAML must be valid"
Pass 0.001s testExceptions with data set "YAML must have expected keys"
Pass 0.001s testExceptions with data set "decorates must be without @"
Pass 0.001s ...Exceptions with data set "decorates_on_invalid may not be "null" with quotes"
Pass 0.001s testExceptions with data set "decoration_on_invalid must be valid"
Log 0.410s *** Process execution output ***
PHPUnit 11.5.19 by Sebastian Bergmann and contributors.
Runtime: PHP 8.4.6
Configuration: /builds/issue/drupal-3523284/core/phpunit.xml.dist
E................. 18 / 18 (100%)
Time: 00:00.080, Memory: 6.00 MB
Yaml File Loader (Drupal\Tests\Core\DependencyInjection\YamlFileLoader)
✘ Parse definitions with provider
┐
├ Symfony\Component\DependencyInjection\Exception\InvalidArgumentException: The file "vfs://drupal/modules/example/example.yml" does not contain valid YAML: Unexpected token """ at line 11 (near "arguments: [!tagged_iterator foo.bar]"").
│
│ /builds/issue/drupal-3523284/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php:452
│ /builds/issue/drupal-3523284/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php:75
│ /builds/issue/drupal-3523284/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php:59
┴
✔ Exceptions with _defaults·must·be·an·array
✔ Exceptions with invalid·_defaults·key
✔ Exceptions with default·tags·must·be·an·array
✔ Exceptions with default·tags·must·have·a·name
✔ Exceptions with default·tag·name·must·not·be·empty
✔ Exceptions with default·tag·name·must·be·a·string
✔ Exceptions with default·tag·attribute·must·be·scalar
✔ Exceptions with tags·must·be·an·array
✔ Exceptions with tags·must·have·a·name
✔ Exceptions with tag·name·must·not·be·empty
✔ Exceptions with tag·attribute·must·be·scalar
✔ Exceptions with service·must·be·array·or·@service
✔ Exceptions with YAML·must·be·valid
✔ Exceptions with YAML·must·have·expected·keys
✔ Exceptions with decorates·must·be·without·@
✔ Exceptions with decorates_on_invalid·may·not·be·"null"·with·quotes
✔ Exceptions with decoration_on_invalid·must·be·valid
ERRORS!
Tests: 18, Assertions: 34, Errors: 1, PHPUnit Deprecations: 2.
+----------------------------------+---------+--------------+
| Production Changes | From | To |
+----------------------------------+---------+--------------+
| doctrine/deprecations | 1.1.3 | 1.1.5 |
| egulias/email-validator | 4.0.2 | 4.0.4 |
| symfony/console | v7.2.0 | v7.3.0-BETA1 |
| symfony/dependency-injection | v7.2.0 | v7.3.0-BETA1 |
| symfony/error-handler | v7.2.0 | v7.3.0-BETA1 |
| symfony/event-dispatcher | v7.2.0 | v7.3.0-BETA1 |
| symfony/filesystem | v7.2.0 | v7.3.0-BETA1 |
| symfony/finder | v7.2.0 | v7.3.0-BETA1 |
| symfony/http-foundation | v7.2.0 | v7.3.0-BETA1 |
| symfony/http-kernel | v7.2.0 | v7.3.0-BETA1 |
| symfony/mailer | v7.2.0 | v7.3.0-BETA1 |
| symfony/mime | v7.2.0 | v7.3.0-BETA1 |
| symfony/polyfill-ctype | v1.31.0 | v1.32.0 |
| symfony/polyfill-iconv | v1.31.0 | v1.32.0 |
| symfony/polyfill-intl-grapheme | v1.31.0 | v1.32.0 |
| symfony/polyfill-intl-idn | v1.31.0 | v1.32.0 |
| symfony/polyfill-intl-normalizer | v1.31.0 | v1.32.0 |
| symfony/polyfill-mbstring | v1.31.0 | v1.32.0 |
| symfony/process | v7.2.0 | v7.2.5 |
| symfony/psr-http-message-bridge | v7.2.0 | v7.3.0-BETA1 |
| symfony/routing | v7.2.0 | v7.3.0-BETA1 |
| symfony/serializer | v7.2.0 | v7.3.0-BETA1 |
| symfony/string | v7.2.0 | v7.3.0-BETA1 |
| symfony/validator | v7.2.0 | v7.3.0-BETA1 |
| symfony/var-dumper | v7.2.0 | v7.3.0-BETA1 |
| symfony/var-exporter | v7.2.0 | v7.3.0-BETA1 |
| symfony/yaml | v7.2.0 | v7.3.0-BETA1 |
+----------------------------------+---------+--------------+
+----------------------+--------+--------------+
| Dev Changes | From | To |
+----------------------+--------+--------------+
| symfony/browser-kit | v7.2.0 | v7.3.0-BETA1 |
| symfony/css-selector | v7.2.0 | v7.3.0-BETA1 |
| symfony/dom-crawler | v7.2.0 | v7.3.0-BETA1 |
| symfony/lock | v7.2.0 | v7.3.0-BETA1 |
+----------------------+--------+--------------+