diff --git a/.ddev/commands/web/next b/.ddev/commands/web/next index fbcb568d..f7cdd1a3 100755 --- a/.ddev/commands/web/next +++ b/.ddev/commands/web/next @@ -90,9 +90,10 @@ fi # Update files with the new version sed -i "s/'version' => '[0-9]\+\.[0-9]\+\.[0-9]\+'/'version' => '$NEXT_TAG'/g" ./ext_emconf.php +sed -i -E "s/(\"version\": \")[0-9]+\.[0-9]+\.[0-9]+(\")/\1$NEXT_TAG\2/" ./composer.json sed -i "s/release=\"[0-9]\+\.[0-9]\+\.[0-9]\+\"/release=\"$NEXT_TAG\"/g" ./Documentation/guides.xml sed -i'' -E "s/(]* version=\")[^\"]+(\")/\1$NEXT_TAG\2/" ./Documentation/guides.xml # Prepare command to tag the new version echo "Copy the command below and run it to tag the new version:" -echo "zsh -e -c \"git add Documentation/guides.xml ext_emconf.php; git commit -m 'Tag version $NEXT_TAG'; git tag -a '$NEXT_TAG' -m 'Version $NEXT_TAG' -s; git push origin $DEFAULT_BRANCH '$NEXT_TAG'\"" +echo "zsh -e -c \"git add Documentation/guides.xml ext_emconf.php composer.json; git commit -m 'Tag version $NEXT_TAG'; git tag -a '$NEXT_TAG' -m 'Version $NEXT_TAG' -s; git push origin $DEFAULT_BRANCH '$NEXT_TAG'\"" diff --git a/.ddev/test/files/src/site/composer.json b/.ddev/test/files/src/site/composer.json index fbadf80d..dd069025 100644 --- a/.ddev/test/files/src/site/composer.json +++ b/.ddev/test/files/src/site/composer.json @@ -13,6 +13,9 @@ "conflict": {}, "extra": { "typo3/cms": { + "Package": { + "providesPackages": {} + }, "extension-key": "site" } }, diff --git a/.ddev/test/files/src/t3apinews/composer.json b/.ddev/test/files/src/t3apinews/composer.json index a937c528..80093a99 100644 --- a/.ddev/test/files/src/t3apinews/composer.json +++ b/.ddev/test/files/src/t3apinews/composer.json @@ -30,9 +30,13 @@ }, "extra": { "typo3/cms": { + "Package": { + "providesPackages": {} + }, "extension-key": "t3apinews", "app-dir": ".Build", - "web-dir": ".Build/public" + "web-dir": ".Build/public", + "version": "1.0.0" } }, "version": "1.0.0" diff --git a/Build/postman/run.sh b/Build/postman/run.sh index f6f9c6b8..d4420a62 100644 --- a/Build/postman/run.sh +++ b/Build/postman/run.sh @@ -33,7 +33,8 @@ while [[ $# -gt 0 ]]; do done if [ -z "$TYPO3" ]; then - TYPO3=$("../../.Build/bin/typo3" | grep -oP 'TYPO3 CMS \K[0-9]+') + # Read version without bootstrapping TYPO3 - running .Build/bin/typo3 creates var/ in the project root + TYPO3=$(php -d error_reporting=0 -d display_errors=0 -r 'require "../../.Build/vendor/autoload.php"; echo (new \TYPO3\CMS\Core\Information\Typo3Version())->getMajorVersion();') fi if ! check_typo3_version "$TYPO3"; then diff --git a/Documentation/Miscellaneous/Changelog/Index.rst b/Documentation/Miscellaneous/Changelog/Index.rst index 7d530091..037fff3b 100644 --- a/Documentation/Miscellaneous/Changelog/Index.rst +++ b/Documentation/Miscellaneous/Changelog/Index.rst @@ -7,7 +7,12 @@ Changelog 5.0.0 ===== - [!!!] Embed ``goldspecdigital/oooas`` library (PHP 8.5 compatibility). The package is no longer a dependency, namespace ``GoldSpecDigital\ObjectOrientedOAS`` is renamed to ``SourceBroker\T3api\OpenApi``. Update imports in custom filters implementing ``OpenApiSupportingFilterInterface`` and custom :ref:`collection response classes `. [`commit `__] -- [!!!] ``@T3api\Serializer\Type\PasswordHash`` returns ``null`` on serialization instead of the stored password hash. Use ``@T3api\Serializer\Type\PasswordHash(serialize=true)`` to return the hash as before, see :ref:`serialization_handlers_password-hash`. +- [!!!] ``@T3api\Serializer\Type\PasswordHash`` returns ``null`` on serialization instead of the stored password hash. Use ``@T3api\Serializer\Type\PasswordHash(serialize=true)`` to return the hash as before, see :ref:`serialization_handlers_password-hash`. [`commit `__] +- [!!!] Refactor expression evaluation in access checkers. Protected method ``AbstractAccessChecker::getExpressionLanguageResolver()`` is removed, use ``evaluateExpression()`` instead. [`commit `__] +- Skip cHash validation for API query arguments (filters, pagination, ordering) when ``cacheHash.enforceValidation`` is enabled. [`commit `__] +- Validate pagination parameters like API Platform: invalid ``page`` / ``itemsPerPage`` returns ``400 Bad Request``, ``itemsPerPage=0`` returns only ``hydra:totalItems``, empty collection has one page in ``hydra:view``. See :ref:`pagination`. [`commit `__] +- Add ``@id`` to related objects when their API resource class is set as ``type`` in YAML metadata. See :ref:`integration`. [`commit `__] +- Add ``version`` and ``providesPackages`` to ``composer.json`` (TYPO3 14.3 classic mode metadata). - Add TYPO3 14 support. [`commit `__] - Add PHP 8.5 support. [`commit `__] - Add tag-based :ref:`response cache ` for GET endpoints. [`commit `__] diff --git a/Tests/Functional/Fixtures/Extensions/t3api_functional_test/composer.json b/Tests/Functional/Fixtures/Extensions/t3api_functional_test/composer.json index 0f93c8c7..b300e65e 100644 --- a/Tests/Functional/Fixtures/Extensions/t3api_functional_test/composer.json +++ b/Tests/Functional/Fixtures/Extensions/t3api_functional_test/composer.json @@ -12,7 +12,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "t3api_functional_test" + "Package": { + "providesPackages": {} + }, + "extension-key": "t3api_functional_test", + "version": "1.0.0" } } } diff --git a/composer.json b/composer.json index db676ece..9a2208db 100644 --- a/composer.json +++ b/composer.json @@ -69,7 +69,11 @@ }, "extra": { "typo3/cms": { + "Package": { + "providesPackages": {} + }, "extension-key": "t3api", + "version": "5.0.0", "web-dir": ".Build/public" } }, @@ -109,10 +113,10 @@ "@fix:composer:normalize" ], "fix:composer:normalize": "@composer normalize", + "fix:php:cs-fixer": "PHP_CS_FIXER_IGNORE_ENV=1 .Build/bin/php-cs-fixer fix --config .php-cs-fixer.php", "fix:php:rector": [ "@composer install --working-dir=Build/rector --no-progress --no-interaction --quiet", "Build/rector/vendor/bin/rector process --config Build/rector/rector.php --no-progress-bar" - ], - "fix:php:cs-fixer": "PHP_CS_FIXER_IGNORE_ENV=1 .Build/bin/php-cs-fixer fix --config .php-cs-fixer.php" + ] } }