downstream projects depend on the its development healthiness. We also
have a growing number of contributors. If it is fine for a user to
vent his anger, what do we tell to a contributor if he is frustated?
I don't have a direct answer, but a possible explanation on the
frustration; typical phantomjs users are frontend & backend Web
developers. They eventually know javascript, but then often don't know
C++ at all (like me). So contributing C++ code is a bit of hard for
many users, that's probably why they feel frustration having to rely
on someone else to make things happen.
And, sadly, the problem is going to get worse. Thanks to GhostDriver, PhantomJS is starting to get attention from Selenium WebDriver users. On the whole, this is good for both projects, but there is a significant portion of WebDriver users who routinely struggle with programming concepts that I, for one, take for granted.
One thing we constantly struggle with in the Selenium project are poor issue reports. Most of our (Selenium) issues occur against a specific HTML page, without which, it's impossible to reproduce. Many WebDriver issue reporters also "fire and forget," reporting the issue without bothering to check if further information is requested. When they do check, there is often resistance to providing the required information, even though the reasons for not providing it are usually not valid[1].
I don't have a magic bullet solution. Clear communication about the volunteer nature of the development team is one thing that should help a little. Having a set release schedule is a great start too, and I'm thrilled that PhantomJS is able to make that happen on a regular basis. As for the sense of entitlement some users feel that their pet issue should be fixed, and fixed right away, I don't know how to approach that without being rude.
Docs help, but only if they're read. Anyone passionate about poor documentation should be invited and encouraged to provide docs patches. The saying "patches welcome" need not only apply to functional code, but to documentation as well.
--Jim
[1] http://jimevansmusic.blogspot.com/2012/12/not-providing-html-page-is-bogus.html
And getting started guide "How to be involved" could be very helpful. As a side note, I've already thought about - create a blog to start writing about hacking or contributing to PhantomJS. Currently PhantomJS little closed to users. Only those who are beginning hacking and has knowledge of C++ and Qt can understand what is going on inside of PhantomJS. When user coming to get our help, he often get the answer: read the doc, please.
One thing we constantly struggle with in the Selenium project are poor issue reports. Most of our (Selenium) issues occur against a specific HTML page, without which, it's impossible to reproduce. Many WebDriver issue reporters also "fire and forget," reporting the issue without bothering to check if further information is requested. When they do check, there is often resistance to providing the required information, even though the reasons for not providing it are usually not valid[1].
--
You received this message because you are subscribed to the Google Groups "phantomjs" group.
Visit this group at http://groups.google.com/group/phantomjs?hl=en.
It seems that a lot of the user base is JavaScript savvy. It also seems that, as Nicolas has pointed out, much of our implementation is in C++. Therefore, I think the devs really should strive to implement as much as possible in JavaScript, leaving only the bear-minimum heavy lifting for C++. Then, it might be easier for them to pinpoint exactly what's wrong (5W1H).
--
Can we also agree upon a name for the PhantomJS primary context? I've heard/used many:
- PhantomJS outer space (POS? Hmm, maybe not.)
- PhantomJS outer context
- PhantomJS main context
- PhantomJS sandbox
- PhantomJS WebPage (while true based on implementation, this only ever confuses people more: "Do they mean WebPage? Or phantomjs.org?" Neither, of course.)
- etc.
~~James
Can we also agree upon a name for the PhantomJS primary context? I've
heard/used many:
- PhantomJS outer space (POS? Hmm, maybe not.)
- PhantomJS outer context
- PhantomJS main context
- PhantomJS sandbox
- PhantomJS WebPage (while true based on implementation, this only
ever confuses people more: "Do they mean WebPage? Or phantomjs.org
<http://phantomjs.org>?" Neither, of course.)
- etc.
~~James
On Jan 18, 2013 12:24 AM, "Ariya Hidayat" <ariya....@gmail.com
<mailto:ariya....@gmail.com>> wrote:
> PhantomJS is the complicated project, especially Qt-Webkit
bridge. And, as< BR> > Nicolas mentioned, most of the users are web developers. They
can do only
> one thing: use it, and report an issue. And getting started
guide "How to be
> involved" could be very helpful. As a side note, I've already
thought about
> - create a blog to start writing about hacking or contributing
to PhantomJS.
> Currently PhantomJS little closed to users. Only those who are
beginning
> hacking and has knowledge of C++ and Qt can understand what is
going on
> inside of PhantomJS. When user coming to get our help, he often
get the
> answer: read the doc, please.
> Of course, this is a speci al case. James Greene is doing an
> I don't have a direct answer, but a possible explanation on the
> frustration; typical phantomjs users are frontend & backend Web
> developers. They eventually know javascript, but then often don't know
> C++ at all (like me). So contributing C++ code is a bit of hard for
> many users, that's probably why they feel frustration having to rely
> on someone else to make things happen.
Realistically of course we won't ask the user to always try to fix the
bug himself. C++, especially in a large code base, is not everyone's
cup of tea.
> So at least if we want people to contribute more code to phantomjs, we
> should lower the barrier for those people - especially C++/Qt
> beginners - to get started with contributing C++ code. Well, that's
> not an easy task for sure… but a «beginner's guide to Qt & phantomjs»
> with eg. how to setup an IDE, where to find basic information on the
> framework, how to test a patch, etc. would be a nice start
Lowering the barrier makes sense to me. I'm confident there are
potential contributors/prospects which may benefit from a "big
picture" overview of the code base.