Task #78322

Get rid of phantomjs

Added by Christian Kuhn over 4 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Tests
Target version:
Start date:
2016-10-17
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
8
PHP Version:
7.0
Tags:
Complexity:
nightmare
Sprint Focus:

Description

phantomjs is broken beyond all recognition.

The "erratic hang" we face in phantom since the beginnings is open for 2 years now: https://github.com/ariya/phantomjs/issues/12750

Reading that issue would be amusing if we wouldn't have to deal with it. The only way to deal with that issue seems to be our "current" build on bamboo based on nginx hosting for the acceptance tests, which doesn't trigger the bug - or at least less often.
However, this solution isn't cool since the setup is hard coded to that very test that is run. Switching to anything else lets the "erratic" random issue pop up again. Furthermore, it is nearly impossible to have that running in a stable way on any environment that is not as cleanly nailed down as our build infrastructure. Contributors working on ac tests are giving up in this area because they're unable to run the tests in a stable way.

Funnily, there finally has been a patch in phantom master 4 weeks ago that might maybe - if god is nice to us - actually fix that issue. Since there are however no nightly-builds or whatsoever, I thought about compiling this piece of software on my own. But the official documentation for that based on "python build.py" is hopelessly outdated. The main bulid script doesn't exist in phantom master at all.
This is because the project currently (for more than half a year) is in a progress of switching to new dependencies. The build system however is not documented at all.

Here is how they answer on according questions:

"Quick question, given that build.py is removed now how do we build at the moment?"
answer:
"@samlinbris See if you can familiarize yourself with Qt and/or consult a Qt expert."

Next to that (in case we would manage to compile the Qt application without docu) it is currently impossible to statically link phantom with all its dependencies. So basically, phantom will end up to link to whatever might be available on given system, so we're again in dependency hell.

QT itself (phantom is based on that) seems to have abandoned (parts of?) webKit, so phantom is even forced to maintain that part of the infrastructure on their own.

phantom currently has less than 2000 commits on github with 1.500 open issues https://github.com/ariya/phantomjs

The progress of the project is slow and they don't even manage to release bug fixes, there wasn't even a single commit to their "stable" 2.1 branch since release in Jan 2016.

I'll not waste time in this area anymore.

All-in-all it seems webkit headless testing is a dead end. I also found nothing on the net yet that may suite our needs as alternative.

I propose to get rid of phantom and better rely on browsers that work.

We'll have to investigate on how to circumvent this issue in a sane way. I'm close to setting up xvfb on our testing infrastructure and run the stuff with firefox, maybe. Or we switch to some external solution.

#2

Updated by Christian Kuhn over 4 years ago

  • Description updated (diff)
#3

Updated by Christian Kuhn over 4 years ago

  • Description updated (diff)
#4

Updated by Christian Kuhn over 4 years ago

  • Description updated (diff)
#5

Updated by Christian Kuhn over 4 years ago

  • Description updated (diff)
#6

Updated by Stefano Kowalke over 4 years ago

Did you read this statement of the maintainer?
https://github.com/ariya/phantomjs/issues/14541

#7

Updated by Christian Kuhn about 4 years ago

Sadly, this statement doesn't help us at all.

I considered asking for funding of that project to fix our issues,
but it seems to me that the project is so far away from anything usable and healthy
that this would be rather wasted.

#8

Updated by Gerrit Code Review about 4 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50281

#9

Updated by Gerrit Code Review about 4 years ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50281

#10

Updated by Christian Kuhn about 4 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
#11

Updated by Riccardo De Contardi over 3 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF