mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2025-03-16 13:03:53 +01:00

Compare commits

...

5 commits

Author SHA1 Message Date
7c9d145279 [TASK] Drop PHP_CodeSniffer ()
As we already have php-cs-fixer to maintain the CGL.
Therefore we get rid of a second tool for the same job.
They have different rules in the existing setup for newer PHP syntax.

Resolves: 
2025-02-03 13:49:43 +01:00
Oliver Klee
c6cb8cc295 [TASK] Make the naming schema of CI jobs consistent ()
Now the GitLab CI jobs have the TYPO3 version first and the
PHP version second, just like the GitHub Actions. This hopefully
helps avoid confustion like we had in the past, and helps
 reduce cognitive load when working with the CI jobs.

Fixes 
2025-02-03 13:49:43 +01:00
Oliver Klee
36d9600fae [TASK] Drop obsolete GitLab CI jobs ()
Also link two existing jobs.

Followup to  and 
2025-02-03 13:49:43 +01:00
b900a408cf [!!!][TASK] Remove TYPO3 v11 Support ()
As official v11 support has stopped.

Resolves: 
2025-02-03 13:49:43 +01:00
70a76f7a76 [!!!][TASK] Drop support for PHP < 8.1 ()
As this is not supported by current TYPO3 LTS versions.

Resolves: 
2025-02-03 13:49:43 +01:00
47 changed files with 50 additions and 554 deletions

View file

@ -41,8 +41,6 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
php-version: php-version:
- "7.4"
- "8.0"
- "8.1" - "8.1"
- "8.2" - "8.2"
- "8.3" - "8.3"
@ -84,7 +82,6 @@ jobs:
- "php:cs-fixer" - "php:cs-fixer"
- "php:mess" - "php:mess"
- "php:rector" - "php:rector"
- "php:sniff"
- "php:stan" - "php:stan"
- "typoscript:lint" - "typoscript:lint"
- "yaml:lint" - "yaml:lint"
@ -159,36 +156,6 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- typo3-version: "^11.5"
php-version: "7.4"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "7.4"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.0"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.0"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.1"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.1"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.2"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.2"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.3"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.3"
composer-dependencies: highest
- typo3-version: "^12.4" - typo3-version: "^12.4"
php-version: "8.1" php-version: "8.1"
composer-dependencies: lowest composer-dependencies: lowest
@ -266,36 +233,6 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- typo3-version: "^11.5"
php-version: "7.4"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "7.4"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.0"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.0"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.1"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.1"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.2"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.2"
composer-dependencies: highest
- typo3-version: "^11.5"
php-version: "8.3"
composer-dependencies: lowest
- typo3-version: "^11.5"
php-version: "8.3"
composer-dependencies: highest
- typo3-version: "^12.4" - typo3-version: "^12.4"
php-version: "8.1" php-version: "8.1"
composer-dependencies: lowest composer-dependencies: lowest

View file

@ -14,45 +14,26 @@ include:
- '/.gitlab/pipeline/jobs/build-composer-dependencies.yml' - '/.gitlab/pipeline/jobs/build-composer-dependencies.yml'
- '/.gitlab/pipeline/jobs/composer-normalize.yml' - '/.gitlab/pipeline/jobs/composer-normalize.yml'
- '/.gitlab/pipeline/jobs/composer-psr-verify.yml' - '/.gitlab/pipeline/jobs/composer-psr-verify.yml'
- '/.gitlab/pipeline/jobs/func-php7.4-v11-highest.yml' - '/.gitlab/pipeline/jobs/func-v12-php8.1-highest.yml'
- '/.gitlab/pipeline/jobs/func-php7.4-v11-lowest.yml' - '/.gitlab/pipeline/jobs/func-v12-php8.1-lowest.yml'
- '/.gitlab/pipeline/jobs/func-php8.0-v11-highest.yml' - '/.gitlab/pipeline/jobs/func-v12-php8.2-highest.yml'
- '/.gitlab/pipeline/jobs/func-php8.0-v11-lowest.yml' - '/.gitlab/pipeline/jobs/func-v12-php8.2-lowest.yml'
- '/.gitlab/pipeline/jobs/func-php8.1-v11-highest.yml' - '/.gitlab/pipeline/jobs/func-v12-php8.3-highest.yml'
- '/.gitlab/pipeline/jobs/func-php8.1-v11-lowest.yml' - '/.gitlab/pipeline/jobs/func-v12-php8.3-lowest.yml'
- '/.gitlab/pipeline/jobs/func-php8.1-v12-highest.yml'
- '/.gitlab/pipeline/jobs/func-php8.1-v12-lowest.yml'
- '/.gitlab/pipeline/jobs/func-php8.2-v11-highest.yml'
- '/.gitlab/pipeline/jobs/func-php8.2-v11-lowest.yml'
- '/.gitlab/pipeline/jobs/func-php8.2-v12-highest.yml'
- '/.gitlab/pipeline/jobs/func-php8.2-v12-lowest.yml'
- '/.gitlab/pipeline/jobs/javascript-lint.yml' - '/.gitlab/pipeline/jobs/javascript-lint.yml'
- '/.gitlab/pipeline/jobs/json-lint.yml' - '/.gitlab/pipeline/jobs/json-lint.yml'
- '/.gitlab/pipeline/jobs/php-cs-fixer.yml' - '/.gitlab/pipeline/jobs/php-cs-fixer.yml'
- '/.gitlab/pipeline/jobs/php-lint-php7.4.yml'
- '/.gitlab/pipeline/jobs/php-lint-php8.0.yml'
- '/.gitlab/pipeline/jobs/php-lint-php8.1.yml' - '/.gitlab/pipeline/jobs/php-lint-php8.1.yml'
- '/.gitlab/pipeline/jobs/php-lint-php8.2.yml' - '/.gitlab/pipeline/jobs/php-lint-php8.2.yml'
- '/.gitlab/pipeline/jobs/php-lint-php8.3.yml' - '/.gitlab/pipeline/jobs/php-lint-php8.3.yml'
- '/.gitlab/pipeline/jobs/phpcs.yml'
- '/.gitlab/pipeline/jobs/rector.yml' - '/.gitlab/pipeline/jobs/rector.yml'
- '/.gitlab/pipeline/jobs/typoscript-lint.yml' - '/.gitlab/pipeline/jobs/typoscript-lint.yml'
- '/.gitlab/pipeline/jobs/unit-php7.4-v11-highest.yml' - '/.gitlab/pipeline/jobs/unit-v12-php8.1-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php7.4-v11-lowest.yml' - '/.gitlab/pipeline/jobs/unit-v12-php8.1-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.0-v11-highest.yml' - '/.gitlab/pipeline/jobs/unit-v12-php8.2-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.0-v11-lowest.yml' - '/.gitlab/pipeline/jobs/unit-v12-php8.2-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.1-v11-highest.yml' - '/.gitlab/pipeline/jobs/unit-v12-php8.3-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.1-v11-lowest.yml' - '/.gitlab/pipeline/jobs/unit-v12-php8.3-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.1-v12-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.1-v12-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.2-v11-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.2-v11-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.2-v12-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.2-v12-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.3-v11-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.3-v11-lowest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.3-v12-highest.yml'
- '/.gitlab/pipeline/jobs/unit-php8.3-v12-lowest.yml'
- '/.gitlab/pipeline/jobs/xliff-lint.yml' - '/.gitlab/pipeline/jobs/xliff-lint.yml'
- '/.gitlab/pipeline/jobs/yaml-lint.yml' - '/.gitlab/pipeline/jobs/yaml-lint.yml'
- template: Security/Secret-Detection.gitlab-ci.yml - template: Security/Secret-Detection.gitlab-ci.yml

View file

@ -1,14 +0,0 @@
func-php7.4-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php74:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php7.4-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php74:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.0-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php80:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.0
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.0-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php80:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.0
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.1-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php81:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.1
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.1-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php81:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.1
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.2-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php82:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.2
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.2-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php82:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.2
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.3-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php83:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.3
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:functional

View file

@ -1,14 +0,0 @@
func-php8.3-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php83:latest
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.3
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:functional

View file

@ -1,4 +1,4 @@
func-php8.1-v11-highest: func-v12-php8.1-highest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php81:latest image: ghcr.io/typo3/core-testing-php81:latest
services: services:

View file

@ -1,4 +1,4 @@
func-php8.1-v11-lowest: func-v12-php8.1-lowest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php81:latest image: ghcr.io/typo3/core-testing-php81:latest
services: services:

View file

@ -1,4 +1,4 @@
func-php8.2-v12-highest: func-v12-php8.2-highest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php82:latest image: ghcr.io/typo3/core-testing-php82:latest
services: services:

View file

@ -1,4 +1,4 @@
func-php8.2-v12-lowest: func-v12-php8.2-lowest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php82:latest image: ghcr.io/typo3/core-testing-php82:latest
services: services:

View file

@ -1,4 +1,4 @@
func-php8.3-v11-highest: func-v12-php8.3-highest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php83:latest image: ghcr.io/typo3/core-testing-php83:latest
services: services:

View file

@ -1,4 +1,4 @@
func-php8.3-v12-lowest: func-v12-php8.3-lowest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php83:latest image: ghcr.io/typo3/core-testing-php83:latest
services: services:

View file

@ -1,7 +0,0 @@
php-lint-php7.4:
extends: .composer-update
image: ghcr.io/typo3/core-testing-php74:latest
stage: lint
needs: [ ]
script:
- composer ci:php:lint

View file

@ -1,7 +0,0 @@
php-lint-php8.0:
extends: .composer-update
image: ghcr.io/typo3/core-testing-php80:latest
stage: lint
needs: [ ]
script:
- composer ci:php:lint

View file

@ -1,11 +0,0 @@
phpcs:
extends: .default
stage: codestyle
needs:
- build-composer-dependencies
- php-lint-php7.4
- php-lint-php8.0
- php-lint-php8.1
- php-lint-php8.2
script:
- composer ci:php:sniff

View file

@ -1,12 +0,0 @@
unit-php7.4-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php74:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php7.4-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php74:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.0-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php80:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.0
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.0-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php80:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.0
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.1-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php81:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.1
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.1-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php81:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.1
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.2-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php82:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.2
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.2-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php82:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.2
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.3-v11-highest:
extends: .default
image: ghcr.io/typo3/core-testing-php83:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.3
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies
- composer ci:tests:unit

View file

@ -1,12 +0,0 @@
unit-php8.3-v11-lowest:
extends: .default
image: ghcr.io/typo3/core-testing-php83:latest
stage: test
needs:
- build-composer-dependencies
- php-lint-php8.3
script:
- echo "Job ${CI_JOB_NAME}"
- composer require --no-ansi --no-interaction --no-progress --no-install typo3/cms-core:"^11.5"
- composer update --no-ansi --no-interaction --no-progress --with-dependencies --prefer-lowest
- composer ci:tests:unit

View file

@ -1,4 +1,4 @@
unit-php8.1-v12-highest: unit-v12-php8.1-highest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php81:latest image: ghcr.io/typo3/core-testing-php81:latest
stage: test stage: test

View file

@ -1,4 +1,4 @@
unit-php8.1-v12-lowest: unit-v12-php8.1-lowest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php81:latest image: ghcr.io/typo3/core-testing-php81:latest
stage: test stage: test

View file

@ -1,4 +1,4 @@
unit-php8.2-v12-highest: unit-v12-php8.2-highest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php82:latest image: ghcr.io/typo3/core-testing-php82:latest
stage: test stage: test

View file

@ -1,4 +1,4 @@
unit-php8.2-v12-lowest: unit-v12-php8.2-lowest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php82:latest image: ghcr.io/typo3/core-testing-php82:latest
stage: test stage: test

View file

@ -1,4 +1,4 @@
unit-php8.3-v12-highest: unit-v12-php8.3-highest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php83:latest image: ghcr.io/typo3/core-testing-php83:latest
stage: test stage: test

View file

@ -1,4 +1,4 @@
unit-php8.3-v12-lowest: unit-v12-php8.3-lowest:
extends: .default extends: .default
image: ghcr.io/typo3/core-testing-php83:latest image: ghcr.io/typo3/core-testing-php83:latest
stage: test stage: test

View file

@ -223,16 +223,13 @@ Options:
- 15 maintained until 2027-11-11 - 15 maintained until 2027-11-11
- 16 maintained until 2028-11-09 - 16 maintained until 2028-11-09
-t <11.5|12.4> -t <12.4>
Only with -s composerUpdateMin|composerUpdateMax Only with -s composerUpdateMin|composerUpdateMax
Specifies the TYPO3 CORE Version to be used Specifies the TYPO3 CORE Version to be used
- 11.5: use TYPO3 v11 with typo3/cms-composer-installers ^3
- 12.4: (default) use TYPO3 v12 with typo3/cms-composer-installers ^5 - 12.4: (default) use TYPO3 v12 with typo3/cms-composer-installers ^5
-p <7.4|8.0|8.1|8.2|8.3|8.4> -p <8.1|8.2|8.3|8.4>
Specifies the PHP minor version to be used Specifies the PHP minor version to be used
- 7.4: use PHP 7.4
- 8.0: use PHP 8.0
- 8.1: use PHP 8.1 - 8.1: use PHP 8.1
- 8.2: use PHP 8.2 - 8.2: use PHP 8.2
- 8.3: (default) use PHP 8.3 - 8.3: (default) use PHP 8.3
@ -367,7 +364,7 @@ while getopts "a:b:s:d:i:p:e:t:xy:o:nhu" OPT; do
;; ;;
p) p)
PHP_VERSION=${OPTARG} PHP_VERSION=${OPTARG}
if ! [[ ${PHP_VERSION} =~ ^(7.4|8.0|8.1|8.2|8.3|8.4)$ ]]; then if ! [[ ${PHP_VERSION} =~ ^(8.1|8.2|8.3|8.4)$ ]]; then
INVALID_OPTIONS+=("-p ${OPTARG}") INVALID_OPTIONS+=("-p ${OPTARG}")
fi fi
;; ;;
@ -376,7 +373,7 @@ while getopts "a:b:s:d:i:p:e:t:xy:o:nhu" OPT; do
;; ;;
t) t)
CORE_VERSION=${OPTARG} CORE_VERSION=${OPTARG}
if ! [[ ${CORE_VERSION} =~ ^(11.5|12.4)$ ]]; then if ! [[ ${CORE_VERSION} =~ ^(12.4)$ ]]; then
INVALID_OPTIONS+=("-t ${OPTARG}") INVALID_OPTIONS+=("-t ${OPTARG}")
fi fi
;; ;;

View file

@ -1,9 +1,6 @@
<?php <?php
use TYPO3\CMS\Core\Information\Typo3Version; return [
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
$tca = [
'ctrl' => [ 'ctrl' => [
'title' => 'LLL:EXT:tea/Resources/Private/Language/locallang_db.xlf:tx_tea_domain_model_tea', 'title' => 'LLL:EXT:tea/Resources/Private/Language/locallang_db.xlf:tx_tea_domain_model_tea',
'label' => 'title', 'label' => 'title',
@ -208,84 +205,3 @@ $tca = [
], ],
], ],
]; ];
$typo3Version = new Typo3Version();
if ($typo3Version->getMajorVersion() < 12) {
$tca = array_replace_recursive(
$tca,
[
'ctrl' => [
'cruser_id' => 'cruser_id',
],
'columns' => [
'title' => [
'config' => [
'eval' => 'trim,required',
],
],
],
]
);
unset($tca['columns']['title']['required']);
$tca['columns']['l18n_parent']['config']['items'] = [
[
0 => '',
1 => 0,
],
];
$tca['columns']['image'] = [
'label' => 'LLL:EXT:tea/Resources/Private/Language/locallang_db.xlf:tx_tea_domain_model_tea.image',
'config' => ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'maxitems' => 1,
'appearance' => [
'collapseAll' => true,
'useSortable' => false,
'enabledControls' => [
'hide' => false,
],
],
]
),
];
$tca['columns']['hidden']['config'] = [
'type' => 'check',
'label' => 'LLL:EXT:tea/Resources/Private/Language/locallang_db.xlf:tx_tea_domain_model_tea.hidden',
'items' => [
[
0 => '',
'invertStateDisplay' => true,
],
],
];
$tca['columns']['starttime']['config'] = [
'type' => 'input',
'renderType' => 'inputDateTime',
'eval' => 'datetime,int',
'default' => 0,
];
$tca['columns']['endtime']['config'] = [
'type' => 'input',
'renderType' => 'inputDateTime',
'eval' => 'datetime,int',
'default' => 0,
];
$tca['columns']['fe_group']['config']['items'] = [
[
0 => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hide_at_login',
1 => -1,
],
[
0 => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.any_login',
1 => -2,
],
[
0 => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.usergroups',
1 => '--div--',
],
];
}
return $tca;

View file

@ -6,7 +6,7 @@
Dependency manager Dependency manager
================== ==================
To keep things simple, most development tools, for example PHP_CodeSniffer, are To keep things simple, most development tools, for example php-cs-fixer, are
installed by Composer as development requirements and in some cases where installed by Composer as development requirements and in some cases where
installation via Composer is not possible, we use `PHIVE <https://phar.io/>`__. installation via Composer is not possible, we use `PHIVE <https://phar.io/>`__.

View file

@ -71,13 +71,6 @@ Checks the code style with the PHP Coding Standards Fixer (PHP-CS-Fixer).
Lints the PHP files for syntax errors. Lints the PHP files for syntax errors.
.. index:: Commands; composer ci:php:sniff
.. code-block:: bash
composer ci:php:sniff
Checks the code style with PHP_CodeSniffer (PHPCS).
.. index:: Commands; composer ci:php:stan .. index:: Commands; composer ci:php:stan
.. code-block:: bash .. code-block:: bash
@ -127,13 +120,6 @@ Runs all fixers for the PHP code.
Fixes the code style with PHP-CS-Fixer. Fixes the code style with PHP-CS-Fixer.
.. index:: Commands; composer fix:php:sniff
.. code-block:: bash
composer fix:php:sniff
Fixes the code style with PHP_CodeSniffer.
.. index:: Commands; composer phpstan:baseline .. index:: Commands; composer phpstan:baseline
.. code-block:: bash .. code-block:: bash

View file

@ -1,7 +1,6 @@
# Example TYPO3 extension for code quality checks and automated tests # Example TYPO3 extension for code quality checks and automated tests
[![TYPO3 V12](https://img.shields.io/badge/TYPO3-12-orange.svg)](https://get.typo3.org/version/12) [![TYPO3 V12](https://img.shields.io/badge/TYPO3-12-orange.svg)](https://get.typo3.org/version/12)
[![TYPO3 V11](https://img.shields.io/badge/TYPO3-11-orange.svg)](https://get.typo3.org/version/11)
[![License](https://img.shields.io/github/license/TYPO3-Documentation/tea)](https://packagist.org/packages/ttn/tea) [![License](https://img.shields.io/github/license/TYPO3-Documentation/tea)](https://packagist.org/packages/ttn/tea)
[![Total downloads](https://poser.pugx.org/ttn/tea/downloads.svg)](https://packagist.org/packages/ttn/tea) [![Total downloads](https://poser.pugx.org/ttn/tea/downloads.svg)](https://packagist.org/packages/ttn/tea)
[![GitHub CI status](https://github.com/TYPO3BestPractices/tea/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TYPO3BestPractices/tea/actions) [![GitHub CI status](https://github.com/TYPO3BestPractices/tea/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TYPO3BestPractices/tea/actions)

View file

@ -12,10 +12,8 @@ use TYPO3\CMS\Core\Context\Context;
use TYPO3\CMS\Core\Context\UserAspect; use TYPO3\CMS\Core\Context\UserAspect;
use TYPO3\CMS\Core\Http\HtmlResponse; use TYPO3\CMS\Core\Http\HtmlResponse;
use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Http\RedirectResponse;
use TYPO3\CMS\Core\Information\Typo3Version;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Extbase\Mvc\Exception\StopActionException;
use TYPO3\CMS\Extbase\Persistence\QueryResultInterface; use TYPO3\CMS\Extbase\Persistence\QueryResultInterface;
use TYPO3\CMS\Fluid\View\TemplateView; use TYPO3\CMS\Fluid\View\TemplateView;
use TYPO3\TestingFramework\Core\AccessibleObjectInterface; use TYPO3\TestingFramework\Core\AccessibleObjectInterface;
@ -55,9 +53,6 @@ final class FrontEndEditorControllerTest extends UnitTestCase
// We need to create an accessible mock in order to be able to set the protected `view`. // We need to create an accessible mock in order to be able to set the protected `view`.
$methodsToMock = ['htmlResponse', 'redirect', 'redirectToUri']; $methodsToMock = ['htmlResponse', 'redirect', 'redirectToUri'];
if ((new Typo3Version())->getMajorVersion() < 12) {
$methodsToMock[] = 'forward';
}
$this->subject = $this->getAccessibleMock( $this->subject = $this->getAccessibleMock(
FrontEndEditorController::class, FrontEndEditorController::class,
$methodsToMock, $methodsToMock,
@ -214,33 +209,16 @@ final class FrontEndEditorControllerTest extends UnitTestCase
private function mockRedirect(string $actionName): void private function mockRedirect(string $actionName): void
{ {
if ((new Typo3Version())->getMajorVersion() < 12) {
$this->subject->expects(self::once())->method('redirect')
->with($actionName)
// @phpstan-ignore-next-line This class does not exist in V12 anymore, but this branch is V11-only.
->willThrowException(new StopActionException('redirectToUri', 1476045828));
// @phpstan-ignore-next-line This class does not exist in V12 anymore, but this branch is V11-only.
$this->expectException(StopActionException::class);
} else {
$redirectResponse = $this->createStub(RedirectResponse::class); $redirectResponse = $this->createStub(RedirectResponse::class);
$this->subject->expects(self::once())->method('redirect')->with($actionName) $this->subject->expects(self::once())->method('redirect')->with($actionName)
->willReturn($redirectResponse); ->willReturn($redirectResponse);
} }
}
private function stubRedirect(string $actionName): void private function stubRedirect(string $actionName): void
{ {
if ((new Typo3Version())->getMajorVersion() < 12) {
$this->subject->method('redirect')
// @phpstan-ignore-next-line This class does not exist in V12 anymore, but this branch is V11-only.
->willThrowException(new StopActionException('redirectToUri', 1476045828));
// @phpstan-ignore-next-line This class does not exist in V12 anymore, but this branch is V11-only.
$this->expectException(StopActionException::class);
} else {
$redirectResponse = $this->createStub(RedirectResponse::class); $redirectResponse = $this->createStub(RedirectResponse::class);
$this->subject->method('redirect')->willReturn($redirectResponse); $this->subject->method('redirect')->willReturn($redirectResponse);
} }
}
/** /**
* @test * @test

View file

@ -9,7 +9,6 @@ use TTN\Tea\Controller\TeaController;
use TTN\Tea\Domain\Model\Tea; use TTN\Tea\Domain\Model\Tea;
use TTN\Tea\Domain\Repository\TeaRepository; use TTN\Tea\Domain\Repository\TeaRepository;
use TYPO3\CMS\Core\Http\HtmlResponse; use TYPO3\CMS\Core\Http\HtmlResponse;
use TYPO3\CMS\Core\Information\Typo3Version;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Extbase\Persistence\QueryResultInterface; use TYPO3\CMS\Extbase\Persistence\QueryResultInterface;
use TYPO3\CMS\Fluid\View\TemplateView; use TYPO3\CMS\Fluid\View\TemplateView;
@ -46,9 +45,6 @@ final class TeaControllerTest extends UnitTestCase
$this->teaRepositoryMock = $this->createMock(TeaRepository::class); $this->teaRepositoryMock = $this->createMock(TeaRepository::class);
// We need to create an accessible mock in order to be able to set the protected `view`. // We need to create an accessible mock in order to be able to set the protected `view`.
$methodsToMock = ['htmlResponse', 'redirect', 'redirectToUri']; $methodsToMock = ['htmlResponse', 'redirect', 'redirectToUri'];
if ((new Typo3Version())->getMajorVersion() < 12) {
$methodsToMock[] = 'forward';
}
$this->subject = $this->getAccessibleMock(TeaController::class, $methodsToMock, [$this->teaRepositoryMock]); $this->subject = $this->getAccessibleMock(TeaController::class, $methodsToMock, [$this->teaRepositoryMock]);
$this->viewMock = $this->createMock(TemplateView::class); $this->viewMock = $this->createMock(TemplateView::class);

View file

@ -39,12 +39,12 @@
"docs": "https://docs.typo3.org/p/ttn/tea/main/en-us/" "docs": "https://docs.typo3.org/p/ttn/tea/main/en-us/"
}, },
"require": { "require": {
"php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
"psr/http-message": "^1.0.1", "psr/http-message": "^1.0.1",
"typo3/cms-core": "^11.5.41 || ^12.4.26", "typo3/cms-core": "^12.4.26",
"typo3/cms-extbase": "^11.5.41 || ^12.4.26", "typo3/cms-extbase": "^12.4.26",
"typo3/cms-fluid": "^11.5.41 || ^12.4.26", "typo3/cms-fluid": "^12.4.26",
"typo3/cms-frontend": "^11.5.41 || ^12.4.26" "typo3/cms-frontend": "^12.4.26"
}, },
"require-dev": { "require-dev": {
"ergebnis/composer-normalize": "2.45.0", "ergebnis/composer-normalize": "2.45.0",
@ -61,7 +61,6 @@
"saschaegerer/phpstan-typo3": "1.10.2", "saschaegerer/phpstan-typo3": "1.10.2",
"seld/jsonlint": "1.11.0", "seld/jsonlint": "1.11.0",
"spaze/phpstan-disallowed-calls": "4.2.1", "spaze/phpstan-disallowed-calls": "4.2.1",
"squizlabs/php_codesniffer": "3.11.3",
"ssch/typo3-rector": "2.12.2", "ssch/typo3-rector": "2.12.2",
"ssch/typo3-rector-testing-framework": "2.0.1", "ssch/typo3-rector-testing-framework": "2.0.1",
"symfony/console": "5.4.47 || 6.4.17 || 7.2.1", "symfony/console": "5.4.47 || 6.4.17 || 7.2.1",
@ -69,7 +68,7 @@
"symfony/yaml": "5.4.45 || 6.4.18 || 7.2.3", "symfony/yaml": "5.4.45 || 6.4.18 || 7.2.3",
"tomasvotruba/cognitive-complexity": "0.2.3", "tomasvotruba/cognitive-complexity": "0.2.3",
"tomasvotruba/type-coverage": "1.0.0", "tomasvotruba/type-coverage": "1.0.0",
"typo3/cms-fluid-styled-content": "^11.5.41 || ^12.4.26", "typo3/cms-fluid-styled-content": "^12.4.26",
"typo3/coding-standards": "0.6.1 || 0.8.0", "typo3/coding-standards": "0.6.1 || 0.8.0",
"typo3/testing-framework": "7.1.1", "typo3/testing-framework": "7.1.1",
"webmozart/assert": "^1.11.0" "webmozart/assert": "^1.11.0"
@ -141,14 +140,12 @@
"ci:php": [ "ci:php": [
"@ci:php:cs-fixer", "@ci:php:cs-fixer",
"@ci:php:lint", "@ci:php:lint",
"@ci:php:sniff",
"@ci:php:stan" "@ci:php:stan"
], ],
"ci:php:cs-fixer": "php-cs-fixer fix --config ./Build/php-cs-fixer/php-cs-fixer.php -v --dry-run --diff", "ci:php:cs-fixer": "php-cs-fixer fix --config ./Build/php-cs-fixer/php-cs-fixer.php -v --dry-run --diff",
"ci:php:lint": "parallel-lint *.php Build Classes Configuration Tests", "ci:php:lint": "parallel-lint *.php Build Classes Configuration Tests",
"ci:php:mess": "phpmd Classes text Build/phpmd/phpmd.xml", "ci:php:mess": "phpmd Classes text Build/phpmd/phpmd.xml",
"ci:php:rector": "rector --dry-run", "ci:php:rector": "rector --dry-run",
"ci:php:sniff": "phpcs --standard=Build/phpcs/phpcs.xml Classes Configuration Tests",
"ci:php:stan": "phpstan --no-progress -v", "ci:php:stan": "phpstan --no-progress -v",
"ci:static": [ "ci:static": [
"@ci:composer:normalize", "@ci:composer:normalize",
@ -158,7 +155,6 @@
"@ci:php:rector", "@ci:php:rector",
"@ci:php:stan", "@ci:php:stan",
"@ci:php:cs-fixer", "@ci:php:cs-fixer",
"@ci:php:sniff",
"@ci:typoscript:lint", "@ci:typoscript:lint",
"@ci:xliff:lint", "@ci:xliff:lint",
"@ci:yaml:lint" "@ci:yaml:lint"
@ -181,12 +177,10 @@
"fix:composer:normalize": "@composer normalize --no-check-lock", "fix:composer:normalize": "@composer normalize --no-check-lock",
"fix:php": [ "fix:php": [
"@fix:php:rector", "@fix:php:rector",
"@fix:php:cs", "@fix:php:cs"
"@fix:php:sniff"
], ],
"fix:php:cs": "php-cs-fixer fix --config ./Build/php-cs-fixer/php-cs-fixer.php", "fix:php:cs": "php-cs-fixer fix --config ./Build/php-cs-fixer/php-cs-fixer.php",
"fix:php:rector": "rector", "fix:php:rector": "rector",
"fix:php:sniff": "phpcbf --standard=Build/phpcs/phpcs.xml Classes Configuration Tests",
"phpstan:baseline": "phpstan --generate-baseline --allow-empty-baseline", "phpstan:baseline": "phpstan --generate-baseline --allow-empty-baseline",
"prepare-release": [ "prepare-release": [
"rm -rf .Build", "rm -rf .Build",
@ -226,7 +220,6 @@
"ci:php:lint": "Lints the PHP files for syntax errors.", "ci:php:lint": "Lints the PHP files for syntax errors.",
"ci:php:mess": "Runs PHP mess detection.", "ci:php:mess": "Runs PHP mess detection.",
"ci:php:rector": "Checks for code for changes by Rector.", "ci:php:rector": "Checks for code for changes by Rector.",
"ci:php:sniff": "Checks the code style with PHP_CodeSniffer (PHPCS).",
"ci:php:stan": "Checks the PHP types using PHPStan.", "ci:php:stan": "Checks the PHP types using PHPStan.",
"ci:static": "Runs all static code checks (syntax, style, types).", "ci:static": "Runs all static code checks (syntax, style, types).",
"ci:tests:create-directories": "Creates the directories required to smoothely run the functional tests.", "ci:tests:create-directories": "Creates the directories required to smoothely run the functional tests.",
@ -242,7 +235,6 @@
"fix:php": "Runs all fixers for the PHP code.", "fix:php": "Runs all fixers for the PHP code.",
"fix:php:cs": "Fixes the code style with PHP-CS-Fixer.", "fix:php:cs": "Fixes the code style with PHP-CS-Fixer.",
"fix:php:rector": "Updates the code with Rector.", "fix:php:rector": "Updates the code with Rector.",
"fix:php:sniff": "Fixes the code style with PHP_CodeSniffer.",
"phpstan:baseline": "Updates the PHPStan baseline file to match the code.", "phpstan:baseline": "Updates the PHPStan baseline file to match the code.",
"prepare-release": "Removes development-only files in preparation of a TER release." "prepare-release": "Removes development-only files in preparation of a TER release."
} }

View file

@ -7,11 +7,11 @@ $EM_CONF[$_EXTKEY] = [
'category' => 'example', 'category' => 'example',
'constraints' => [ 'constraints' => [
'depends' => [ 'depends' => [
'php' => '7.4.0-8.3.99', 'php' => '8.1.0-8.3.99',
'typo3' => '11.5.41-12.4.99', 'typo3' => '12.4.26-12.4.99',
'extbase' => '11.5.41-12.4.99', 'extbase' => '12.4.26-12.4.99',
'fluid' => '11.5.41-12.4.99', 'fluid' => '12.4.26-12.4.99',
'frontend' => '11.5.41-12.4.99', 'frontend' => '12.4.26-12.4.99',
], ],
], ],
'state' => 'stable', 'state' => 'stable',

View file

@ -80,8 +80,7 @@ return RectorConfig::configure()
Typo3SetList::CODE_QUALITY, Typo3SetList::CODE_QUALITY,
Typo3SetList::GENERAL, Typo3SetList::GENERAL,
Typo3LevelSetList::UP_TO_TYPO3_11, Typo3LevelSetList::UP_TO_TYPO3_12,
// Typo3LevelSetList::UP_TO_TYPO3_12,
// TYPO3TestingFrameworkSetList::TYPO3_TESTING_FRAMEWORK_7, // TYPO3TestingFrameworkSetList::TYPO3_TESTING_FRAMEWORK_7,
]) ])
@ -95,8 +94,8 @@ return RectorConfig::configure()
]) ])
->withImportNames(true, true, false) ->withImportNames(true, true, false)
->withConfiguredRule(ExtEmConfRector::class, [ ->withConfiguredRule(ExtEmConfRector::class, [
ExtEmConfRector::PHP_VERSION_CONSTRAINT => '7.4.0-8.3.99', ExtEmConfRector::PHP_VERSION_CONSTRAINT => '8.1.0-8.3.99',
ExtEmConfRector::TYPO3_VERSION_CONSTRAINT => '11.5.41-12.4.99', ExtEmConfRector::TYPO3_VERSION_CONSTRAINT => '12.4.26-12.4.99',
ExtEmConfRector::ADDITIONAL_VALUES_TO_BE_REMOVED => [], ExtEmConfRector::ADDITIONAL_VALUES_TO_BE_REMOVED => [],
]) ])
->withSkip([ ->withSkip([