From 9810bf558a6e965a66fb32e23095ff92306d37c2 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 19 May 2020 12:19:14 +0200 Subject: [PATCH 1/9] Drop support for PHP 7.0 --- .travis.yml | 1 - CHANGELOG | 2 +- composer.json | 2 +- doc/intro.rst | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8fbf6e66c..ab30adc99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,6 @@ script: ./vendor/bin/simple-phpunit jobs: fast_finish: true include: - - php: 7.0 - php: 7.1 - php: 7.2 - php: 7.3 diff --git a/CHANGELOG b/CHANGELOG index b49a4c389..21d3162c2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ # 1.43.0 (2020-XX-XX) - * Drop PHP 5.5 and 5.6 support + * Drop PHP 5.5 5.6, and 7.0 support * Fix ambiguous syntax parsing # 1.42.5 (2020-02-11) diff --git a/composer.json b/composer.json index 35041b33b..95f0781a2 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ } ], "require": { - "php": ">=7.0", + "php": "^7.1.3", "symfony/polyfill-ctype": "^1.8" }, "require-dev": { diff --git a/doc/intro.rst b/doc/intro.rst index 1f52c80a8..2693846e0 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -26,7 +26,7 @@ Slim, Yii, Laravel, and Codeigniter — just to name a few. Prerequisites ------------- -Twig needs at least **PHP 5.5.0** to run. +Twig needs at least **PHP 7.1.3** to run. Installation ------------ From 914d945e94cbdef611f1587ebd546eec0ccf67a7 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 14 May 2020 14:08:54 +0200 Subject: [PATCH 2/9] Add PHP 8 / nightly in Travis matrix --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index ab30adc99..5b9af3a57 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ before_install: install: - travis_retry composer install + - if [[ $TRAVIS_PHP_VERSION = nightly ]]; then phpenv global 7.1; ./vendor/bin/simple-phpunit install; phpenv global nightly; fi script: ./vendor/bin/simple-phpunit @@ -29,6 +30,8 @@ jobs: - php: 7.2 - php: 7.3 - php: 7.4 + - php: nightly + env: SYMFONY_PHPUNIT_VERSION=7.2 - stage: integration tests php: 7.3 script: ./drupal_test.sh From b952011f95eb04e6c08435a5a0c2abfb6b85be93 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 19 May 2020 10:58:53 +0200 Subject: [PATCH 3/9] Install the phpunit-bridge with PHP 7.4 when testing nightly --- .travis.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5b9af3a57..bda0ce9ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: php -dist: trusty +dist: xenial sudo: false @@ -19,7 +19,14 @@ before_install: install: - travis_retry composer install - - if [[ $TRAVIS_PHP_VERSION = nightly ]]; then phpenv global 7.1; ./vendor/bin/simple-phpunit install; phpenv global nightly; fi + - | + # install the phpunit-bridge with PHP 7.4 when testing nightly + if [[ $TRAVIS_PHP_VERSION = nightly ]]; then + (cd / && wget https://storage.googleapis.com/travis-ci-language-archives/php/binaries/ubuntu/16.04/x86_64/php-7.4.tar.bz2 -O - | tar -xj) + phpenv global 7.4; + ./vendor/bin/simple-phpunit install; + phpenv global nightly; + fi script: ./vendor/bin/simple-phpunit From 6a0ab744d2ae6686fae95071d2f54be2a729ff2c Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 18 May 2020 10:10:52 +0200 Subject: [PATCH 4/9] Fix PHP 8 compat --- .travis.yml | 1 - CHANGELOG | 1 + composer.json | 3 ++- src/Node/EmbedNode.php | 2 +- src/Node/Expression/BlockReferenceExpression.php | 5 +---- src/Node/Expression/CallExpression.php | 3 ++- src/Node/ForNode.php | 2 +- src/Node/IfNode.php | 2 +- src/Node/IncludeNode.php | 2 +- src/Node/WithNode.php | 2 +- tests/Fixtures/regression/simple_xml_element.test | 2 +- tests/Fixtures/tests/in.test | 2 -- tests/Node/Expression/CallTest.php | 4 ++++ 13 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index bda0ce9ef..1f929bf45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,6 @@ jobs: - php: 7.3 - php: 7.4 - php: nightly - env: SYMFONY_PHPUNIT_VERSION=7.2 - stage: integration tests php: 7.3 script: ./drupal_test.sh diff --git a/CHANGELOG b/CHANGELOG index 21d3162c2..b0266ca04 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ # 1.43.0 (2020-XX-XX) + * Fix PHP 8 compatibility * Drop PHP 5.5 5.6, and 7.0 support * Fix ambiguous syntax parsing diff --git a/composer.json b/composer.json index 95f0781a2..b6310e4f7 100644 --- a/composer.json +++ b/composer.json @@ -5,6 +5,7 @@ "keywords": ["templating"], "homepage": "https://twig.symfony.com", "license": "BSD-3-Clause", + "minimum-stability": "dev", "authors": [ { "name": "Fabien Potencier", @@ -23,7 +24,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "symfony/polyfill-ctype": "^1.8" }, "require-dev": { diff --git a/src/Node/EmbedNode.php b/src/Node/EmbedNode.php index 05051ecec..dde3db1bd 100644 --- a/src/Node/EmbedNode.php +++ b/src/Node/EmbedNode.php @@ -23,7 +23,7 @@ use Twig\Node\Expression\ConstantExpression; class EmbedNode extends IncludeNode { // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module) - public function __construct($name, $index, AbstractExpression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null) + public function __construct($name, $index, ?AbstractExpression $variables, $only, $ignoreMissing, $lineno, $tag = null) { parent::__construct(new ConstantExpression('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag); diff --git a/src/Node/Expression/BlockReferenceExpression.php b/src/Node/Expression/BlockReferenceExpression.php index 0a56849c7..3a2c5cee7 100644 --- a/src/Node/Expression/BlockReferenceExpression.php +++ b/src/Node/Expression/BlockReferenceExpression.php @@ -22,10 +22,7 @@ use Twig\Node\Node; */ class BlockReferenceExpression extends AbstractExpression { - /** - * @param Node|null $template - */ - public function __construct(\Twig_NodeInterface $name, $template = null, $lineno, $tag = null) + public function __construct(\Twig_NodeInterface $name, ?Node $template, $lineno, $tag = null) { if (\is_bool($template)) { @trigger_error(sprintf('The %s method "$asString" argument is deprecated since version 1.28 and will be removed in 2.0.', __METHOD__), E_USER_DEPRECATED); diff --git a/src/Node/Expression/CallExpression.php b/src/Node/Expression/CallExpression.php index d202a7395..bd217a823 100644 --- a/src/Node/Expression/CallExpression.php +++ b/src/Node/Expression/CallExpression.php @@ -254,7 +254,8 @@ abstract class CallExpression extends AbstractExpression } if ($isVariadic) { $argument = end($parameters); - if ($argument && $argument->isArray() && $argument->isDefaultValueAvailable() && [] === $argument->getDefaultValue()) { + $isArray = $argument && $argument->getType() && 'array' === (\PHP_VERSION_ID >= 70100 ? $argument->getType()->getName() : (string) $argument->getType()); + if ($isArray && $argument->isDefaultValueAvailable() && [] === $argument->getDefaultValue()) { array_pop($parameters); } else { $callableName = $r->name; diff --git a/src/Node/ForNode.php b/src/Node/ForNode.php index 49409a39b..9b141ceab 100644 --- a/src/Node/ForNode.php +++ b/src/Node/ForNode.php @@ -25,7 +25,7 @@ class ForNode extends Node { protected $loop; - public function __construct(AssignNameExpression $keyTarget, AssignNameExpression $valueTarget, AbstractExpression $seq, AbstractExpression $ifexpr = null, \Twig_NodeInterface $body, \Twig_NodeInterface $else = null, $lineno, $tag = null) + public function __construct(AssignNameExpression $keyTarget, AssignNameExpression $valueTarget, AbstractExpression $seq, ?AbstractExpression $ifexpr, ?\Twig_NodeInterface $body, ?\Twig_NodeInterface $else, $lineno, $tag = null) { $body = new Node([$body, $this->loop = new ForLoopNode($lineno, $tag)]); diff --git a/src/Node/IfNode.php b/src/Node/IfNode.php index 4836d91f0..417702a6c 100644 --- a/src/Node/IfNode.php +++ b/src/Node/IfNode.php @@ -21,7 +21,7 @@ use Twig\Compiler; */ class IfNode extends Node { - public function __construct(\Twig_NodeInterface $tests, \Twig_NodeInterface $else = null, $lineno, $tag = null) + public function __construct(?\Twig_NodeInterface $tests, ?\Twig_NodeInterface $else, $lineno, $tag = null) { $nodes = ['tests' => $tests]; if (null !== $else) { diff --git a/src/Node/IncludeNode.php b/src/Node/IncludeNode.php index 544db81ea..d0b6184c8 100644 --- a/src/Node/IncludeNode.php +++ b/src/Node/IncludeNode.php @@ -22,7 +22,7 @@ use Twig\Node\Expression\AbstractExpression; */ class IncludeNode extends Node implements NodeOutputInterface { - public function __construct(AbstractExpression $expr, AbstractExpression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null) + public function __construct(AbstractExpression $expr, ?AbstractExpression $variables, $only, $ignoreMissing, $lineno, $tag = null) { $nodes = ['expr' => $expr]; if (null !== $variables) { diff --git a/src/Node/WithNode.php b/src/Node/WithNode.php index f5ae9246d..d291dcf9a 100644 --- a/src/Node/WithNode.php +++ b/src/Node/WithNode.php @@ -20,7 +20,7 @@ use Twig\Compiler; */ class WithNode extends Node { - public function __construct(Node $body, Node $variables = null, $only = false, $lineno, $tag = null) + public function __construct(Node $body, ?Node $variables, $only, $lineno, $tag = null) { $nodes = ['body' => $body]; if (null !== $variables) { diff --git a/tests/Fixtures/regression/simple_xml_element.test b/tests/Fixtures/regression/simple_xml_element.test index b6e62c8d7..ae633c881 100644 --- a/tests/Fixtures/regression/simple_xml_element.test +++ b/tests/Fixtures/regression/simple_xml_element.test @@ -1,7 +1,7 @@ --TEST-- Twig is able to deal with SimpleXMLElement instances as variables --CONDITION-- -version_compare(phpversion(), '5.3.0', '>=') +version_compare(phpversion(), '8.0', '<') --TEMPLATE-- Hello '{{ images.image.0.group }}'! {{ images.image.0.group.attributes.myattr }} diff --git a/tests/Fixtures/tests/in.test b/tests/Fixtures/tests/in.test index ac04e8d75..0ddaae94f 100644 --- a/tests/Fixtures/tests/in.test +++ b/tests/Fixtures/tests/in.test @@ -43,7 +43,6 @@ Twig supports the in operator {{ ''~dir_object in dir_object ? 'KO' : 'OK' }} {{ resource in [''~resource] ? 'KO' : 'OK' }} -{{ resource in [resource + 1 - 1] ? 'KO' : 'OK' }} {{ dir_object in [''~dir_object] ? 'KO' : 'OK' }} {{ 5 in 125 ? 'KO' : 'OK' }} @@ -106,7 +105,6 @@ OK OK OK -OK OK OK diff --git a/tests/Node/Expression/CallTest.php b/tests/Node/Expression/CallTest.php index 1ffb4c7b6..7672d58bd 100644 --- a/tests/Node/Expression/CallTest.php +++ b/tests/Node/Expression/CallTest.php @@ -59,6 +59,10 @@ class CallTest extends \PHPUnit\Framework\TestCase public function testResolveArgumentsWithMissingValueForOptionalArgument() { + if (\PHP_VERSION_ID >= 80000) { + $this->markTestSkipped('substr_compare() has a default value in 8.0, so the test does not work anymore, one should find another PHP built-in function for this test to work in PHP 8.'); + } + $this->expectException('\Twig\Error\SyntaxError'); $this->expectExceptionMessage('Argument "case_sensitivity" could not be assigned for function "substr_compare(main_str, str, offset, length, case_sensitivity)" because it is mapped to an internal PHP function which cannot determine default value for optional argument "length".'); From 8b1f0c7f7ebc2178492f2823132e406759fd79b5 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 19 May 2020 14:34:16 +0200 Subject: [PATCH 5/9] Fix integration tests --- .travis.yml | 1 + src/Node/Expression/CallExpression.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1f929bf45..e170c1833 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,7 @@ env: before_install: - phpenv config-rm xdebug.ini || return 0 + - echo memory_limit = -1 >> ~/.phpenv/versions/$TRAVIS_PHP_VERSION/etc/conf.d/travis.ini install: - travis_retry composer install diff --git a/src/Node/Expression/CallExpression.php b/src/Node/Expression/CallExpression.php index bd217a823..0459dae08 100644 --- a/src/Node/Expression/CallExpression.php +++ b/src/Node/Expression/CallExpression.php @@ -254,7 +254,7 @@ abstract class CallExpression extends AbstractExpression } if ($isVariadic) { $argument = end($parameters); - $isArray = $argument && $argument->getType() && 'array' === (\PHP_VERSION_ID >= 70100 ? $argument->getType()->getName() : (string) $argument->getType()); + $isArray = $argument && $argument->hasType() && 'array' === $argument->getType()->getName(); if ($isArray && $argument->isDefaultValueAvailable() && [] === $argument->getDefaultValue()) { array_pop($parameters); } else { From 36be0cd585f13784ad8805c3f8af8c5a56edaf2e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 19 May 2020 15:07:44 +0200 Subject: [PATCH 6/9] Bump version to 2.13 --- CHANGELOG | 4 ++-- composer.json | 2 +- src/Environment.php | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 66707ba98..7c2138c02 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ -# 2.12.6 (2020-XX-XX) +# 2.13.0 (2020-XX-XX) - * n/a + * Drop support for PHP 7.0 # 2.12.5 (2020-02-11) diff --git a/composer.json b/composer.json index 9ed20b6be..140fb96af 100644 --- a/composer.json +++ b/composer.json @@ -47,7 +47,7 @@ }, "extra": { "branch-alias": { - "dev-master": "2.12-dev" + "dev-master": "2.13-dev" } } } diff --git a/src/Environment.php b/src/Environment.php index 4888fad84..eee245e7a 100644 --- a/src/Environment.php +++ b/src/Environment.php @@ -38,11 +38,11 @@ use Twig\TokenParser\TokenParserInterface; */ class Environment { - const VERSION = '2.12.6-DEV'; - const VERSION_ID = 21206; + const VERSION = '2.13.0-DEV'; + const VERSION_ID = 21300; const MAJOR_VERSION = 2; - const MINOR_VERSION = 12; - const RELEASE_VERSION = 6; + const MINOR_VERSION = 13; + const RELEASE_VERSION = 0; const EXTRA_VERSION = 'DEV'; private $charset; From 655c7a531b731298c66b113dbba1aa14f0309c41 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 19 May 2020 15:09:00 +0200 Subject: [PATCH 7/9] Fix Travis --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index f3434a38a..5d05b16d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,12 @@ install: ./vendor/bin/simple-phpunit install; phpenv global nightly; fi + - (cd extra/cssinliner-extra && travis_retry composer install) + - (cd extra/html-extra && travis_retry composer install) + - (cd extra/inky-extra && travis_retry composer install) + - (cd extra/intl-extra && travis_retry composer install) + - (cd extra/markdown-extra && travis_retry composer install) + - ([[ $TRAVIS_PHP_VERSION < 7.2 ]] || (cd extra/string-extra && travis_retry composer install)) script: - ./vendor/bin/simple-phpunit From 2d58a54b4a6fa61dc46794b636c0c32924b33bd8 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 19 May 2020 15:12:25 +0200 Subject: [PATCH 8/9] Allow PHP 8 for extra packages --- extra/cssinliner-extra/composer.json | 2 +- extra/html-extra/composer.json | 2 +- extra/inky-extra/composer.json | 2 +- extra/intl-extra/composer.json | 2 +- extra/markdown-extra/composer.json | 2 +- extra/string-extra/composer.json | 2 +- extra/twig-extra-bundle/composer.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/extra/cssinliner-extra/composer.json b/extra/cssinliner-extra/composer.json index 133cdbc1a..98fd98329 100644 --- a/extra/cssinliner-extra/composer.json +++ b/extra/cssinliner-extra/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "tijsverkoyen/css-to-inline-styles": "^2.0", "twig/twig": "^2.4|^3.0" }, diff --git a/extra/html-extra/composer.json b/extra/html-extra/composer.json index 48e10f6ec..625b9c84c 100644 --- a/extra/html-extra/composer.json +++ b/extra/html-extra/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "symfony/mime": "^4.3|^5.0", "twig/twig": "^2.4|^3.0" }, diff --git a/extra/inky-extra/composer.json b/extra/inky-extra/composer.json index c8a0d02b1..5259fa508 100644 --- a/extra/inky-extra/composer.json +++ b/extra/inky-extra/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "lorenzo/pinky": "^1.0.5", "twig/twig": "^2.4|^3.0" }, diff --git a/extra/intl-extra/composer.json b/extra/intl-extra/composer.json index 3de076101..4a8a0bbe5 100644 --- a/extra/intl-extra/composer.json +++ b/extra/intl-extra/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "twig/twig": "^2.4|^3.0", "symfony/intl": "^4.3|^5.0" }, diff --git a/extra/markdown-extra/composer.json b/extra/markdown-extra/composer.json index 5633e1d61..a6058d70a 100644 --- a/extra/markdown-extra/composer.json +++ b/extra/markdown-extra/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "twig/twig": "^2.4|^3.0" }, "require-dev": { diff --git a/extra/string-extra/composer.json b/extra/string-extra/composer.json index 758386fc1..f1c281ae8 100644 --- a/extra/string-extra/composer.json +++ b/extra/string-extra/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.2.5", + "php": "^7.2.5|^8.0", "symfony/string": "^5.0", "twig/twig": "^2.4|^3.0" }, diff --git a/extra/twig-extra-bundle/composer.json b/extra/twig-extra-bundle/composer.json index 5f9c7413e..9223f50ad 100644 --- a/extra/twig-extra-bundle/composer.json +++ b/extra/twig-extra-bundle/composer.json @@ -14,7 +14,7 @@ } ], "require": { - "php": "^7.1.3", + "php": "^7.1.3|^8.0", "symfony/framework-bundle": "^4.3|^5.0", "symfony/twig-bundle": "^4.3|^5.0", "twig/twig": "^2.4|^3.0" From 9270d3e0e0e1a6d959cd9be7277adf05cf6505f4 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 19 May 2020 15:17:30 +0200 Subject: [PATCH 9/9] Allow dev versions --- composer.json | 1 + extra/cssinliner-extra/composer.json | 2 ++ extra/html-extra/composer.json | 2 ++ extra/inky-extra/composer.json | 2 ++ extra/intl-extra/composer.json | 2 ++ extra/markdown-extra/composer.json | 2 ++ extra/string-extra/composer.json | 2 ++ extra/twig-extra-bundle/composer.json | 2 ++ 8 files changed, 15 insertions(+) diff --git a/composer.json b/composer.json index 140fb96af..72e196d21 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,7 @@ "homepage": "https://twig.symfony.com", "license": "BSD-3-Clause", "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/cssinliner-extra/composer.json b/extra/cssinliner-extra/composer.json index 98fd98329..582529b4f 100644 --- a/extra/cssinliner-extra/composer.json +++ b/extra/cssinliner-extra/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "css", "inlining"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/html-extra/composer.json b/extra/html-extra/composer.json index 625b9c84c..f9d9ea3b8 100644 --- a/extra/html-extra/composer.json +++ b/extra/html-extra/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "html"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/inky-extra/composer.json b/extra/inky-extra/composer.json index 5259fa508..5628138f8 100644 --- a/extra/inky-extra/composer.json +++ b/extra/inky-extra/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "inky", "email", "emails"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/intl-extra/composer.json b/extra/intl-extra/composer.json index 4a8a0bbe5..4e2cd0a48 100644 --- a/extra/intl-extra/composer.json +++ b/extra/intl-extra/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "intl"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/markdown-extra/composer.json b/extra/markdown-extra/composer.json index a6058d70a..e3b957cbc 100644 --- a/extra/markdown-extra/composer.json +++ b/extra/markdown-extra/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "html", "markdown"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/string-extra/composer.json b/extra/string-extra/composer.json index f1c281ae8..9308782a5 100644 --- a/extra/string-extra/composer.json +++ b/extra/string-extra/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "html", "string", "unicode"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier", diff --git a/extra/twig-extra-bundle/composer.json b/extra/twig-extra-bundle/composer.json index 9223f50ad..67d8efb3d 100644 --- a/extra/twig-extra-bundle/composer.json +++ b/extra/twig-extra-bundle/composer.json @@ -5,6 +5,8 @@ "keywords": ["twig", "extra", "bundle"], "homepage": "https://twig.symfony.com", "license": "MIT", + "minimum-stability": "dev", + "prefer-stable": true, "authors": [ { "name": "Fabien Potencier",