From 0b16a9a9b5957d87393bf120615e32bfb72b461d Mon Sep 17 00:00:00 2001 From: Sebastiaan Date: Sun, 1 Dec 2019 19:59:04 +0100 Subject: [PATCH 1/4] Add support for Symfony 5 --- .gitignore | 1 + .travis.yml | 46 +++++++++++++------ composer.json | 10 ++-- phpstan.neon | 9 +++- src/Command/BlacklistCommonCommand.php | 4 +- src/Command/BlacklistListCommand.php | 4 +- src/Command/BlacklistPurgeCommand.php | 4 +- .../Constraints/PasswordStrengthValidator.php | 11 +++-- .../Validator/P0wnedPasswordValidatorTest.php | 2 +- 9 files changed, 63 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 6927e16..6376ff4 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ *.phar /vendor/ /.php_cs.cache +symfony.lock diff --git a/.travis.yml b/.travis.yml index 2a2ab70..ca38af9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,39 +1,55 @@ language: php +dist: xenial + +env: + global: + - SYMFONY_PHPUNIT_DISABLE_RESULT_CACHE=1 + - SYMFONY_PHPUNIT_REMOVE="symfony/yaml" + - SYMFONY_PHPUNIT_VERSION=7.5.6 + - QA_DOCKER_IMAGE=jakzal/phpqa:1.25.0-php7.2-alpine + matrix: include: - php: 7.1 + env: SYMFONY_REQUIRE='^3.4' - php: 7.2 - env: DEPENDENCIES='dev' - - php: 7.2 - env: DEPENDENCIES='low' - - php: 7.2 + env: SYMFONY_REQUIRE='^4.4' - php: 7.3 + env: SYMFONY_REQUIRE='^5.0' + - php: 7.4 + env: SYMFONY_REQUIRE='^5.0' + - php: 7.2 env: lint=1 + services: + - docker fast_finish: true sudo: false cache: directories: - - $HOME/.composer/cache + - $HOME/.composer/cache/files before_install: - phpenv config-rm xdebug.ini || echo "xdebug not available" - echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - - if [[ $lint = 1 ]]; then wget https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.14.2/php-cs-fixer.phar; fi - - if [[ $lint = 1 ]]; then composer global require --dev 'phpstan/phpstan:^0.8'; fi + - composer global require symfony/flex + + - if [[ $lint = 1 ]]; then docker pull ${QA_DOCKER_IMAGE}; fi - export PATH="$PATH:$HOME/.composer/vendor/bin" install: - - if [ "$DEPENDENCIES" == "dev" ]; then composer config minimum-stability dev; fi; - - if [ "$DEPENDENCIES" != "low" ]; then composer update --prefer-dist --no-progress --no-suggest --ansi; fi; - - if [ "$DEPENDENCIES" == "low" ]; then composer update --prefer-dist --no-progress --no-suggest --ansi --prefer-lowest; fi; + - composer install --prefer-dist --no-progress --no-suggest --ansi script: - - export SYMFONY_PHPUNIT_VERSION=7.5.6 - - export SYMFONY_PHPUNIT_REMOVE="symfony/yaml" - - export SYMFONY_DEPRECATIONS_HELPER=strict - vendor/bin/simple-phpunit --verbose - - if [[ $lint = 1 ]]; then php php-cs-fixer.phar fix --dry-run --diff --no-ansi; fi - #- if [[ $lint = 1 ]]; then phpstan analyse -c phpstan.neon -l5 --ansi src tests; fi # temporarily disabled + - | + if [[ $lint = 1 ]] + then + mkdir /tmp/tmp-phpqa-$(id -u) + export QA_DOCKER_COMMAND="docker run --init --interactive --tty --rm --user "$(id -u):$(id -g)" --volume /tmp/tmp-phpqa-$(id -u):/tmp --volume "$(pwd):/project" --workdir /project ${QA_DOCKER_IMAGE}" + sh -c "${QA_DOCKER_COMMAND} php-cs-fixer fix -vvv --diff --dry-run" + sh -c "${QA_DOCKER_COMMAND} phpstan analyse" + #sh -c "${QA_DOCKER_COMMAND} vendor/bin/psalm --show-info=false" + fi diff --git a/composer.json b/composer.json index 167d621..0072562 100644 --- a/composer.json +++ b/composer.json @@ -23,13 +23,13 @@ "psr/container": "^1.0", "psr/log": "^1.0", "symfony/polyfill-mbstring": "^1.5.0", - "symfony/translation": "^3.4.22 || ^4.0", - "symfony/validator": "^3.4.22 || ^4.0" + "symfony/translation": "^3.4.22 || ^4.0 || ^5.0", + "symfony/validator": "^3.4.22 || ^4.0 || ^5.0" }, "require-dev": { - "symfony/config": "^3.4.22 || ^4.0", - "symfony/console": "^3.4.22 || ^4.0", - "symfony/phpunit-bridge": "^3.4.22 || ^4.0", + "symfony/config": "^3.4.22 || ^4.0 || ^5.0", + "symfony/console": "^3.4.22 || ^4.0 || ^5.0", + "symfony/phpunit-bridge": "^3.4.22 || ^4.0 || ^5.0", "php-http/httplug": "^1.1", "guzzlehttp/psr7": "^1.4" }, diff --git a/phpstan.neon b/phpstan.neon index bbbec2e..dc8469d 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,7 +1,14 @@ +includes: + - /tools/.composer/vendor-bin/phpstan/vendor/phpstan/phpstan-phpunit/extension.neon + parameters: autoload_files: - vendor/autoload.php - - vendor/symfony/phpunit-bridge/bin/.phpunit/phpunit-5.7.1/vendor/autoload.php + - vendor/bin/.phpunit/phpunit-7.5.6-0/vendor/autoload.php # Pain is your friend.... (at least it works for now) + level: 5 + paths: + - ./src + - ./tests ignoreErrors: #- '#__construct\(\) does not call parent constructor from .+#' diff --git a/src/Command/BlacklistCommonCommand.php b/src/Command/BlacklistCommonCommand.php index f4c12bd..c34b4fa 100644 --- a/src/Command/BlacklistCommonCommand.php +++ b/src/Command/BlacklistCommonCommand.php @@ -20,7 +20,7 @@ abstract class BlacklistCommonCommand extends BlacklistCommand { const MESSAGE = '%d'; - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); @@ -57,6 +57,8 @@ protected function execute(InputInterface $input, OutputInterface $output) } $output->writeln(sprintf(static::MESSAGE, $count)); + + return 0; } abstract protected function attemptAction(UpdatableBlacklistProviderInterface $service, $password); diff --git a/src/Command/BlacklistListCommand.php b/src/Command/BlacklistListCommand.php index 0c71182..4a3e0e1 100644 --- a/src/Command/BlacklistListCommand.php +++ b/src/Command/BlacklistListCommand.php @@ -27,10 +27,12 @@ protected function configure() ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { foreach ($this->blacklistProvider->all() as $password) { $output->writeln($password, OutputInterface::OUTPUT_RAW); } + + return 0; } } diff --git a/src/Command/BlacklistPurgeCommand.php b/src/Command/BlacklistPurgeCommand.php index 6450d52..5a98a58 100644 --- a/src/Command/BlacklistPurgeCommand.php +++ b/src/Command/BlacklistPurgeCommand.php @@ -33,7 +33,7 @@ protected function configure() /** * {@inheritdoc} */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); @@ -48,5 +48,7 @@ protected function execute(InputInterface $input, OutputInterface $output) $this->blacklistProvider->purge(); $io->success('Successfully removed all passwords from your blacklist.'); + + return 0; } } diff --git a/src/Validator/Constraints/PasswordStrengthValidator.php b/src/Validator/Constraints/PasswordStrengthValidator.php index 8dfa645..b5c81cd 100644 --- a/src/Validator/Constraints/PasswordStrengthValidator.php +++ b/src/Validator/Constraints/PasswordStrengthValidator.php @@ -13,7 +13,8 @@ use Symfony\Component\Translation\Loader\XliffFileLoader; use Symfony\Component\Translation\Translator; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; @@ -49,14 +50,18 @@ class PasswordStrengthValidator extends ConstraintValidator 5 => 'very_strong', ]; - public function __construct(TranslatorInterface $translator = null) + public function __construct($translator = null) { + if (null !== $translator && !$translator instanceof LegacyTranslatorInterface && !$translator instanceof TranslatorInterface) { + throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator))); + } + // If translator is missing create a new translator. // With the 'en' locale and 'validators' domain. if (null === $translator) { $translator = new Translator('en'); $translator->addLoader('xlf', new XliffFileLoader()); - $translator->addResource('xlf', dirname(dirname(__DIR__)).'/Resources/translations/validators.en.xlf', 'en', 'validators'); + $translator->addResource('xlf', dirname(__DIR__, 2) . '/Resources/translations/validators.en.xlf', 'en', 'validators'); } $this->translator = $translator; diff --git a/tests/Validator/P0wnedPasswordValidatorTest.php b/tests/Validator/P0wnedPasswordValidatorTest.php index 0a25d2d..047cbd9 100644 --- a/tests/Validator/P0wnedPasswordValidatorTest.php +++ b/tests/Validator/P0wnedPasswordValidatorTest.php @@ -26,7 +26,7 @@ class P0wnedPasswordValidatorTest extends ConstraintValidatorTestCase /** @var P0wnedPasswordValidator */ protected $validator; - public function setUp() + public function setUp(): void { $this->client = $this->createMock(Client::class); parent::setUp(); From 76e8ac99d8b68eac6a5caefcf7b56631aba291aa Mon Sep 17 00:00:00 2001 From: Sebastiaan Date: Sun, 1 Dec 2019 20:01:50 +0100 Subject: [PATCH 2/4] Fix CS --- src/Blacklist/ArrayProvider.php | 3 --- src/Blacklist/ChainProvider.php | 2 -- src/Blacklist/LazyChainProvider.php | 3 +-- src/Blacklist/PdoProvider.php | 2 -- src/Command/BlacklistCommand.php | 4 +--- src/P0wnedPassword/Request/Client.php | 2 +- src/Validator/Constraints/BlacklistValidator.php | 12 +++--------- .../Constraints/P0wnedPasswordValidator.php | 2 -- .../Constraints/PasswordStrengthValidator.php | 10 +++++----- tests/BlackListMockProviderTrait.php | 2 -- tests/P0wnedPassword/Request/ClientTest.php | 2 +- tests/Symfony27Compat.php | 2 +- tests/Validator/P0wnedPasswordValidatorTest.php | 2 +- .../Validator/PasswordRequirementsValidatorTest.php | 7 ++----- 14 files changed, 16 insertions(+), 39 deletions(-) diff --git a/src/Blacklist/ArrayProvider.php b/src/Blacklist/ArrayProvider.php index 200a678..d147f25 100644 --- a/src/Blacklist/ArrayProvider.php +++ b/src/Blacklist/ArrayProvider.php @@ -22,9 +22,6 @@ class ArrayProvider implements BlacklistProviderInterface { private $blacklist = []; - /** - * @param array $blacklist - */ public function __construct(array $blacklist) { $this->blacklist = $blacklist; diff --git a/src/Blacklist/ChainProvider.php b/src/Blacklist/ChainProvider.php index 96a51c8..d28fe18 100644 --- a/src/Blacklist/ChainProvider.php +++ b/src/Blacklist/ChainProvider.php @@ -38,8 +38,6 @@ public function __construct(array $providers = []) /** * Adds a new blacklist provider. * - * @param BlacklistProviderInterface $provider - * * @throws \RuntimeException * * @return self diff --git a/src/Blacklist/LazyChainProvider.php b/src/Blacklist/LazyChainProvider.php index 822aaef..f2d0ed3 100644 --- a/src/Blacklist/LazyChainProvider.php +++ b/src/Blacklist/LazyChainProvider.php @@ -26,8 +26,7 @@ final class LazyChainProvider implements BlacklistProviderInterface /** * Constructor. * - * @param ContainerInterface $container - * @param string[] $providers + * @param string[] $providers */ public function __construct(ContainerInterface $container, array $providers) { diff --git a/src/Blacklist/PdoProvider.php b/src/Blacklist/PdoProvider.php index 2bb43bc..2aa0721 100644 --- a/src/Blacklist/PdoProvider.php +++ b/src/Blacklist/PdoProvider.php @@ -147,7 +147,6 @@ abstract protected function initDb(); /** * @param object $db * @param string $query - * @param array $args * * @return mixed */ @@ -166,7 +165,6 @@ protected function fetch($db, $query, array $args = []) /** * @param object $db * @param string $query - * @param array $args * * @throws \RuntimeException */ diff --git a/src/Command/BlacklistCommand.php b/src/Command/BlacklistCommand.php index d2a5909..a769a7d 100644 --- a/src/Command/BlacklistCommand.php +++ b/src/Command/BlacklistCommand.php @@ -47,9 +47,7 @@ protected function initialize(InputInterface $input, OutputInterface $output) $this->blacklistProvider = $this->providers->get($input->getOption('provider')); if (!$this->blacklistProvider instanceof UpdatableBlacklistProviderInterface) { - throw new \RuntimeException( - sprintf('Blacklist provider "%s" is not updatable.', $input->getOption('provider')) - ); + throw new \RuntimeException(sprintf('Blacklist provider "%s" is not updatable.', $input->getOption('provider'))); } } } diff --git a/src/P0wnedPassword/Request/Client.php b/src/P0wnedPassword/Request/Client.php index b1b01ee..f380aed 100644 --- a/src/P0wnedPassword/Request/Client.php +++ b/src/P0wnedPassword/Request/Client.php @@ -12,8 +12,8 @@ namespace Rollerworks\Component\PasswordStrength\P0wnedPassword\Request; use GuzzleHttp\Psr7\Request; -use Http\Client\Exception\HttpException; use Http\Client\Exception as HttpException2; +use Http\Client\Exception\HttpException; use Http\Client\HttpClient; use Psr\Log\LoggerInterface; diff --git a/src/Validator/Constraints/BlacklistValidator.php b/src/Validator/Constraints/BlacklistValidator.php index e14613c..3b09aec 100644 --- a/src/Validator/Constraints/BlacklistValidator.php +++ b/src/Validator/Constraints/BlacklistValidator.php @@ -31,9 +31,8 @@ class BlacklistValidator extends ConstraintValidator private $providersLoader; /** - * @param BlacklistProviderInterface $defaultProvider - * @param ContainerInterface $providersLoader Service-container for loading - * blacklist providers + * @param ContainerInterface $providersLoader Service-container for loading + * blacklist providers */ public function __construct(BlacklistProviderInterface $defaultProvider, ContainerInterface $providersLoader = null) { @@ -59,12 +58,7 @@ public function validate($password, Constraint $constraint) $provider = $this->defaultProvider; } else { if (null === $this->providersLoader || !$this->providersLoader->has($constraint->provider)) { - throw new RuntimeException( - sprintf( - 'Unable to use blacklist provider "%s", eg. no blacklists were configured or this provider is not supported.', - $constraint->provider - ) - ); + throw new RuntimeException(sprintf('Unable to use blacklist provider "%s", eg. no blacklists were configured or this provider is not supported.', $constraint->provider)); } $provider = $this->providersLoader->get($constraint->provider); diff --git a/src/Validator/Constraints/P0wnedPasswordValidator.php b/src/Validator/Constraints/P0wnedPasswordValidator.php index 228c39e..fe7f8b2 100644 --- a/src/Validator/Constraints/P0wnedPasswordValidator.php +++ b/src/Validator/Constraints/P0wnedPasswordValidator.php @@ -23,8 +23,6 @@ class P0wnedPasswordValidator extends ConstraintValidator /** * P0wnedPasswordValidator constructor. - * - * @param Client $client */ public function __construct(Client $client) { diff --git a/src/Validator/Constraints/PasswordStrengthValidator.php b/src/Validator/Constraints/PasswordStrengthValidator.php index b5c81cd..f45e79d 100644 --- a/src/Validator/Constraints/PasswordStrengthValidator.php +++ b/src/Validator/Constraints/PasswordStrengthValidator.php @@ -14,10 +14,10 @@ use Symfony\Component\Translation\Loader\XliffFileLoader; use Symfony\Component\Translation\Translator; use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface; -use Symfony\Contracts\Translation\TranslatorInterface; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; +use Symfony\Contracts\Translation\TranslatorInterface; /** * Password strength Validation. @@ -61,7 +61,7 @@ public function __construct($translator = null) if (null === $translator) { $translator = new Translator('en'); $translator->addLoader('xlf', new XliffFileLoader()); - $translator->addResource('xlf', dirname(__DIR__, 2) . '/Resources/translations/validators.en.xlf', 'en', 'validators'); + $translator->addResource('xlf', dirname(__DIR__, 2).'/Resources/translations/validators.en.xlf', 'en', 'validators'); } $this->translator = $translator; @@ -112,8 +112,8 @@ public function validate($password, Constraint $constraint) if ($passwordStrength < $constraint->minStrength) { $parameters = [ '{{ length }}' => $constraint->minLength, - '{{ min_strength }}' => $this->translator->trans(/** @Ignore */'rollerworks_password.strength_level.'.self::$levelToLabel[$constraint->minStrength], [], 'validators'), - '{{ current_strength }}' => $this->translator->trans(/** @Ignore */'rollerworks_password.strength_level.'.self::$levelToLabel[$passwordStrength], [], 'validators'), + '{{ min_strength }}' => $this->translator->trans(/* @Ignore */'rollerworks_password.strength_level.'.self::$levelToLabel[$constraint->minStrength], [], 'validators'), + '{{ current_strength }}' => $this->translator->trans(/* @Ignore */'rollerworks_password.strength_level.'.self::$levelToLabel[$passwordStrength], [], 'validators'), '{{ strength_tips }}' => implode(', ', array_map([$this, 'translateTips'], $tips)), ]; @@ -128,7 +128,7 @@ public function validate($password, Constraint $constraint) */ public function translateTips($tip) { - return $this->translator->trans(/** @Ignore */'rollerworks_password.tip.'.$tip, [], 'validators'); + return $this->translator->trans(/* @Ignore */'rollerworks_password.tip.'.$tip, [], 'validators'); } private function calculateStrength($password, &$tips) diff --git a/tests/BlackListMockProviderTrait.php b/tests/BlackListMockProviderTrait.php index cd39882..f759316 100644 --- a/tests/BlackListMockProviderTrait.php +++ b/tests/BlackListMockProviderTrait.php @@ -33,8 +33,6 @@ protected function createMockedProvider($blacklisted) } /** - * @param array $loaders - * * @return ContainerInterface|object */ protected function createLoadersContainer(array $loaders) diff --git a/tests/P0wnedPassword/Request/ClientTest.php b/tests/P0wnedPassword/Request/ClientTest.php index bf3db72..fe93fa1 100644 --- a/tests/P0wnedPassword/Request/ClientTest.php +++ b/tests/P0wnedPassword/Request/ClientTest.php @@ -14,10 +14,10 @@ use GuzzleHttp\Psr7\Request; use GuzzleHttp\Psr7\Response; use Http\Client\HttpClient; -use Rollerworks\Component\PasswordStrength\P0wnedPassword\Request\Client; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Psr\Log\NullLogger; +use Rollerworks\Component\PasswordStrength\P0wnedPassword\Request\Client; use Rollerworks\Component\PasswordStrength\P0wnedPassword\Request\Result; class ClientTest extends TestCase diff --git a/tests/Symfony27Compat.php b/tests/Symfony27Compat.php index 032bbc2..b1a44f0 100644 --- a/tests/Symfony27Compat.php +++ b/tests/Symfony27Compat.php @@ -9,8 +9,8 @@ * with this source code in the file LICENSE. */ -use Symfony\Component\Validator\Tests\Constraints\AbstractConstraintValidatorTest; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; +use Symfony\Component\Validator\Tests\Constraints\AbstractConstraintValidatorTest; if (!class_exists(ConstraintValidatorTestCase::class)) { class_alias(AbstractConstraintValidatorTest::class, ConstraintValidatorTestCase::class); diff --git a/tests/Validator/P0wnedPasswordValidatorTest.php b/tests/Validator/P0wnedPasswordValidatorTest.php index 047cbd9..58f12f0 100644 --- a/tests/Validator/P0wnedPasswordValidatorTest.php +++ b/tests/Validator/P0wnedPasswordValidatorTest.php @@ -11,11 +11,11 @@ namespace Rollerworks\Component\PasswordStrength\Tests\Validator; +use PHPUnit\Framework\MockObject\MockObject; use Rollerworks\Component\PasswordStrength\P0wnedPassword\Request\Client; use Rollerworks\Component\PasswordStrength\P0wnedPassword\Request\Result; use Rollerworks\Component\PasswordStrength\Validator\Constraints\P0wnedPassword; use Rollerworks\Component\PasswordStrength\Validator\Constraints\P0wnedPasswordValidator; -use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; class P0wnedPasswordValidatorTest extends ConstraintValidatorTestCase diff --git a/tests/Validator/PasswordRequirementsValidatorTest.php b/tests/Validator/PasswordRequirementsValidatorTest.php index b890775..f143c7e 100644 --- a/tests/Validator/PasswordRequirementsValidatorTest.php +++ b/tests/Validator/PasswordRequirementsValidatorTest.php @@ -60,8 +60,7 @@ public function testEmptyIsValid() /** * @dataProvider provideValidConstraints * - * @param string $value - * @param PasswordRequirements $constraint + * @param string $value */ public function testValidValueConstraints($value, PasswordRequirements $constraint) { @@ -75,9 +74,7 @@ public function testValidValueConstraints($value, PasswordRequirements $constrai /** * @dataProvider provideViolationConstraints * - * @param string $value - * @param PasswordRequirements $constraint - * @param array $violations + * @param string $value */ public function testViolationValueConstraints($value, PasswordRequirements $constraint, array $violations = []) { From 02bdb76a9a6143491eabaaa74e8245d7b7c62430 Mon Sep 17 00:00:00 2001 From: Sebastiaan Date: Sun, 1 Dec 2019 20:18:09 +0100 Subject: [PATCH 3/4] Disable PhpStan --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ca38af9..dafefa9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -50,6 +50,6 @@ script: mkdir /tmp/tmp-phpqa-$(id -u) export QA_DOCKER_COMMAND="docker run --init --interactive --tty --rm --user "$(id -u):$(id -g)" --volume /tmp/tmp-phpqa-$(id -u):/tmp --volume "$(pwd):/project" --workdir /project ${QA_DOCKER_IMAGE}" sh -c "${QA_DOCKER_COMMAND} php-cs-fixer fix -vvv --diff --dry-run" - sh -c "${QA_DOCKER_COMMAND} phpstan analyse" + #sh -c "${QA_DOCKER_COMMAND} phpstan analyse" #sh -c "${QA_DOCKER_COMMAND} vendor/bin/psalm --show-info=false" fi From af1cb9b0e2963de512d5a86217ca6e86aec5930b Mon Sep 17 00:00:00 2001 From: Sebastiaan Date: Sun, 1 Dec 2019 20:18:37 +0100 Subject: [PATCH 4/4] Remove PHP 7.4 (for now) --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index dafefa9..0cf441b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,8 @@ matrix: env: SYMFONY_REQUIRE='^4.4' - php: 7.3 env: SYMFONY_REQUIRE='^5.0' - - php: 7.4 - env: SYMFONY_REQUIRE='^5.0' +# - php: 7.4 +# env: SYMFONY_REQUIRE='^5.0' - php: 7.2 env: lint=1 services: