minkphp/Mink

New release for providing Symfony 4 support

adiq opened this issue ยท 41 comments

adiq commented

It would be great to release new version of Mink to provide Symfony 4 support.

pamil commented

Is there anything that needs to be done to tag a new release?

adiq commented

I think there is nothing to do, as 808702d fixes the dependencies problem. I'll try to test it on real project and will let you know.

stof commented

Well, before making new releases for Mink packages, I would like to make CI green for the different drivers (IIRC, the Selenium2Driver CI has issues currently)

@adiq did you manage to get Sessions to work?

I'm getting:

Specify session name to get

See: Behat/MinkExtension#321

and is $sessions (https://github.com/minkphp/Mink/blob/master/src/Mink.php#L36) is actually empty... :/

I'm getting same error Specify session name to get (InvalidArgumentException) . Any update?

adiq commented

I will look into this when I will have some spare time. Did you try to revert mentioned commit and see if the issue persists?

I got past that error by adding the line below

default:
  suites:
    default:
      paths: ["%paths.base%/features/temp/home.feature"]
      local_screenshots: false      
      contexts: [ThinkWellContext]

  extensions:
    Behat\MinkExtension:
      browser_name: 'chrome'
      base_url: https://twlw.wpengine.com      
      default_session: cross_browser_testing  #### Added this line
      cross_browser_testing:

Isn't the CI green? I can't see any error.

@DonCallisto , in the #757 (comment) @stof meant driver repos. Almost all of them are red currently.

Got it, so we should try to fix them IIUC

Any release planned yet ? It hurts me to require a package as dev-master

Nothing has changed since #757 (comment). I could really use some help on getting those driver tests green again.

I got past that error by adding the line below

default:
  suites:
    default:
      paths: ["%paths.base%/features/temp/home.feature"]
      local_screenshots: false      
      contexts: [ThinkWellContext]

  extensions:
    Behat\MinkExtension:
      browser_name: 'chrome'
      base_url: https://twlw.wpengine.com      
      default_session: cross_browser_testing  #### Added this line
      cross_browser_testing:

That line doesn't seem to do the trick.
I've created a repo that demonstrates the issue: https://github.com/kochen/behat-mink-session (with travis-ci).

This is blocking every projects using symfony/flex with the composer extra config symfony.require: "4.2.*"

According to what @stof stated here #757 (comment), this requires the following issues to be fixed:

Not sure I get why it needs to wait for issues in selenium driver and zombie driver to be fixedโ€ฆ
I think a lot of people now use Mink with the chrome headless driver.

Also, I think that making mink not installable on sf4 is quite like dooming Mink (and so Behat) for the Symfony community :/

BigZ commented

definitely. drivers are suggestions, not dependencies. nothing ties the drivers and the release together as i see it. It really is bad for both mink, behat and symfony that sf4 and mink aren't compatible.
Software going to production cannot possibly set minimum stability to something else than stable

pamil commented

@BigZ I agree with the meaning of your comment though Mink should be a development dependency so there's no effect on production environment whatsoever.

Dear friends,

We are encountering this error when using Symfony 4.3 when using the flex configuration "4.3.*". Similar to what julien described above.

  • behat/mink v1.7.1 requires symfony/css-selector ~2.1|~3.0 -> no matching package found.
  • behat/mink v1.7.0 requires symfony/css-selector ~2.1 -> no matching package found.
  • Installation request for behat/mink ^1.7 -> satisfiable by behat/mink[v1.7.0, v1.7.1].

Could this be picked up as part of this ticket? Thanks!

Is there any progress expected soon? Those incompatibilities are really blocking ci pipelines, if you rely on those tests before deploying to prod!

BigZ commented

i'm using my own fork on the meantime, but it's quite alarming to see no answer from the maintainers. Any input @stof @everzet @aik099 ?

@BigZ as you can easily see by yourself, @stof is the only one that's quite still active in open source.
My guess is, as I already saw Stof taking a step back from some projects he was following (like Prophecy for instance), he's focusing only on some kind of projects (maybe the ones with more download, more active contributors overall, more ... whatever; it's only a guess).
The only alarming thing is that if current owners can't follow anymore their projects - that's quite an understendable matter from my standpoint - should try to find someone else who can take the projects back to life.
But, maybe, I'm missing the bigger picture so is just a speculation of mine.

@BigZ @adiq @aik099 are you all directly requiring behat/mink: "1.7" in your projects?

@DonCallisto , @kochen , @BigZ : As a maintainer I review PRs, but IMO for PR to be merged it needs to be reviewed by 2 maintainers at least.

If I'm not mistaken, then:

  • Selenium2 driver - has PR to make tests green (in review), that also changes min PHP version to 7.x for that driver
  • Zombie driver - build is failing

Other non-deprecated drivers have successful builds.

@aik099 my question was more related to the actual usage and to better understand the requiement for this version bump (cause in the general sense it works with Symfony 4 just fine).

The interesting question to you would be:
are there 2 active maintainers in this project?

As a maintainer I review PRs, but IMO for PR to be merged it needs to be reviewed by 2 maintainers at least.

I totally agree with this but if no other mantainers are active, that basically means that the project is already died.

Moreover I agree with this comment #757 (comment) but I'm still not sure to have the complete picture so I can possibly miss something.

So what does this discussion basically mean. Shall we move away from behat tests in symfony context, because there is no one who like to maintain this project? Or do I oversee other options to make behat tests run? Any opinions?

Actually we can make all people happy here.

Instead of using approach, where driver releases must be in sync with Mink releases itself (suggested in #757 (comment)) we can use different approach: drivers and Mink itself are released independently as long as no BC breaks in driver API happen.

If that sounds good enough we need to:

  1. inspect all commits made since last release to create change log and look for BC breaks
  2. depending on BC break presence we decide to make new release as 1.7.2 (no BC breaks) or 2.0.0 (has BC breaks)

P.S.
That would make people in this discussion happy even with 1 semi-active maintainer.

@aik099 or we tag it has 2.0.0 even without BC breaks and we sail to a fresh (re)start.

stof commented

if we have no BC breaks, we should not tag it as 2.0. That would make it painful for users, as any library depending on Mink would have to be updated first to allow the new major version, without any need for a major version.

BigZ commented

@BigZ @adiq @aik099 are you all directly requiring behat/mink: "1.7" in your projects?

i use dev-master

we can use different approach: drivers and Mink itself are released independently as long as no BC breaks in driver API happen

yes please. it's in the composer "suggest section" and mink is not tied to a specific version of them.

if we have no BC breaks, we should not tag it as 2.0. That would make it painful for users, as any library depending on Mink would have to be updated first to allow the new major version, without any need for a major version.

Definitely. but we have what looks like a BC break there v1.7.1...master#diff-b5d0ee8c97c7abd7e3fa29b9a27d1780L19

(css selector version is set to a minimum of 2.7 when it was 2.1 before)

It's the only one i found, tho. and it might be easy to fix.

adiq commented

@kochen Sorry for the late response. Currently, I am using dev-master pinned to a specific commit for better stability. The release is not crucial, but I guess everyone would prefer to use versioned tag then branch even if it's development dependency only.

Ping me if I could be helpful in some way here ๐Ÿ˜‰

pacid commented

I am also using dev-master now. Thanks @adiq.
Here's my working set of packages that does not cause conflicts with SF 4.3.8
https://pastebin.com/9q6niy4q

pamil commented

@BigZ requiring a higher version of a dependency is not a BC break - if you're stuck on CSS Selector 2.1, then Mink won't upgrade, so nothing will break. It's same for PHP version: https://www.doctrine-project.org/2017/07/25/php-7.1-requirement-and-composer.html

However, it's not a good practice to change requirements within patch releases (eg. 1.0.x), because dependants should be able to upgrade without any problems if a security release is published.

Therefore it should be possible to just tag a new minor version.

Meanwhile also sf5 is out there

@stof @aik099 what's holding us from creating new release?
Build on MinkSelenium2Driver is almost green. Seems that it got broken recently:

https://travis-ci.org/minkphp/MinkSelenium2Driver/builds/639627599?utm_source=github_status&utm_medium=notification

All the community really wants to move forward. Let's make americaMink great again!

If maintainers feel that they have enough of supporting Mink organization, I'd like to volunteer, so please grant permissions.

pamil commented

If anyone needs to install it now, I forked several Mink-related repos to FriendsOfBehat and made their build passing for Symfony ^4.4|^5.0.

https://github.com/FriendsOfBehat/Mink
https://github.com/FriendsOfBehat/MinkExtension
https://github.com/FriendsOfBehat/MinkBrowserKitDriver

You can install them as friends-of-behat/mink, friends-of-behat/mink-extension and friends-of-behat/mink-browserkit-driver packages and they will replace corresponding original packages, so that dependencies resolving will still work if some other packages require the original ones.

Overall, it'd be best if someone could take care of Mink-related libraries in their source repositories, please give me a ping when it supports Symfony 5 so I can abandon my forks.

@stof @aik099 what's holding us from creating new release?
Build on MinkSelenium2Driver is almost green. Seems that it got broken recently:

https://travis-ci.org/minkphp/MinkSelenium2Driver/builds/639627599?utm_source=github_status&utm_medium=notification

All the community really wants to move forward. Let's make americaMink great again!

If maintainers feel that they have enough of supporting Mink organization, I'd like to volunteer, so please grant permissions.

@oleg-andreyev , for me personally it's time. I no longer can afford to spent hours of my personal time, I've used to before, on OpenSource. I can somehow allocate 1-2 hours a week and not even in each week.

To move things forward (my personal view of the situation):

  1. an agreement in #787 must be reached
  2. once that done we can drop support for some PHP versions and remove any workarounds for supporting different PHPUnit versions that were only working on removed PHP versions
  3. then we can focus on adding support for new Symfony component versions
  4. then we can try fixing builds on every supported PHP version
  5. then we finally can release Mink & drivers so avoid people using forks instead of main repo
  6. release would hopefully would make Drupal users happy

To make project maintenance harder PRs are coming in, that do the same things in different ways, e.g.:

  • removal of non-supported (by php.net) PHP versions
  • adding support for new Symfony versions
  • adding support for PHPUnit versions

There is no clear vector that community can use to help moving project forward.

// cc @stof

BigZ commented

finally done, 2 years later B) thanks @stof !
Now waiting for phpunit 9 support :D

stof commented

Mink does not have a PHPUnit dependency. So I don't see the issue here (Mink uses PHPUnit by itself, but that has no impact on projects using Mink).

stof commented

I'm closing this ticket, as Mink 1.8 has been released (and discussions about Behat extensions are out of the scope of this repo)