FriendsOfPHP / Goutte

Goutte, a simple PHP Web Scraper
MIT License
9.26k stars 1.01k forks source link

PHP 8 support #429

Closed goba closed 3 years ago

goba commented 3 years ago

Goutte is one of the few Drupal 9.1 dependencies left that does not yet support PHP 8. It would be great to start running CI with PHP 8 to see what needs to be changed.

fabpot commented 3 years ago

As Goutte is empty now, I suppose that we are talking about Symfony instead:


namespace Goutte;

use Symfony\Component\BrowserKit\HttpBrowser;

/**
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Client extends HttpBrowser
{
}
goba commented 3 years ago

Hm, Drupal 9.1 depends on fabpot/goutte 3.3.0 indirectly.

$ composer why fabpot/goutte
behat/mink-goutte-driver  v1.2.1  requires  fabpot/goutte (~1.0.4|~2.0|~3.1)  
$ composer why behat/mink-goutte-driver
drupal/drupal  9.1.x-dev  requires (for development)  behat/mink-goutte-driver (^1.2)  

I guess we need to convince behat/mink-goutte-driver then to stop depending on fabpot/goutte?

fabpot commented 3 years ago

I can do changes on the latest 3.3 version if that could help; I just need to know what does not work right now to evaluate the amount of work.

goba commented 3 years ago

Looks like the only way to get PHP 8 into the travis file is to use the "master" version. As per https://travis-ci.community/t/php-8-0-missing/10132 it is not yet available as its own version. Others added it as "nightly" also https://github.com/pimcore/pimcore/pull/7096/files

andypost commented 3 years ago

Better to use 'nightly' as it most used within php extensions

goba commented 3 years ago

Alex Pott suggested we look into moving to https://packagist.org/packages/behat/mink-browserkit-driver instead which does not depend on Goutte (and itself is a dependency of behat/mink-goutte-driver already). Looking into that now. If that works out, there is nothing to change with Goutte. Thanks for the quick response @fabpot.

goba commented 3 years ago

Exploring untying Drupal 9.1 from Goutte entirely at https://www.drupal.org/project/drupal/issues/3176655 which sounds like is the best way forward either way.

alexpott commented 3 years ago

@fabpot you wrote

I can do changes on the latest 3.3 version if that could help; I just need to know what does not work right now to evaluate the amount of work.

That would be fantastic. We've run the entire Drupal test suite on PHP 8 using v3 Goutte on PHP 8 and there are no problems. I've run the Goutte v3 test suite locally on PHP 8 and there are no issues either. I've created #432 that hopefully will run PHP 8 tests on something close to the v3 - but there's no v3 branch to target.

fabpot commented 3 years ago

v3.3.1 has just been released to "support" PHP 8.

goba commented 3 years ago

@fabpot Thanks a lot! This allows us to cleanly update for PHP 8 compatibility in Drupal 9.1 without the need to do a Goutte major version update or remove Goutte use entirely.