-
Notifications
You must be signed in to change notification settings - Fork 278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] New PHP min version for Mink and drivers #787
Comments
I agree with your version dropping idea. Considering every 5th issue created is about dropping PHP 5.x support with only argumentation, that they're EOL. That was no big motivation for me. Now once major consumers of Mink are dropping PHP 5 support as well and we don't want to stay behind it's only logical to support PHP 5.6+ only. I'm not sure how we can release minor version of Mink/drivers considering that some of merged PRs turned out to be features. But otherwise I like the idea to make a minor release with all the features that Drupal is currently using. |
@aik099 my idea is to release a new minor version of Mink (minor, not patch, precisely because we have features in them), and then drop support for old PHP only in the following minor version. |
@aik099 so your vote would go to use 5.6 as the new min version ? |
I would vote to use 7.0+ because Drupal already dropped 5.5 and 5.6 source, old releases of Drupal will be able to use old releases of Mink/drivers. |
Yes, it's 5.6 to allow people who missed PHP 7 upgrade (for whatever) still use new Mink features if they somehow manage to upgrade server/codebase to PHP 5.6. With |
I don't want to use this sed approach. The testsuite should be usable locally too. And we should not patch vendors to revert their types. That would be worse than staying on old versions. |
Not patching their code, but patching our code. Our test suite in But I agree, that in such approach test suite locally won't work. Having lots of classes for every BC breaking change in any of libraries we're using (e.g. PHPUnit) is the way to go then unfortunately. |
The ask for Drupal is:
It would be great if you could hold off on removing old php's until after the 1.8.0. You could make a 1.9.0 immediately after, and decommission whatever php's you thought best at that time. The code freeze for Drupal 8.8.0-alpha is 14 October; it's possible that 8.8.x might use a 1.9.0 release, but more likely this would be put off until 8.9.x. Also, regarding supporting complex combinations of dependencies, e.g. multiple versions of Symfony, multiple versions of phpunit, etc., you might want to consider Composer Test Scenarios. |
this is already the plan, see previous comments.
Our issue is not regarding testing the different scenarios. It is the complexity of making the same testsuite compatible with all these PHPUnit versions. |
PHPUnit is essentially forcing libraries to reduce their breadth of php support as a result of their own very tightly constrained support. Drupal had to do several 'crazy' things to make it work: https://git.drupalcode.org/project/drupal/commit/c9898ab As an aside, Drupal 9.0.x branch is open, and is starting at php7.2+ support, but may become 7.3+ |
@stof, what if we will:
|
Regarding #4, Symfony recently released a bunch of polyfills for phpunit that might be helpful to you. I will reiterate what I said above as well: it would be great if you could make a stable tag for the 1.7 sha that folks have been using as stable for years (and also in the mink-selenium2-driver), and also create a 1.7 branch. If rename your branch alias from 1.7.x-dev to 1.8.x-dev without doing this, you're going to break all of the Composer-managed Drupal 8 sites that exist. There's no need to wait for 1.8 to be perfect before making a tag on the code that's already in use. It would give folks time to make their projects safe before 1.8.x came out. |
Thanks @greg-1-anderson , I already see, that I've also noticed other interesting ideas in https://github.com/symfony/symfony/tree/master/src/Symfony/Bridge/PhpUnit/Legacy folder. Altering PHPUnit code to remove Locally I use PhpStorm to run the tests and it has it's own wrapper, which doesn't support (probably) usage of
Why having a branch named as version, as we did in https://github.com/minkphp/MinkSelenium2Driver isn't good enough? Packagist created correct alias and all developers using that alias were happy. |
The branch named after the version is sufficient to prevent all Composer-managed Drupal sites from breaking. Having a stable tag would also allow us to stop requiring |
@aik099 @stof we need to return on discussing this RFC.
|
It would be really swell to have a stable tag for the head of the 1.7.x branch so that we're not stuck with |
Did you have opportunity to make progress on this issue? I'm really sorry for press-ganging but the missing support for Symfony 5 is a huge blocker for my project. To add 2 cents to the topic: I'd advocate to keep things as simple as possible and just drop support for PHP < 7.2 (in a minor release, so fixes for 1.7.x can still be delivered without having to upgrade PHP). I'm not familiar with the code, but judging from this issue everything else seems overly complex, brittle, and time-consuming. |
I've forked this repository into You can temporarily replace this library with the fork like in this PR: Sylius/Sylius#11024. |
Not sure what the state of this Issue is, currently to support symfony 5 and newer php versions I created a BC Layer for the older PHP versions see #794. |
There is some discussions happening on various driver repos about dropping PH 5.3 support. This issue is about discussing a consolidated plan for the whole set of Mink repos, to be consistent.
Arguments to drop support:
void
return type in many places. Making our testsuite compatible with PHPUnit 8 will be a pain if we need to keep support for PHP < 7.1object
type, which requires PHP 7.2As we start dropping support for old versions, I suggest dropping more than just 5.3, to benefit from a cleanup (as we don't do it often). I suggest to at least drop 5.3 to 5.5, which will free us from old Travis infrastructure and from PHPUnit 4.8. Then, multiple suggestions are possible:
Another thing to take into account is that Mink is currently used as part of the Drupal ecosystem. Here is their support matrix (source):
As they are currently pinned on a dev version of Mink due to needing unreleased changes, we should avoid dropping support for these versions before the release (so that they can at least switch these branches to use our next stable release). The fact that Drupal 8.8 will still support PHP 7.0 might be an argument to keep support in Mink if they don't want to allow a range constraint (allowing to use an uptodate Mink on maintained PHP versions and the older release only on PHP 7.0). But we are not strongly tied to the Drupal ecosystem so this argument alone is not a full blocker.
@aik099 what is your mind on the new min version ?
The text was updated successfully, but these errors were encountered: