From b385ee995b75486abd3e050c76415ba0dc0542d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BCrk?= Date: Thu, 12 Feb 2026 17:49:45 +0100 Subject: [PATCH] [!!!][TASK] Configure main branch for `2.x.x` development This change prepares the main branch for the `2.0.x` development, which includes: * Set `dev-main` branch alias to `2.0.x-dev`. * Update `COMPOSER_ROOT_VERSION` in `runTests.sh` to `2.0.x-dev`. * Align version matrix information in `README.md`. * Remove TYPO3 v12 support as composer dependency, `runTests.sh` and CI pipelines. * Remove PHP8.1 support from composer, `runTests.sh` and CI pipelines to align with lowest supported TYPO3 version. * Add PHP8.5 support from composer, `runTests.sh` and CI pipelines to align with lowest supported TYPO3 version. * Make `core tests 12` a dummy not executing anything but keep the file to allow possible badges for older branches to still work. > [!NOTE] > Removing and cleaning up TYPO3 v12 related code > will be done in follow up changes to document > them more properly. Used command(s): ```bash Build/Scripts/runTests.sh -s composer -- config \ "extra"."branch-alias"."dev-main" 2.0.x-dev \ && Build/Scripts/runTests.sh -s composer -- require \ --no-update \ 'php':'^8.2 || ^8.3 || ^8.4 || ^8.5' \ 'typo3/cms-backend':'^13.4' \ 'typo3/cms-core':'^13.4' \ 'typo3/cms-fluid':'^13.4' \ && Build/Scripts/runTests.sh -s composer -- require \ --dev --no-update \ 'typo3/cms-belog':'^13.4' \ 'typo3/cms-dashboard':'^13.4' \ 'typo3/cms-extbase':'^13.4' \ 'typo3/cms-extensionmanager':'^13.4' \ 'typo3/cms-filelist':'^13.4' \ 'typo3/cms-fluid-styled-content':'^13.4' \ 'typo3/cms-frontend':'^13.4' \ 'typo3/cms-info':'^13.4' \ 'typo3/cms-install':'^13.4' \ 'typo3/cms-lowlevel':'^13.4' \ 'typo3/cms-rte-ckeditor':'^13.4' \ 'typo3/cms-styleguide':'^13.4' \ 'typo3/cms-tstemplate':'^13.4' \ 'typo3/cms-workspaces':'^13.4' ``` --- .github/workflows/testcore12.yml | 92 +--------------------- .github/workflows/testcore13.yml | 16 ++-- Build/Scripts/runTests.sh | 65 ++++----------- Build/phpstan/Core12/phpstan-baseline.neon | 2 - Build/phpstan/Core12/phpstan.neon | 18 ----- README.md | 8 +- composer.json | 38 ++++----- 7 files changed, 51 insertions(+), 188 deletions(-) delete mode 100644 Build/phpstan/Core12/phpstan-baseline.neon delete mode 100644 Build/phpstan/Core12/phpstan.neon diff --git a/.github/workflows/testcore12.yml b/.github/workflows/testcore12.yml index f976270..f0b227e 100644 --- a/.github/workflows/testcore12.yml +++ b/.github/workflows/testcore12.yml @@ -1,96 +1,12 @@ name: tests core 12 on: - pull_request: + workflow_dispatch: jobs: - code-quality: - name: "code quality with core v12" - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - php-version: [ '8.1' ] + dummy: + name: "dummy v11 (disabled on main) to allow creation of badges for other branches" + runs-on: ubuntu-latest steps: - name: "Checkout" uses: actions/checkout@v4 - - - name: "Prepare dependencies for TYPO3 v12" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s composerUpdate - - - name: "Validate CGL" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s cgl -n - - - name: "Ensure tests methods do not start with \"test\"" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s checkTestMethodsPrefix - - - name: "Ensure UTF-8 files do not contain BOM" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s checkBom - -# - name: "Test .rst files for integrity" -# run: | -# Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s checkRst - - - name: "Find duplicate exception codes" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s checkExceptionCodes - - - name: "Run PHPStan" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s phpstan - - testsuite: - name: all tests with core v12 - runs-on: ubuntu-22.04 - needs: code-quality - strategy: - fail-fast: false - matrix: - php-version: [ '8.1', '8.2', '8.3', '8.4' ] - steps: - - name: "Checkout" - uses: actions/checkout@v4 - - - name: "Prepare dependencies for TYPO3 v12" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s composerUpdate - - - name: "Run PHP lint" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s lintPhp - - - name: "Unit" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s unit - - - name: "Unit Random" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s unitRandom - - - name: "Functional SQLite" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s functional -d sqlite - - - name: "Functional MariaDB 10.5 mysqli" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli - - - name: "Functional MariaDB 10.5 pdo_mysql" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql - - - name: "Functional MySQL 8.0 mysqli" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli - - - name: "Functional MySQL 8.0 pdo_mysql" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql - - - name: "Functional PostgresSQL 10" - run: | - Build/Scripts/runTests.sh -t 12 -p ${{ matrix.php-version }} -s functional -d postgres diff --git a/.github/workflows/testcore13.yml b/.github/workflows/testcore13.yml index 0a257b9..d73baec 100644 --- a/.github/workflows/testcore13.yml +++ b/.github/workflows/testcore13.yml @@ -50,7 +50,7 @@ jobs: strategy: fail-fast: false matrix: - php-version: [ '8.2', '8.3', '8.4' ] + php-version: [ '8.2', '8.3', '8.4', '8.5' ] steps: - name: "Checkout" uses: actions/checkout@v4 @@ -77,20 +77,20 @@ jobs: - name: "Functional MariaDB 10.5 mysqli" run: | - Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli + Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli -i 10.5 - - name: "Functional MariaDB 10.5 pdo_mysql" + - name: "Functional MariaDB 10.11 pdo_mysql" run: | - Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql + Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql -i 10.11 - name: "Functional MySQL 8.0 mysqli" run: | - Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli + Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mysql -a mysqli -i 8.0 - - name: "Functional MySQL 8.0 pdo_mysql" + - name: "Functional MySQL 8.4 pdo_mysql" run: | - Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql + Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d mysql -a pdo_mysql -i 8.4 - name: "Functional PostgresSQL 10" run: | - Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d postgres + Build/Scripts/runTests.sh -t 13 -p ${{ matrix.php-version }} -s functional -d postgres -i 10 diff --git a/Build/Scripts/runTests.sh b/Build/Scripts/runTests.sh index 4039e5b..1b2d06f 100755 --- a/Build/Scripts/runTests.sh +++ b/Build/Scripts/runTests.sh @@ -52,26 +52,11 @@ copyJavaScriptSourcesToBuild() { } buildCoreJavaScriptFiles() { - if [[ "${CORE_VERSION}" -eq 13 ]]; then - "Build/buildsystem/core${CORE_VERSION}/Build/Scripts/runTests.sh" -b ${CONTAINER_BIN} -s buildJavascript - else - "Build/buildsystem/core${CORE_VERSION}/Build/Scripts/runTests.sh" -s buildJavascript - fi + "Build/buildsystem/core${CORE_VERSION}/Build/Scripts/runTests.sh" -b ${CONTAINER_BIN} -s buildJavascript } buildApplyCompiledFilesToResources() { echo ">> Copy compiled override JavaScripts back to resources folder ..." - if [[ "${CORE_VERSION}" -eq 12 ]]; then - # ensure folder exists -# mkdir -p "Resources/Public/JavaScript/Core${CORE_VERSION}/localization" - # copy files - cp -vf \ - "./Build/buildsystem/core${CORE_VERSION}/typo3/sysext/backend/Resources/Public/JavaScript/localization.js" \ - "Resources/Public/JavaScript/Core${CORE_VERSION}/localization.js" -# cp -vf \ -# "./Build/buildsystem/core${CORE_VERSION}/typo3/sysext/backend/Resources/Public/JavaScript/localization/provider-list.js" \ -# "Resources/Public/JavaScript/Core${CORE_VERSION}/localization/provider-list.js" - fi if [[ "${CORE_VERSION}" -eq 13 ]]; then # ensure folder exists mkdir -p "Resources/Public/JavaScript/Core${CORE_VERSION}/localization" @@ -274,18 +259,17 @@ Options: - 15 maintained until 2027-11-11 - 16 maintained until 2028-11-09 - -t <12|13> + -t <13> Only with -s composerInstall|composerInstallMin|composerInstallMax Specifies the TYPO3 CORE Version to be used - - 12: use TYPO3 v12 (default) - - 13: use TYPO3 v13 + - 13: use TYPO3 v13 (default) - -p <8.1|8.2|8.3|8.4> + -p <8.2|8.3|8.4|8.5> Specifies the PHP minor version to be used - - 8.1: use PHP 8.1 (default) - - 8.2: use PHP 8.2 + - 8.2: use PHP 8.2 (default) - 8.3: use PHP 8.3 - 8.4: use PHP 8.4 + - 8.5: use PHP 8.5 -x Only with -s functional|unit|unitRandom @@ -316,31 +300,18 @@ Options: Show this help. Examples: - # Run all core unit tests using PHP 8.1 + # Run all core unit tests using PHP 8.2 ./Build/Scripts/runTests.sh ./Build/Scripts/runTests.sh -s unit # Run all core units tests and enable xdebug (have a PhpStorm listening on port 9003!) - ./Build/Scripts/runTests.sh -x - - # Run unit tests in phpunit verbose mode with xdebug on PHP 8.1 and filter for test canRetrieveValueWithGP - ./Build/Scripts/runTests.sh -x -p 8.1 -e "-v --filter canRetrieveValueWithGP" - - # Run functional tests in phpunit with a filtered test method name in a specified file - # example will currently execute two tests, both of which start with the search term - ./Build/Scripts/runTests.sh -s functional -e "--filter deleteContent" typo3/sysext/core/Tests/Functional/DataHandling/Regular/Modify/ActionTest.php + ./Build/Scripts/runTests.sh -s unit -x # Run functional tests on postgres with xdebug, php 8.1 and execute a restricted set of tests - ./Build/Scripts/runTests.sh -x -p 8.1 -s functional -d postgres typo3/sysext/core/Tests/Functional/Authentication + ./Build/Scripts/runTests.sh -x -p 8.1 -s functional -d postgres Tests/Functional/LocalizationControllerTest.php # Run functional tests on postgres 11 ./Build/Scripts/runTests.sh -s functional -d postgres -k 11 - - # Run restricted set of application acceptance tests - ./Build/Scripts/runTests.sh -s acceptance typo3/sysext/core/Tests/Acceptance/Application/Login/BackendLoginCest.php:loginButtonMouseOver - - # Run installer tests of a new instance on sqlite - ./Build/Scripts/runTests.sh -s acceptanceInstall -d sqlite EOF } @@ -352,10 +323,10 @@ fi # Option defaults TEST_SUITE="unit" -CORE_VERSION="12" -CORE_JAVASCRIPT_CHECKOUT="12.4.0" +CORE_VERSION="13" +CORE_JAVASCRIPT_CHECKOUT="13.4.0" DBMS="sqlite" -PHP_VERSION="8.1" +PHP_VERSION="8.2" PHP_XDEBUG_ON=0 PHP_XDEBUG_PORT=9003 PHPUNIT_RANDOM="" @@ -393,20 +364,16 @@ while getopts "a:b:s:d:i:p:t:xy:o:nhu" OPT; do ;; p) PHP_VERSION=${OPTARG} - if ! [[ ${PHP_VERSION} =~ ^(8.1|8.2|8.3|8.4)$ ]]; then + if ! [[ ${PHP_VERSION} =~ ^(8.2|8.3|8.4|8.5)$ ]]; then INVALID_OPTIONS+=("p ${OPTARG}") fi ;; t) CORE_VERSION=${OPTARG} - if ! [[ ${CORE_VERSION} =~ ^(12|13)$ ]]; then + if ! [[ ${CORE_VERSION} =~ ^(13)$ ]]; then INVALID_OPTIONS+=("t ${OPTARG}") fi - if [[ "${CORE_VERSION}" == "12" ]]; then - CORE_JAVASCRIPT_CHECKOUT="v12.4.0" - else - CORE_JAVASCRIPT_CHECKOUT="v13.4.0" - fi + CORE_JAVASCRIPT_CHECKOUT="v13.4.0" ;; x) PHP_XDEBUG_ON=1 @@ -450,7 +417,7 @@ fi handleDbmsOptions -COMPOSER_ROOT_VERSION="1.0.x-dev" +COMPOSER_ROOT_VERSION="2.0.x-dev" CONTAINER_INTERACTIVE="-it --init" HOST_UID=$(id -u) USERSET="" diff --git a/Build/phpstan/Core12/phpstan-baseline.neon b/Build/phpstan/Core12/phpstan-baseline.neon deleted file mode 100644 index 364905f..0000000 --- a/Build/phpstan/Core12/phpstan-baseline.neon +++ /dev/null @@ -1,2 +0,0 @@ -parameters: - ignoreErrors: diff --git a/Build/phpstan/Core12/phpstan.neon b/Build/phpstan/Core12/phpstan.neon deleted file mode 100644 index 8747d3f..0000000 --- a/Build/phpstan/Core12/phpstan.neon +++ /dev/null @@ -1,18 +0,0 @@ -includes: - - ../../../.Build/vendor/saschaegerer/phpstan-typo3/extension.neon - - phpstan-baseline.neon - -parameters: - phpVersion: 80100 - - # Use local .cache dir instead of /tmp - tmpDir: ../../../.cache/phpstan - - level: 8 - - paths: - - ../../../Classes - - ../../../Tests/ - - excludePaths: - - ../../../.Build/* diff --git a/README.md b/README.md index 748c98e..dac5ee9 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ shared base extension as common ground. ## Compatibility -| Branch | Version | TYPO3 | PHP | -|--------|-----------|-----------|-----------------------------------------| -| main | 1.0.x-dev | v12 + v13 | 8.1, 8.2, 8.3, 8.4 (depending on TYPO3) | -| 1 | ^1 | v12 + v13 | 8.1, 8.2, 8.3, 8.4 (depending on TYPO3) | +| Branch | Version | TYPO3 | PHP | +|--------|---------------|-----------|-----------------------------------------| +| main | 2.0.x-dev | v13 | 8.2, 8.3, 8.4, 8.5 (depending on TYPO3) | +| 1 | ^1, 1.0.x-dev | v12 + v13 | 8.1, 8.2, 8.3, 8.4 (depending on TYPO3) | ## Installation diff --git a/composer.json b/composer.json index d48fa59..f02d826 100644 --- a/composer.json +++ b/composer.json @@ -59,17 +59,17 @@ "app-dir": ".Build" }, "branch-alias": { - "dev-main": "1.x.x-dev" + "dev-main": "2.0.x-dev" } }, "require": { - "php": "^8.1 || ^8.2 || ^8.3 || ^8.4", + "php": "^8.2 || ^8.3 || ^8.4 || ^8.5", "ext-curl": "*", "ext-json": "*", "ext-pdo": "*", - "typo3/cms-backend": "^12.4.2 || ^13.4", - "typo3/cms-core": "^12.4.2 || ^13.4", - "typo3/cms-fluid": "^12.4.2 || ^13.4" + "typo3/cms-backend": "^13.4", + "typo3/cms-core": "^13.4", + "typo3/cms-fluid": "^13.4" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.41", @@ -83,20 +83,20 @@ "saschaegerer/phpstan-typo3": "^1.9", "sbuerk/typo3-site-based-test-trait": "^1.0.2 || ^2.0.1", "sbuerk/typo3-styleguide-selector": "^12.0.5 || ^13.4", - "typo3/cms-belog": "^12.4.2 || ^13.4", - "typo3/cms-dashboard": "^12.4.2 || ^13.4", - "typo3/cms-extbase": "^12.4.2 || ^13.4", - "typo3/cms-extensionmanager": "^12.4.2 || ^13.4", - "typo3/cms-filelist": "^12.4.2 || ^13.4", - "typo3/cms-fluid-styled-content": "^12.4.2 || ^13.4", - "typo3/cms-frontend": "^12.4.2 || ^13.4", - "typo3/cms-info": "^12.4.2 || ^13.4", - "typo3/cms-install": "^12.4.2 || ^13.4", - "typo3/cms-lowlevel": "^12.4.2 || ^13.4", - "typo3/cms-rte-ckeditor": "^12.4.2 || ^13.4", - "typo3/cms-styleguide": "^12.0.5 || ^13.4", - "typo3/cms-tstemplate": "^12.4.2 || ^13.4", - "typo3/cms-workspaces": "^12.4.2 || ^13.4", + "typo3/cms-belog": "^13.4", + "typo3/cms-dashboard": "^13.4", + "typo3/cms-extbase": "^13.4", + "typo3/cms-extensionmanager": "^13.4", + "typo3/cms-filelist": "^13.4", + "typo3/cms-fluid-styled-content": "^13.4", + "typo3/cms-frontend": "^13.4", + "typo3/cms-info": "^13.4", + "typo3/cms-install": "^13.4", + "typo3/cms-lowlevel": "^13.4", + "typo3/cms-rte-ckeditor": "^13.4", + "typo3/cms-styleguide": "^13.4", + "typo3/cms-tstemplate": "^13.4", + "typo3/cms-workspaces": "^13.4", "typo3/testing-framework": "^8.2.7" }, "autoload": {