Enhancement: Add support for PHP 7.3 #1839
integrate.yaml
on: pull_request
Matrix: Code Coverage
Matrix: Coding Standards
Matrix: Dependency Analysis
Matrix: Mutation Tests
Matrix: Refactoring
Matrix: Security Analysis
Matrix: Static Code Analysis
Matrix: Tests
Annotations
6 errors and 10 warnings
Tests (7.3, highest)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 but your php version (7.3.33) does not satisfy that requirement.
Problem 2
- Root composer.json requires ergebnis/composer-normalize ^2.43.0 -> satisfiable by ergebnis/composer-normalize[2.43.0].
- ergebnis/composer-normalize 2.43.0 requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 3
- Root composer.json requires ergebnis/license ^2.4.0 -> satisfiable by ergebnis/license[2.4.0].
- ergebnis/license 2.4.0 requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 4
- Root composer.json requires ergebnis/php-cs-fixer-config ^6.31.0 -> satisfiable by ergebnis/php-cs-fixer-config[6.31.0].
- ergebnis/php-cs-fixer-config 6.31.0 requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 5
- Root composer.json requires fakerphp/faker ^1.23.1 -> satisfiable by fakerphp/faker[v1.23.1].
- fakerphp/faker v1.23.1 requires php ^7.4 || ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 6
- Root composer.json requires psalm/plugin-phpunit ~0.19.0 -> satisfiable by psalm/plugin-phpunit[0.19.0].
- psalm/plugin-phpunit 0.19.0 requires php ^7.4 || ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 7
- Root composer.json requires vimeo/psalm ^5.24.0 -> satisfiable by vimeo/psalm[5.24.0].
- vimeo/psalm 5.24.0 requires php ^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 8
- infection/infection 0.26.6 requires php ^7.4.7 || ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
- infection/infection[0.26.7, ..., 0.26.19] require php ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
- infection/infection[0.26.20, ..., 0.26.21] require php ^8.1 -> your php version (7.3.33) does not satisfy that requirement.
- Root composer.json requires infection/infection ~0.26.6 -> satisfiable by infection/infection[0.26.6, ..., 0.26.21].
|
Tests (7.3, highest)
Process completed with exit code 2.
|
Tests (7.3, lowest)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 but your php version (7.3.33) does not satisfy that requirement.
Problem 2
- Root composer.json requires ergebnis/composer-normalize ^2.43.0 -> satisfiable by ergebnis/composer-normalize[2.43.0].
- ergebnis/composer-normalize 2.43.0 requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 3
- Root composer.json requires ergebnis/license ^2.4.0 -> satisfiable by ergebnis/license[2.4.0].
- ergebnis/license 2.4.0 requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 4
- Root composer.json requires ergebnis/php-cs-fixer-config ^6.31.0 -> satisfiable by ergebnis/php-cs-fixer-config[6.31.0].
- ergebnis/php-cs-fixer-config 6.31.0 requires php ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 5
- Root composer.json requires fakerphp/faker ^1.23.1 -> satisfiable by fakerphp/faker[v1.23.1].
- fakerphp/faker v1.23.1 requires php ^7.4 || ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 6
- Root composer.json requires psalm/plugin-phpunit ~0.19.0 -> satisfiable by psalm/plugin-phpunit[0.19.0].
- psalm/plugin-phpunit 0.19.0 requires php ^7.4 || ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 7
- Root composer.json requires vimeo/psalm ^5.24.0 -> satisfiable by vimeo/psalm[5.24.0].
- vimeo/psalm 5.24.0 requires php ^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 -> your php version (7.3.33) does not satisfy that requirement.
Problem 8
- infection/infection 0.26.6 requires php ^7.4.7 || ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
- infection/infection[0.26.7, ..., 0.26.19] require php ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
- infection/infection[0.26.20, ..., 0.26.21] require php ^8.1 -> your php version (7.3.33) does not satisfy that requirement.
- Root composer.json requires infection/infection ~0.26.6 -> satisfiable by infection/infection[0.26.6, ..., 0.26.21].
|
Tests (7.3, lowest)
Process completed with exit code 2.
|
Tests (7.3, locked):
vendor/composer/platform_check.php#L24
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0". You are running 7.3.33-19+ubuntu22.04.1+deb.sury.org+1.
|
Tests (7.3, locked)
Process completed with exit code 255.
|
Mutation Tests (7.4, locked):
src/Constructs.php#L49
Escaped Mutant for Mutator "GreaterThanOrEqualTo":
--- Original
+++ New
@@ @@
/**
* @see https://wiki.php.net/rfc/namespaced_names_as_token
*/
- if (\PHP_VERSION_ID >= 80000 && \defined('T_NAME_QUALIFIED')) {
+ if (\PHP_VERSION_ID > 80000 && \defined('T_NAME_QUALIFIED')) {
/** @var list<int> $namespaceSegmentOrNamespaceTokens */
$namespaceSegmentOrNamespaceTokens = [\T_STRING, \T_NAME_QUALIFIED];
}
|
Mutation Tests (7.4, locked):
src/Constructs.php#L49
Escaped Mutant for Mutator "GreaterThanOrEqualToNegotiation":
--- Original
+++ New
@@ @@
/**
* @see https://wiki.php.net/rfc/namespaced_names_as_token
*/
- if (\PHP_VERSION_ID >= 80000 && \defined('T_NAME_QUALIFIED')) {
+ if (\PHP_VERSION_ID < 80000 && \defined('T_NAME_QUALIFIED')) {
/** @var list<int> $namespaceSegmentOrNamespaceTokens */
$namespaceSegmentOrNamespaceTokens = [\T_STRING, \T_NAME_QUALIFIED];
}
|
Mutation Tests (7.4, locked):
src/Constructs.php#L49
Escaped Mutant for Mutator "LogicalAnd":
--- Original
+++ New
@@ @@
/**
* @see https://wiki.php.net/rfc/namespaced_names_as_token
*/
- if (\PHP_VERSION_ID >= 80000 && \defined('T_NAME_QUALIFIED')) {
+ if (\PHP_VERSION_ID >= 80000 || \defined('T_NAME_QUALIFIED')) {
/** @var list<int> $namespaceSegmentOrNamespaceTokens */
$namespaceSegmentOrNamespaceTokens = [\T_STRING, \T_NAME_QUALIFIED];
}
|
Mutation Tests (7.4, locked):
src/Constructs.php#L69
Escaped Mutant for Mutator "GreaterThanOrEqualTo":
--- Original
+++ New
@@ @@
/**
* @see https://wiki.php.net/rfc/enumerations
*/
- if (\PHP_VERSION_ID >= 80100 && \defined('T_ENUM')) {
+ if (\PHP_VERSION_ID > 80100 && \defined('T_ENUM')) {
$classyTokens = [\T_CLASS, \T_ENUM, \T_INTERFACE, \T_TRAIT];
}
for ($index = 0; $index < $count; ++$index) {
|
Mutation Tests (7.4, locked):
src/Constructs.php#L69
Escaped Mutant for Mutator "GreaterThanOrEqualToNegotiation":
--- Original
+++ New
@@ @@
/**
* @see https://wiki.php.net/rfc/enumerations
*/
- if (\PHP_VERSION_ID >= 80100 && \defined('T_ENUM')) {
+ if (\PHP_VERSION_ID < 80100 && \defined('T_ENUM')) {
$classyTokens = [\T_CLASS, \T_ENUM, \T_INTERFACE, \T_TRAIT];
}
for ($index = 0; $index < $count; ++$index) {
|
Mutation Tests (7.4, locked):
src/Constructs.php#L69
Escaped Mutant for Mutator "LogicalAnd":
--- Original
+++ New
@@ @@
/**
* @see https://wiki.php.net/rfc/enumerations
*/
- if (\PHP_VERSION_ID >= 80100 && \defined('T_ENUM')) {
+ if (\PHP_VERSION_ID >= 80100 || \defined('T_ENUM')) {
$classyTokens = [\T_CLASS, \T_ENUM, \T_INTERFACE, \T_TRAIT];
}
for ($index = 0; $index < $count; ++$index) {
|
Mutation Tests (7.4, locked):
src/Constructs.php#L88
Escaped Mutant for Mutator "LessThan":
--- Original
+++ New
@@ @@
if (\is_array($token) && \T_NAMESPACE === $token[0]) {
$namespaceSegments = [];
// collect namespace segments
- for ($index = self::significantAfter($index, $sequence, $count); $index < $count; ++$index) {
+ for ($index = self::significantAfter($index, $sequence, $count); $index <= $count; ++$index) {
$token = $sequence[$index];
if (\is_array($token) && !\in_array($token[0], $namespaceSegmentOrNamespaceTokens, true)) {
continue;
|
Mutation Tests (7.4, locked):
src/Constructs.php#L120
Escaped Mutant for Mutator "Continue_":
--- Original
+++ New
@@ @@
$token = $sequence[$current];
// if significant token before T_CLASS is T_NEW, it's an instantiation of an anonymous class
if (\is_array($token) && \T_NEW === $token[0]) {
- continue;
+ break;
}
}
$index = self::significantAfter($index, $sequence, $count);
|
Mutation Tests (7.4, locked):
src/Constructs.php#L168
Escaped Mutant for Mutator "Continue_":
--- Original
+++ New
@@ @@
continue;
}
if ($fileInfo->getBasename('.php') === $fileInfo->getBasename()) {
- continue;
+ break;
}
/** @var string $fileName */
$fileName = $fileInfo->getRealPath();
|
Mutation Tests (7.4, locked):
src/Constructs.php#L187
Escaped Mutant for Mutator "Continue_":
--- Original
+++ New
@@ @@
throw Exception\ParseError::fromFileNameAndParseError($fileName, $exception);
}
if (0 === \count($constructsFromFile)) {
- continue;
+ break;
}
foreach ($constructsFromFile as $construct) {
$name = $construct->name();
|