PhantomJS 1.9.6 vs 1.9.7: what went wrong?
tl;dr; Latest stable release of PhantomJS is 1.9.7, and you should probably go and download it. It contains GhostDriver 1.1.0 “Banquo”, and that’s it.
1.9.6, released not more than 2 weeks ago (1 week?), was a coordination went wrong and I take part of the responsibility for it. Just discard that release.
What’s the long story?
So, for a few days I was helping with testing and refining the
new cookiejar
module (#11535)
for PhantomJS that Joseph Rollinson (jtrollinson)
contributed.
I’m very interested in this module because it allows to instantiate multiple
Cookie Jar objects instead of having all the WebPage object use the same jar.
Such feature would allow GhostDriver to finally support
Session Isolation (#170), a long
overdue feature.
I had just released GhostDriver 1.1.0, and so I was pretty much all setup to do an extra release. Having that feature supported would make PhantomJS/GhostDriver play better with Selenium Grid, allowing to register more than 1 session against one browser process instance.
So, once the cookijar
thing was merged, I cut
GhostDriver 1.1.1 “Okiku”
and promptly made
a PR against PhantomJS to merge that in.
Ariya was so kind to wait for me to do that and cut a minor release of
PhantomJS: in his intention just bugfixes and latest GhostDriver.
Little he knew that latest GhostDriver depended on the new cookiejar
feature.
So, when he prepared the release branch (by git cherry-pick
-ing), left out
the cookiejar
module, but included GhostDriver 1.1.1.
Result? KA-BOOM!
Lesson Learned
Next time I decide to add support to a major feature (even if it’s not in my direct project but the one I’m based upon), I should increase the minor version number or even the major (depending on the case).
If I had done that, Ariya would have known that it wasn’t just a minor fix in GhostDriver, and this mess would have been avoided.
Happy Ghosting!