PhantomJS 1.9.6 vs 1.9.7: what went wrong?

  • ghostdriver • phantomjs • release • changes • git • misunderstanding
  • 315 words

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!

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!