From 68f43d00db69460fef17679f6915283bcd9c751d Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Mon, 19 Jan 2026 10:43:11 +0100 Subject: [PATCH 1/8] Change the deprecation message for `null` attribute values --- src/TwigComponent/src/ComponentAttributes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TwigComponent/src/ComponentAttributes.php b/src/TwigComponent/src/ComponentAttributes.php index bd4029145e2..0d6df1a27cd 100644 --- a/src/TwigComponent/src/ComponentAttributes.php +++ b/src/TwigComponent/src/ComponentAttributes.php @@ -61,7 +61,7 @@ public function __toString(): string } if (null === $value) { - trigger_deprecation('symfony/ux-twig-component', '2.8.0', 'Passing "null" as an attribute value is deprecated and will throw an exception in 3.0.'); + trigger_deprecation('symfony/ux-twig-component', '2.32.0', 'Passing null as value for the %s attribute will omit the attribute in 3.0. To keep the current result, pass true instead.', $key); $value = true; } From 83560399cba051b2bd54744331f9366b4ae4a411 Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Mon, 19 Jan 2026 10:55:47 +0100 Subject: [PATCH 2/8] Update the CHANGELOG --- apps/e2e/composer.json | 130 +++++++++++++++++++---- apps/encore/composer.json | 130 +++++++++++++++++++---- src/Chartjs/composer.json | 10 +- src/Icons/composer.json | 10 +- src/LiveComponent/composer.json | 16 ++- src/Map/composer.json | 22 +++- src/Map/src/Bridge/Google/composer.json | 36 +++++-- src/Map/src/Bridge/Leaflet/composer.json | 36 +++++-- src/Notify/composer.json | 10 +- src/React/composer.json | 10 +- src/Svelte/composer.json | 10 +- src/Toolkit/composer.json | 16 ++- src/Turbo/composer.json | 16 ++- src/TwigComponent/CHANGELOG.md | 3 + src/TwigComponent/composer.json | 10 +- src/Vue/composer.json | 10 +- 16 files changed, 390 insertions(+), 85 deletions(-) diff --git a/apps/e2e/composer.json b/apps/e2e/composer.json index 8a868cfc154..f75307ad823 100644 --- a/apps/e2e/composer.json +++ b/apps/e2e/composer.json @@ -42,28 +42,28 @@ "symfony/property-info": "6.4.*|7.3.*", "symfony/runtime": "6.4.*|7.3.*", "symfony/serializer": "6.4.*|7.3.*", - "symfony/stimulus-bundle": "^2.29.1", + "symfony/stimulus-bundle": "@dev", "symfony/twig-bundle": "6.4.*|7.3.*", - "symfony/ux-autocomplete": "^2.29.1", - "symfony/ux-chartjs": "^2.29.1", - "symfony/ux-cropperjs": "^2.29.1", - "symfony/ux-dropzone": "^2.29.1", - "symfony/ux-google-map": "^2.29.1", - "symfony/ux-icons": "^2.29", - "symfony/ux-lazy-image": "^2.29.1", - "symfony/ux-leaflet-map": "^2.29.1", - "symfony/ux-live-component": "^2.29.1", - "symfony/ux-map": "^2.29.1", - "symfony/ux-notify": "^2.29.1", - "symfony/ux-react": "^2.29.1", - "symfony/ux-svelte": "^2.29.1", - "symfony/ux-swup": "^2.29.1", - "symfony/ux-toggle-password": "^2.29.1", - "symfony/ux-translator": "^2.29.1", - "symfony/ux-turbo": "^2.29.1", - "symfony/ux-twig-component": "^2.29", - "symfony/ux-typed": "^2.29.1", - "symfony/ux-vue": "^2.29.1", + "symfony/ux-autocomplete": "@dev", + "symfony/ux-chartjs": "@dev", + "symfony/ux-cropperjs": "@dev", + "symfony/ux-dropzone": "@dev", + "symfony/ux-google-map": "@dev", + "symfony/ux-icons": "@dev", + "symfony/ux-lazy-image": "@dev", + "symfony/ux-leaflet-map": "@dev", + "symfony/ux-live-component": "@dev", + "symfony/ux-map": "@dev", + "symfony/ux-notify": "@dev", + "symfony/ux-react": "@dev", + "symfony/ux-svelte": "@dev", + "symfony/ux-swup": "@dev", + "symfony/ux-toggle-password": "@dev", + "symfony/ux-translator": "@dev", + "symfony/ux-turbo": "@dev", + "symfony/ux-twig-component": "@dev", + "symfony/ux-typed": "@dev", + "symfony/ux-vue": "@dev", "symfony/yaml": "6.4.*|7.3.*", "symfonycasts/dynamic-forms": "^0.2", "twig/extra-bundle": "^3.21", @@ -121,5 +121,91 @@ "allow-contrib": false, "require": "6.4.*|7.3.*" } - } + }, + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/Autocomplete" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Chartjs" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Cropperjs" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Dropzone" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Icons" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/LazyImage" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/LiveComponent" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Notify" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/React" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Svelte" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Swup" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TogglePassword" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Translator" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Turbo" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Typed" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Vue" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map/src/Bridge/Google" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map/src/Bridge/Leaflet" + } + ] } diff --git a/apps/encore/composer.json b/apps/encore/composer.json index 7918af26afc..6c98c61ac78 100644 --- a/apps/encore/composer.json +++ b/apps/encore/composer.json @@ -12,27 +12,27 @@ "symfony/flex": "^2", "symfony/framework-bundle": "7.2.*", "symfony/runtime": "7.2.*", - "symfony/stimulus-bundle": "^2.23", - "symfony/ux-autocomplete": "^2.23", - "symfony/ux-chartjs": "^2.23", - "symfony/ux-cropperjs": "^2.23", - "symfony/ux-dropzone": "^2.23", - "symfony/ux-google-map": "^2.23", - "symfony/ux-icons": "^2.23", - "symfony/ux-lazy-image": "^2.23", - "symfony/ux-leaflet-map": "^2.23", - "symfony/ux-live-component": "^2.23", - "symfony/ux-map": "^2.23", - "symfony/ux-notify": "^2.23", - "symfony/ux-react": "^2.23", - "symfony/ux-svelte": "^2.23", - "symfony/ux-swup": "^2.23", - "symfony/ux-toggle-password": "^2.23", - "symfony/ux-translator": "^2.23", - "symfony/ux-turbo": "^2.23", - "symfony/ux-twig-component": "^2.23", - "symfony/ux-typed": "^2.23", - "symfony/ux-vue": "^2.23", + "symfony/stimulus-bundle": "@dev", + "symfony/ux-autocomplete": "@dev", + "symfony/ux-chartjs": "@dev", + "symfony/ux-cropperjs": "@dev", + "symfony/ux-dropzone": "@dev", + "symfony/ux-google-map": "@dev", + "symfony/ux-icons": "@dev", + "symfony/ux-lazy-image": "@dev", + "symfony/ux-leaflet-map": "@dev", + "symfony/ux-live-component": "@dev", + "symfony/ux-map": "@dev", + "symfony/ux-notify": "@dev", + "symfony/ux-react": "@dev", + "symfony/ux-svelte": "@dev", + "symfony/ux-swup": "@dev", + "symfony/ux-toggle-password": "@dev", + "symfony/ux-translator": "@dev", + "symfony/ux-turbo": "@dev", + "symfony/ux-twig-component": "@dev", + "symfony/ux-typed": "@dev", + "symfony/ux-vue": "@dev", "symfony/webpack-encore-bundle": "^2.2", "symfony/yaml": "7.2.*" }, @@ -90,5 +90,91 @@ "allow-contrib": false, "require": "7.2.*" } - } + }, + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/Autocomplete" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Chartjs" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Cropperjs" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Dropzone" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Icons" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/LazyImage" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/LiveComponent" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Notify" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/React" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Svelte" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Swup" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TogglePassword" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Translator" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Turbo" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Typed" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Vue" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map/src/Bridge/Google" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map/src/Bridge/Leaflet" + } + ] } diff --git a/src/Chartjs/composer.json b/src/Chartjs/composer.json index 5f1c0948d3f..759e3f30cb1 100644 --- a/src/Chartjs/composer.json +++ b/src/Chartjs/composer.json @@ -32,7 +32,7 @@ "symfony/config": "^5.4|^6.0|^7.0|^8.0", "symfony/dependency-injection": "^5.4|^6.0|^7.0|^8.0", "symfony/http-kernel": "^5.4|^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "^2.9.1" + "symfony/stimulus-bundle": "@dev" }, "require-dev": { "symfony/framework-bundle": "^5.4|^6.0|^7.0|^8.0", @@ -49,5 +49,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/Icons/composer.json b/src/Icons/composer.json index e0759b82d39..92f1a567f3e 100644 --- a/src/Icons/composer.json +++ b/src/Icons/composer.json @@ -44,7 +44,7 @@ "symfony/console": "^6.4|^7.0|^8.0", "symfony/http-client": "^6.4|^7.0|^8.0", "symfony/phpunit-bridge": "^6.3|^7.0|^8.0", - "symfony/ux-twig-component": "^2.14", + "symfony/ux-twig-component": "@dev", "zenstruck/console-test": "^1.5", "psr/log": "^2|^3" }, @@ -61,5 +61,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + } + ] } diff --git a/src/LiveComponent/composer.json b/src/LiveComponent/composer.json index f649b55befa..5bca1f14ad8 100644 --- a/src/LiveComponent/composer.json +++ b/src/LiveComponent/composer.json @@ -30,8 +30,8 @@ "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/property-access": "^5.4.5|^6.0|^7.0|^8.0", "symfony/property-info": "^5.4|^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "^2.9", - "symfony/ux-twig-component": "^2.25.1", + "symfony/stimulus-bundle": "@dev", + "symfony/ux-twig-component": "@dev", "twig/twig": "^3.10.3" }, "require-dev": { @@ -69,5 +69,15 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + } + ] } diff --git a/src/Map/composer.json b/src/Map/composer.json index aeb19e5730a..3c17a9ceff3 100644 --- a/src/Map/composer.json +++ b/src/Map/composer.json @@ -33,15 +33,15 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.18.1" + "symfony/stimulus-bundle": "@dev" }, "require-dev": { "symfony/asset-mapper": "^6.4|^7.0|^8.0", "symfony/framework-bundle": "^6.4|^7.0|^8.0", "symfony/phpunit-bridge": "^7.2|^8.0", "symfony/twig-bundle": "^6.4|^7.0|^8.0", - "symfony/ux-twig-component": "^2.18|^8.0", - "symfony/ux-icons": "^2.18", + "symfony/ux-twig-component": "@dev", + "symfony/ux-icons": "@dev", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22" }, @@ -54,5 +54,19 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/Icons" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + } + ] } diff --git a/src/Map/src/Bridge/Google/composer.json b/src/Map/src/Bridge/Google/composer.json index 6c0135a18ec..83dd2bf4a37 100644 --- a/src/Map/src/Bridge/Google/composer.json +++ b/src/Map/src/Bridge/Google/composer.json @@ -2,7 +2,11 @@ "name": "symfony/ux-google-map", "type": "symfony-ux-map-bridge", "description": "Symfony UX Map GoogleMaps Bridge", - "keywords": ["symfony-ux", "google-maps", "map"], + "keywords": [ + "symfony-ux", + "google-maps", + "map" + ], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -17,21 +21,39 @@ ], "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.18.1", - "symfony/ux-map": "^2.19" + "symfony/stimulus-bundle": "@dev", + "symfony/ux-map": "@dev" }, "require-dev": { "symfony/phpunit-bridge": "^7.2|^8.0", - "symfony/ux-icons": "^2.18", + "symfony/ux-icons": "@dev", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22" }, "autoload": { - "psr-4": { "Symfony\\UX\\Map\\Bridge\\Google\\": "src/" }, + "psr-4": { + "Symfony\\UX\\Map\\Bridge\\Google\\": "src/" + }, "exclude-from-classmap": [] }, "autoload-dev": { - "psr-4": { "Symfony\\UX\\Map\\Bridge\\Google\\Tests\\": "tests/" } + "psr-4": { + "Symfony\\UX\\Map\\Bridge\\Google\\Tests\\": "tests/" + } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/Icons" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/Map/src/Bridge/Leaflet/composer.json b/src/Map/src/Bridge/Leaflet/composer.json index cb9ca02e52e..351d259b92b 100644 --- a/src/Map/src/Bridge/Leaflet/composer.json +++ b/src/Map/src/Bridge/Leaflet/composer.json @@ -2,7 +2,11 @@ "name": "symfony/ux-leaflet-map", "type": "symfony-ux-map-bridge", "description": "Symfony UX Map Leaflet Bridge", - "keywords": ["symfony-ux", "leaflet", "map"], + "keywords": [ + "symfony-ux", + "leaflet", + "map" + ], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -17,21 +21,39 @@ ], "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.18.1", - "symfony/ux-map": "^2.19" + "symfony/stimulus-bundle": "@dev", + "symfony/ux-map": "@dev" }, "require-dev": { "symfony/phpunit-bridge": "^7.2|^8.0", - "symfony/ux-icons": "^2.18", + "symfony/ux-icons": "@dev", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22" }, "autoload": { - "psr-4": { "Symfony\\UX\\Map\\Bridge\\Leaflet\\": "src/" }, + "psr-4": { + "Symfony\\UX\\Map\\Bridge\\Leaflet\\": "src/" + }, "exclude-from-classmap": [] }, "autoload-dev": { - "psr-4": { "Symfony\\UX\\Map\\Bridge\\Leaflet\\Tests\\": "tests/" } + "psr-4": { + "Symfony\\UX\\Map\\Bridge\\Leaflet\\Tests\\": "tests/" + } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/Icons" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/Map" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/Notify/composer.json b/src/Notify/composer.json index 8469d8c9f33..9a37f0b8ae2 100644 --- a/src/Notify/composer.json +++ b/src/Notify/composer.json @@ -34,7 +34,7 @@ "symfony/http-kernel": "^5.4|^6.0|^7.0|^8.0", "symfony/mercure-bundle": "^0.3.4|^0.4.1", "symfony/mercure-notifier": "^5.4|^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "^2.9.1", + "symfony/stimulus-bundle": "@dev", "symfony/twig-bundle": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { @@ -51,5 +51,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/React/composer.json b/src/React/composer.json index 46081a52359..23d137d55d4 100644 --- a/src/React/composer.json +++ b/src/React/composer.json @@ -29,7 +29,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.9.1" + "symfony/stimulus-bundle": "@dev" }, "require-dev": { "symfony/asset-mapper": "^6.3|^7.0|^8.0", @@ -45,5 +45,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/Svelte/composer.json b/src/Svelte/composer.json index 6ce86e8dff8..323fa90980c 100644 --- a/src/Svelte/composer.json +++ b/src/Svelte/composer.json @@ -33,7 +33,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.9.1" + "symfony/stimulus-bundle": "@dev" }, "require-dev": { "symfony/asset-mapper": "^6.3|^7.0|^8.0", @@ -49,5 +49,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/Toolkit/composer.json b/src/Toolkit/composer.json index 987072fff74..4fd937ca84f 100644 --- a/src/Toolkit/composer.json +++ b/src/Toolkit/composer.json @@ -36,7 +36,7 @@ "symfony/filesystem": "^6.4|^7.0|^8.0", "symfony/framework-bundle": "^6.4|^7.0|^8.0", "symfony/twig-bundle": "^6.4|^7.0|^8.0", - "symfony/ux-twig-component": "^2.25.1", + "symfony/ux-twig-component": "@dev", "symfony/yaml": "^6.4|^7.0|^8.0" }, "require-dev": { @@ -49,7 +49,7 @@ "symfony/phpunit-bridge": "^7.2|^8.0", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22", - "symfony/ux-icons": "^2.18", + "symfony/ux-icons": "@dev", "tales-from-a-dev/twig-tailwind-extra": "^1.0.0" }, "bin": [ @@ -73,5 +73,15 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/Icons" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + } + ] } diff --git a/src/Turbo/composer.json b/src/Turbo/composer.json index 09e3deea908..adb93775122 100644 --- a/src/Turbo/composer.json +++ b/src/Turbo/composer.json @@ -35,7 +35,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.9.1" + "symfony/stimulus-bundle": "@dev" }, "require-dev": { "doctrine/doctrine-bundle": "^2.4.3|^3.0|^4.0", @@ -53,7 +53,7 @@ "symfony/property-access": "^5.4|^6.0|^7.0|^8.0", "symfony/security-core": "^5.4|^6.0|^7.0|^8.0", "symfony/stopwatch": "^5.4|^6.0|^7.0|^8.0", - "symfony/ux-twig-component": "^2.21", + "symfony/ux-twig-component": "@dev", "symfony/twig-bundle": "^6.4|^7.0|^8.0", "symfony/web-profiler-bundle": "^5.4|^6.0|^7.0|^8.0", "symfony/expression-language": "^5.4|^6.0|^7.0|^8.0", @@ -74,5 +74,15 @@ "allow-plugins": { "composer/package-versions-deprecated": true } - } + }, + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + }, + { + "type": "path", + "url": "/var/www/symfony-ux/src/TwigComponent" + } + ] } diff --git a/src/TwigComponent/CHANGELOG.md b/src/TwigComponent/CHANGELOG.md index c2065acd61a..4f7446f277c 100644 --- a/src/TwigComponent/CHANGELOG.md +++ b/src/TwigComponent/CHANGELOG.md @@ -5,6 +5,9 @@ - Add option `profiler.collect_components` to control component data collection in the profiler (enabled in debug mode by default) - Add support for using directory name as component name for anonymous components +- Change announced behavior for `null` attribute values: Instead of throwing, 3.0 + will omit attributes with `null` values. To keep the current result, `true` + should be passed instead of `null`. ## 2.30 diff --git a/src/TwigComponent/composer.json b/src/TwigComponent/composer.json index cb1e08c65e0..8843d442d85 100644 --- a/src/TwigComponent/composer.json +++ b/src/TwigComponent/composer.json @@ -39,7 +39,7 @@ "symfony/dom-crawler": "^5.4|^6.0|^7.0|^8.0", "symfony/framework-bundle": "^5.4|^6.0|^7.0|^8.0", "symfony/phpunit-bridge": "^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "^2.9.1", + "symfony/stimulus-bundle": "@dev", "symfony/twig-bundle": "^5.4|^6.0|^7.0|^8.0", "symfony/webpack-encore-bundle": "^1.15|^2.3.0" }, @@ -55,5 +55,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } diff --git a/src/Vue/composer.json b/src/Vue/composer.json index bf3f80c37df..294efb671c5 100644 --- a/src/Vue/composer.json +++ b/src/Vue/composer.json @@ -33,7 +33,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "^2.9.1" + "symfony/stimulus-bundle": "@dev" }, "require-dev": { "symfony/asset-mapper": "^6.3|^7.0|^8.0", @@ -49,5 +49,11 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "repositories": [ + { + "type": "path", + "url": "/var/www/symfony-ux/src/StimulusBundle" + } + ] } From dfd613fff97c8418dc4923d339ccbb19253494bc Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Mon, 19 Jan 2026 16:54:55 +0100 Subject: [PATCH 3/8] Revert inadvertent change --- apps/e2e/composer.json | 130 ++++------------------- apps/encore/composer.json | 130 ++++------------------- src/Chartjs/composer.json | 10 +- src/Icons/composer.json | 10 +- src/LiveComponent/composer.json | 16 +-- src/Map/composer.json | 22 +--- src/Map/src/Bridge/Google/composer.json | 36 ++----- src/Map/src/Bridge/Leaflet/composer.json | 36 ++----- src/Notify/composer.json | 10 +- src/React/composer.json | 10 +- src/Svelte/composer.json | 10 +- src/Toolkit/composer.json | 16 +-- src/Turbo/composer.json | 16 +-- src/TwigComponent/composer.json | 10 +- src/Vue/composer.json | 10 +- 15 files changed, 85 insertions(+), 387 deletions(-) diff --git a/apps/e2e/composer.json b/apps/e2e/composer.json index f75307ad823..8a868cfc154 100644 --- a/apps/e2e/composer.json +++ b/apps/e2e/composer.json @@ -42,28 +42,28 @@ "symfony/property-info": "6.4.*|7.3.*", "symfony/runtime": "6.4.*|7.3.*", "symfony/serializer": "6.4.*|7.3.*", - "symfony/stimulus-bundle": "@dev", + "symfony/stimulus-bundle": "^2.29.1", "symfony/twig-bundle": "6.4.*|7.3.*", - "symfony/ux-autocomplete": "@dev", - "symfony/ux-chartjs": "@dev", - "symfony/ux-cropperjs": "@dev", - "symfony/ux-dropzone": "@dev", - "symfony/ux-google-map": "@dev", - "symfony/ux-icons": "@dev", - "symfony/ux-lazy-image": "@dev", - "symfony/ux-leaflet-map": "@dev", - "symfony/ux-live-component": "@dev", - "symfony/ux-map": "@dev", - "symfony/ux-notify": "@dev", - "symfony/ux-react": "@dev", - "symfony/ux-svelte": "@dev", - "symfony/ux-swup": "@dev", - "symfony/ux-toggle-password": "@dev", - "symfony/ux-translator": "@dev", - "symfony/ux-turbo": "@dev", - "symfony/ux-twig-component": "@dev", - "symfony/ux-typed": "@dev", - "symfony/ux-vue": "@dev", + "symfony/ux-autocomplete": "^2.29.1", + "symfony/ux-chartjs": "^2.29.1", + "symfony/ux-cropperjs": "^2.29.1", + "symfony/ux-dropzone": "^2.29.1", + "symfony/ux-google-map": "^2.29.1", + "symfony/ux-icons": "^2.29", + "symfony/ux-lazy-image": "^2.29.1", + "symfony/ux-leaflet-map": "^2.29.1", + "symfony/ux-live-component": "^2.29.1", + "symfony/ux-map": "^2.29.1", + "symfony/ux-notify": "^2.29.1", + "symfony/ux-react": "^2.29.1", + "symfony/ux-svelte": "^2.29.1", + "symfony/ux-swup": "^2.29.1", + "symfony/ux-toggle-password": "^2.29.1", + "symfony/ux-translator": "^2.29.1", + "symfony/ux-turbo": "^2.29.1", + "symfony/ux-twig-component": "^2.29", + "symfony/ux-typed": "^2.29.1", + "symfony/ux-vue": "^2.29.1", "symfony/yaml": "6.4.*|7.3.*", "symfonycasts/dynamic-forms": "^0.2", "twig/extra-bundle": "^3.21", @@ -121,91 +121,5 @@ "allow-contrib": false, "require": "6.4.*|7.3.*" } - }, - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/Autocomplete" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Chartjs" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Cropperjs" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Dropzone" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Icons" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/LazyImage" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/LiveComponent" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Notify" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/React" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Svelte" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Swup" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TogglePassword" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Translator" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Turbo" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Typed" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Vue" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map/src/Bridge/Google" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map/src/Bridge/Leaflet" - } - ] + } } diff --git a/apps/encore/composer.json b/apps/encore/composer.json index 6c98c61ac78..7918af26afc 100644 --- a/apps/encore/composer.json +++ b/apps/encore/composer.json @@ -12,27 +12,27 @@ "symfony/flex": "^2", "symfony/framework-bundle": "7.2.*", "symfony/runtime": "7.2.*", - "symfony/stimulus-bundle": "@dev", - "symfony/ux-autocomplete": "@dev", - "symfony/ux-chartjs": "@dev", - "symfony/ux-cropperjs": "@dev", - "symfony/ux-dropzone": "@dev", - "symfony/ux-google-map": "@dev", - "symfony/ux-icons": "@dev", - "symfony/ux-lazy-image": "@dev", - "symfony/ux-leaflet-map": "@dev", - "symfony/ux-live-component": "@dev", - "symfony/ux-map": "@dev", - "symfony/ux-notify": "@dev", - "symfony/ux-react": "@dev", - "symfony/ux-svelte": "@dev", - "symfony/ux-swup": "@dev", - "symfony/ux-toggle-password": "@dev", - "symfony/ux-translator": "@dev", - "symfony/ux-turbo": "@dev", - "symfony/ux-twig-component": "@dev", - "symfony/ux-typed": "@dev", - "symfony/ux-vue": "@dev", + "symfony/stimulus-bundle": "^2.23", + "symfony/ux-autocomplete": "^2.23", + "symfony/ux-chartjs": "^2.23", + "symfony/ux-cropperjs": "^2.23", + "symfony/ux-dropzone": "^2.23", + "symfony/ux-google-map": "^2.23", + "symfony/ux-icons": "^2.23", + "symfony/ux-lazy-image": "^2.23", + "symfony/ux-leaflet-map": "^2.23", + "symfony/ux-live-component": "^2.23", + "symfony/ux-map": "^2.23", + "symfony/ux-notify": "^2.23", + "symfony/ux-react": "^2.23", + "symfony/ux-svelte": "^2.23", + "symfony/ux-swup": "^2.23", + "symfony/ux-toggle-password": "^2.23", + "symfony/ux-translator": "^2.23", + "symfony/ux-turbo": "^2.23", + "symfony/ux-twig-component": "^2.23", + "symfony/ux-typed": "^2.23", + "symfony/ux-vue": "^2.23", "symfony/webpack-encore-bundle": "^2.2", "symfony/yaml": "7.2.*" }, @@ -90,91 +90,5 @@ "allow-contrib": false, "require": "7.2.*" } - }, - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/Autocomplete" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Chartjs" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Cropperjs" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Dropzone" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Icons" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/LazyImage" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/LiveComponent" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Notify" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/React" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Svelte" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Swup" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TogglePassword" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Translator" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Turbo" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Typed" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Vue" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map/src/Bridge/Google" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map/src/Bridge/Leaflet" - } - ] + } } diff --git a/src/Chartjs/composer.json b/src/Chartjs/composer.json index 759e3f30cb1..5f1c0948d3f 100644 --- a/src/Chartjs/composer.json +++ b/src/Chartjs/composer.json @@ -32,7 +32,7 @@ "symfony/config": "^5.4|^6.0|^7.0|^8.0", "symfony/dependency-injection": "^5.4|^6.0|^7.0|^8.0", "symfony/http-kernel": "^5.4|^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "@dev" + "symfony/stimulus-bundle": "^2.9.1" }, "require-dev": { "symfony/framework-bundle": "^5.4|^6.0|^7.0|^8.0", @@ -49,11 +49,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/Icons/composer.json b/src/Icons/composer.json index 92f1a567f3e..e0759b82d39 100644 --- a/src/Icons/composer.json +++ b/src/Icons/composer.json @@ -44,7 +44,7 @@ "symfony/console": "^6.4|^7.0|^8.0", "symfony/http-client": "^6.4|^7.0|^8.0", "symfony/phpunit-bridge": "^6.3|^7.0|^8.0", - "symfony/ux-twig-component": "@dev", + "symfony/ux-twig-component": "^2.14", "zenstruck/console-test": "^1.5", "psr/log": "^2|^3" }, @@ -61,11 +61,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - } - ] + "minimum-stability": "dev" } diff --git a/src/LiveComponent/composer.json b/src/LiveComponent/composer.json index 5bca1f14ad8..f649b55befa 100644 --- a/src/LiveComponent/composer.json +++ b/src/LiveComponent/composer.json @@ -30,8 +30,8 @@ "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/property-access": "^5.4.5|^6.0|^7.0|^8.0", "symfony/property-info": "^5.4|^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "@dev", - "symfony/ux-twig-component": "@dev", + "symfony/stimulus-bundle": "^2.9", + "symfony/ux-twig-component": "^2.25.1", "twig/twig": "^3.10.3" }, "require-dev": { @@ -69,15 +69,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - } - ] + "minimum-stability": "dev" } diff --git a/src/Map/composer.json b/src/Map/composer.json index 3c17a9ceff3..aeb19e5730a 100644 --- a/src/Map/composer.json +++ b/src/Map/composer.json @@ -33,15 +33,15 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev" + "symfony/stimulus-bundle": "^2.18.1" }, "require-dev": { "symfony/asset-mapper": "^6.4|^7.0|^8.0", "symfony/framework-bundle": "^6.4|^7.0|^8.0", "symfony/phpunit-bridge": "^7.2|^8.0", "symfony/twig-bundle": "^6.4|^7.0|^8.0", - "symfony/ux-twig-component": "@dev", - "symfony/ux-icons": "@dev", + "symfony/ux-twig-component": "^2.18|^8.0", + "symfony/ux-icons": "^2.18", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22" }, @@ -54,19 +54,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/Icons" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - } - ] + "minimum-stability": "dev" } diff --git a/src/Map/src/Bridge/Google/composer.json b/src/Map/src/Bridge/Google/composer.json index 83dd2bf4a37..6c0135a18ec 100644 --- a/src/Map/src/Bridge/Google/composer.json +++ b/src/Map/src/Bridge/Google/composer.json @@ -2,11 +2,7 @@ "name": "symfony/ux-google-map", "type": "symfony-ux-map-bridge", "description": "Symfony UX Map GoogleMaps Bridge", - "keywords": [ - "symfony-ux", - "google-maps", - "map" - ], + "keywords": ["symfony-ux", "google-maps", "map"], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -21,39 +17,21 @@ ], "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev", - "symfony/ux-map": "@dev" + "symfony/stimulus-bundle": "^2.18.1", + "symfony/ux-map": "^2.19" }, "require-dev": { "symfony/phpunit-bridge": "^7.2|^8.0", - "symfony/ux-icons": "@dev", + "symfony/ux-icons": "^2.18", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22" }, "autoload": { - "psr-4": { - "Symfony\\UX\\Map\\Bridge\\Google\\": "src/" - }, + "psr-4": { "Symfony\\UX\\Map\\Bridge\\Google\\": "src/" }, "exclude-from-classmap": [] }, "autoload-dev": { - "psr-4": { - "Symfony\\UX\\Map\\Bridge\\Google\\Tests\\": "tests/" - } + "psr-4": { "Symfony\\UX\\Map\\Bridge\\Google\\Tests\\": "tests/" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/Icons" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/Map/src/Bridge/Leaflet/composer.json b/src/Map/src/Bridge/Leaflet/composer.json index 351d259b92b..cb9ca02e52e 100644 --- a/src/Map/src/Bridge/Leaflet/composer.json +++ b/src/Map/src/Bridge/Leaflet/composer.json @@ -2,11 +2,7 @@ "name": "symfony/ux-leaflet-map", "type": "symfony-ux-map-bridge", "description": "Symfony UX Map Leaflet Bridge", - "keywords": [ - "symfony-ux", - "leaflet", - "map" - ], + "keywords": ["symfony-ux", "leaflet", "map"], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -21,39 +17,21 @@ ], "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev", - "symfony/ux-map": "@dev" + "symfony/stimulus-bundle": "^2.18.1", + "symfony/ux-map": "^2.19" }, "require-dev": { "symfony/phpunit-bridge": "^7.2|^8.0", - "symfony/ux-icons": "@dev", + "symfony/ux-icons": "^2.18", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22" }, "autoload": { - "psr-4": { - "Symfony\\UX\\Map\\Bridge\\Leaflet\\": "src/" - }, + "psr-4": { "Symfony\\UX\\Map\\Bridge\\Leaflet\\": "src/" }, "exclude-from-classmap": [] }, "autoload-dev": { - "psr-4": { - "Symfony\\UX\\Map\\Bridge\\Leaflet\\Tests\\": "tests/" - } + "psr-4": { "Symfony\\UX\\Map\\Bridge\\Leaflet\\Tests\\": "tests/" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/Icons" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/Map" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/Notify/composer.json b/src/Notify/composer.json index 9a37f0b8ae2..8469d8c9f33 100644 --- a/src/Notify/composer.json +++ b/src/Notify/composer.json @@ -34,7 +34,7 @@ "symfony/http-kernel": "^5.4|^6.0|^7.0|^8.0", "symfony/mercure-bundle": "^0.3.4|^0.4.1", "symfony/mercure-notifier": "^5.4|^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "@dev", + "symfony/stimulus-bundle": "^2.9.1", "symfony/twig-bundle": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { @@ -51,11 +51,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/React/composer.json b/src/React/composer.json index 23d137d55d4..46081a52359 100644 --- a/src/React/composer.json +++ b/src/React/composer.json @@ -29,7 +29,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev" + "symfony/stimulus-bundle": "^2.9.1" }, "require-dev": { "symfony/asset-mapper": "^6.3|^7.0|^8.0", @@ -45,11 +45,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/Svelte/composer.json b/src/Svelte/composer.json index 323fa90980c..6ce86e8dff8 100644 --- a/src/Svelte/composer.json +++ b/src/Svelte/composer.json @@ -33,7 +33,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev" + "symfony/stimulus-bundle": "^2.9.1" }, "require-dev": { "symfony/asset-mapper": "^6.3|^7.0|^8.0", @@ -49,11 +49,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/Toolkit/composer.json b/src/Toolkit/composer.json index 4fd937ca84f..987072fff74 100644 --- a/src/Toolkit/composer.json +++ b/src/Toolkit/composer.json @@ -36,7 +36,7 @@ "symfony/filesystem": "^6.4|^7.0|^8.0", "symfony/framework-bundle": "^6.4|^7.0|^8.0", "symfony/twig-bundle": "^6.4|^7.0|^8.0", - "symfony/ux-twig-component": "@dev", + "symfony/ux-twig-component": "^2.25.1", "symfony/yaml": "^6.4|^7.0|^8.0" }, "require-dev": { @@ -49,7 +49,7 @@ "symfony/phpunit-bridge": "^7.2|^8.0", "spatie/phpunit-snapshot-assertions": "^4.2.17|^5.2.3", "phpunit/phpunit": "^9.6.22", - "symfony/ux-icons": "@dev", + "symfony/ux-icons": "^2.18", "tales-from-a-dev/twig-tailwind-extra": "^1.0.0" }, "bin": [ @@ -73,15 +73,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/Icons" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - } - ] + "minimum-stability": "dev" } diff --git a/src/Turbo/composer.json b/src/Turbo/composer.json index adb93775122..09e3deea908 100644 --- a/src/Turbo/composer.json +++ b/src/Turbo/composer.json @@ -35,7 +35,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev" + "symfony/stimulus-bundle": "^2.9.1" }, "require-dev": { "doctrine/doctrine-bundle": "^2.4.3|^3.0|^4.0", @@ -53,7 +53,7 @@ "symfony/property-access": "^5.4|^6.0|^7.0|^8.0", "symfony/security-core": "^5.4|^6.0|^7.0|^8.0", "symfony/stopwatch": "^5.4|^6.0|^7.0|^8.0", - "symfony/ux-twig-component": "@dev", + "symfony/ux-twig-component": "^2.21", "symfony/twig-bundle": "^6.4|^7.0|^8.0", "symfony/web-profiler-bundle": "^5.4|^6.0|^7.0|^8.0", "symfony/expression-language": "^5.4|^6.0|^7.0|^8.0", @@ -74,15 +74,5 @@ "allow-plugins": { "composer/package-versions-deprecated": true } - }, - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - }, - { - "type": "path", - "url": "/var/www/symfony-ux/src/TwigComponent" - } - ] + } } diff --git a/src/TwigComponent/composer.json b/src/TwigComponent/composer.json index 8843d442d85..cb1e08c65e0 100644 --- a/src/TwigComponent/composer.json +++ b/src/TwigComponent/composer.json @@ -39,7 +39,7 @@ "symfony/dom-crawler": "^5.4|^6.0|^7.0|^8.0", "symfony/framework-bundle": "^5.4|^6.0|^7.0|^8.0", "symfony/phpunit-bridge": "^6.0|^7.0|^8.0", - "symfony/stimulus-bundle": "@dev", + "symfony/stimulus-bundle": "^2.9.1", "symfony/twig-bundle": "^5.4|^6.0|^7.0|^8.0", "symfony/webpack-encore-bundle": "^1.15|^2.3.0" }, @@ -55,11 +55,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } diff --git a/src/Vue/composer.json b/src/Vue/composer.json index 294efb671c5..bf3f80c37df 100644 --- a/src/Vue/composer.json +++ b/src/Vue/composer.json @@ -33,7 +33,7 @@ }, "require": { "php": ">=8.1", - "symfony/stimulus-bundle": "@dev" + "symfony/stimulus-bundle": "^2.9.1" }, "require-dev": { "symfony/asset-mapper": "^6.3|^7.0|^8.0", @@ -49,11 +49,5 @@ "url": "https://github.com/symfony/ux" } }, - "minimum-stability": "dev", - "repositories": [ - { - "type": "path", - "url": "/var/www/symfony-ux/src/StimulusBundle" - } - ] + "minimum-stability": "dev" } From 00d04c77d4c408e0baf963ab0dd1774a8089c86b Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Tue, 20 Jan 2026 10:36:43 +0100 Subject: [PATCH 4/8] Update src/TwigComponent/CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Simon André --- src/TwigComponent/CHANGELOG.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/TwigComponent/CHANGELOG.md b/src/TwigComponent/CHANGELOG.md index 4f7446f277c..0257e9e00f6 100644 --- a/src/TwigComponent/CHANGELOG.md +++ b/src/TwigComponent/CHANGELOG.md @@ -5,10 +5,7 @@ - Add option `profiler.collect_components` to control component data collection in the profiler (enabled in debug mode by default) - Add support for using directory name as component name for anonymous components -- Change announced behavior for `null` attribute values: Instead of throwing, 3.0 - will omit attributes with `null` values. To keep the current result, `true` - should be passed instead of `null`. - +- Deprecate using `null` to add an attribute. Starting in `3.0`, passing `true` explicitly sets the attribute, while passing `false` or `null` omits it. ## 2.30 - Ensure compatibility with PHP 8.5 From ef4e4cf42d7632debf773d5d4515c1c0a153320f Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Tue, 20 Jan 2026 10:39:47 +0100 Subject: [PATCH 5/8] Change the deprecation message --- src/TwigComponent/src/ComponentAttributes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TwigComponent/src/ComponentAttributes.php b/src/TwigComponent/src/ComponentAttributes.php index 0d6df1a27cd..49e56d01136 100644 --- a/src/TwigComponent/src/ComponentAttributes.php +++ b/src/TwigComponent/src/ComponentAttributes.php @@ -61,7 +61,7 @@ public function __toString(): string } if (null === $value) { - trigger_deprecation('symfony/ux-twig-component', '2.32.0', 'Passing null as value for the %s attribute will omit the attribute in 3.0. To keep the current result, pass true instead.', $key); + trigger_deprecation('symfony/ux-twig-component', '2.32.0', 'Passing null as value to set an attribute is deprecated, pass true instead. In 3.0, the null value will remove the attribute.', $key); $value = true; } From 3f59277f1f77618fd4b367e2f63e09ee89cec86a Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Wed, 21 Jan 2026 08:39:54 +0100 Subject: [PATCH 6/8] Update src/TwigComponent/src/ComponentAttributes.php Co-authored-by: Hugo Alliaume --- src/TwigComponent/src/ComponentAttributes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TwigComponent/src/ComponentAttributes.php b/src/TwigComponent/src/ComponentAttributes.php index 49e56d01136..9c1eabdc9bf 100644 --- a/src/TwigComponent/src/ComponentAttributes.php +++ b/src/TwigComponent/src/ComponentAttributes.php @@ -61,7 +61,7 @@ public function __toString(): string } if (null === $value) { - trigger_deprecation('symfony/ux-twig-component', '2.32.0', 'Passing null as value to set an attribute is deprecated, pass true instead. In 3.0, the null value will remove the attribute.', $key); + trigger_deprecation('symfony/ux-twig-component', '2.32.0', 'Passing null as value to set an attribute is deprecated, pass true instead. In 3.0, the null value will remove the attribute.'); $value = true; } From f74df6ddc7adf6d20cd170e1db8dfa873a9f230f Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Wed, 21 Jan 2026 09:11:36 +0100 Subject: [PATCH 7/8] Move CHANGELOG entry to the right version --- src/TwigComponent/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/TwigComponent/CHANGELOG.md b/src/TwigComponent/CHANGELOG.md index 0257e9e00f6..8bdbacda1d8 100644 --- a/src/TwigComponent/CHANGELOG.md +++ b/src/TwigComponent/CHANGELOG.md @@ -1,11 +1,15 @@ # CHANGELOG +## 2.33 + +- Deprecate using `null` to add an attribute. Starting in `3.0`, passing `true` explicitly sets the attribute, while passing `false` or `null` omits it. + ## 2.32 - Add option `profiler.collect_components` to control component data collection in the profiler (enabled in debug mode by default) - Add support for using directory name as component name for anonymous components -- Deprecate using `null` to add an attribute. Starting in `3.0`, passing `true` explicitly sets the attribute, while passing `false` or `null` omits it. + ## 2.30 - Ensure compatibility with PHP 8.5 From c24502f0ad6d7e190800a488c33a1ccf79390ad3 Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Wed, 21 Jan 2026 09:25:55 +0100 Subject: [PATCH 8/8] Fix another version number --- src/TwigComponent/src/ComponentAttributes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TwigComponent/src/ComponentAttributes.php b/src/TwigComponent/src/ComponentAttributes.php index 9c1eabdc9bf..aa2d97fae74 100644 --- a/src/TwigComponent/src/ComponentAttributes.php +++ b/src/TwigComponent/src/ComponentAttributes.php @@ -61,7 +61,7 @@ public function __toString(): string } if (null === $value) { - trigger_deprecation('symfony/ux-twig-component', '2.32.0', 'Passing null as value to set an attribute is deprecated, pass true instead. In 3.0, the null value will remove the attribute.'); + trigger_deprecation('symfony/ux-twig-component', '2.33.0', 'Passing null as value to set an attribute is deprecated, pass true instead. In 3.0, the null value will remove the attribute.'); $value = true; }