Page MenuHomePhabricator

Develop a JavaScript-centric approach to onboarding new developers
Closed, DeclinedPublic

Assigned To
None
Authored By
Sophivorus
Oct 23 2016, 3:56 AM
Referenced Files
None
Tokens
"Like" token, awarded by Jan_Dittrich."Like" token, awarded by bearND."Orange Medal" token, awarded by Krinkle."Mountain of Wealth" token, awarded by Jdlrobson."Like" token, awarded by Bawolff."Like" token, awarded by Racso.

Description

Type of activity: Pre-scheduled session
Main topic: How to grow our technical community

The problem

JavaScript is one of the most popular programming languages of today, yet its role on Wikimedia projects is small, underestimated, neglected and highly disorganized. How can we gather, coordinate and grow a community that can unleash all the potential of this web technology?

Expected outcome

  • Better documentation on the best current practices to develop JavaScript code for the Wikimedia projects
  • A roadmap of what needs to be done to make JavaScript development as pleasant and efficient as possible
    • Improve the JavaScript API

Links

Event Timeline

I've worked on Scribunto/JS as well, which would let you use JavaScript to write templates on Mediawiki. Same general aim: take advantage of the large and active JavaScript community.

See also https://github.com/cscott/node-mediawiki-express, which embeds all of mediawiki inside a node.js runtime. An approach like T114457: [RFC] Use `npm install mediawiki-express` as basis for all-in-one install of MediaWiki+services would let you mix JavaScript and PHP more liberally inside mediawiki, eroding some of the barrier between "server side", "client side" and "gadget" code.

At the editing offsite we also discussed (in general) ways to lower the barrier between "community developed code" and "production quality code". Having community members develop features as gadgets using client-side javascript currently means they typically have to be rewritten from scratch as an extension in server-side PHP before they can be hosted in production. It would be desirable to converge these different programming models somehow.

@Sophivorus this proposal is gaining popularity but, as far as I am aware, you are not able to participate at the Summit. What should we do?

@Qgil I think you should re-consider my scholarship request! Short of that, if the topic is so popular, someone may volunteer to do the pre-scheduled session instead of me, and I can participate remotely.

@Qgil I think you should re-consider my scholarship request!

That process is now closed, and I would not count on that.

Short of that, if the topic is so popular, someone may volunteer to do the pre-scheduled session instead of me, and I can participate remotely.

Yes, that make sense. Summit pre-scheduled sessions are supposed to have prior ongoing discussions. If this discussion is happening in the next days, then it should not be difficult to find a facilitator.

Meanwhile, I think having the proposal unassigning will help encouraging someone to step in (as proposals without anyone assigned will not be pre-scheduled). Maybe one day we will have sessions lead by someone remotely, but I don't think we are ready for that yet.

Any volunteers willing to take the role of session facilitator?

Today is the deadline Summit proposals aiming to be pre-scheduled to proof active interest. This proposal hasn't got any ongoing discussion. It still might be a good candidate for an Unconference session.

I considered gathering some people to talk about possible improvements of the gadget creation and maintenance. (This was triggered by some of my recent research on workflows on Commons – seemingly a huge part of the work is done only via gadgets). Am I right assuming that this session is rather similar in its aims?

Aside of Javascript itself I was thinking about stable APIs, stable and defined places in the UI to add custom GUI and documentation.

@Sophivorus Hey! As developer summit is less than four weeks from now, we are working on a plan to incorporate the ‘unconference sessions’ that have been proposed so far and would be generated on the spot. Thus, could you confirm if you plan to facilitate this session at the summit? Also, if your answer is 'YES,' I would like to encourage you to update/ arrange the task description fields to appear in the following format:

Session title
Main topic
Type of activity
Description Move ‘The Problem,' ‘Expected Outcome,' ‘Current status of the discussion’ and ‘Links’ to this section
Proposed by Your name linked to your MediaWiki URL, or profile elsewhere on the internet
Preferred group size
Any supplies that you would need to run the session e.g. post-its
Interested attendees (sign up below)

  1. Add your name here

We will be reaching out to the summit participants next week asking them to express their interest in unconference sessions by signing up.

To maintain the consistency, please consider referring to the template of the following task description: https://phabricator.wikimedia.org/T149564.

@srishakatux Hi, thanks but even though I'd love to, I won't be able to
attend the Summit (read comments above). Some weeks ago I unassigned myself
from this task and we're waiting for someone else to take over it.
I will try to participate remotely though, but I will be cycling through
Patagonia around those dates, so no promises.
Kind regards,

@Sophivorus okay! no worries :) I missed the comments above.

Qgil triaged this task as Low priority.Dec 20 2016, 7:01 AM

I think this topic is very relevant to our work even if the upcoming Summit doesn't seem to be the right time and place. I am moving this task to the Developer-Advocacy backlog for now. We can discuss how to move forward. Maybe an online meeting around February, or purely online discussion? The goal is to connect better JavaScript developers with our projects.

I think this topic is very relevant to our work even if the upcoming Summit doesn't seem to be the right time and place. We can discuss how to move forward. Maybe an online meeting around February, or purely online discussion? The goal is to connect better JavaScript developers with our projects.

Would anyone be willing and have the time to lead such an effort?
( https://www.mediawiki.org/wiki/Good_meetings and https://www.mediawiki.org/wiki/Meeting_best_practices_(including_remote_staff) might come handy. )

A JavaScript-centric approach to onboarding new developers is still needed... I wonder how @Sophivorus or anyone else interested could contribute to this goal without us Developer-Advocacy being a bottleneck (or actually being supportive, of course).

Aklapper renamed this task from How to unleash the power of JavaScript to Develop a JavaScript-centric approach to onboarding new developers.Oct 7 2017, 6:32 PM

Note to myself: Was wondering about potential places / communication channels here; Quiddity pointed out #wikimedia-cssjs on Freenode IRC.

Dropping my link collection here to not open yet another task:

For the records, I opened yet another task in T245491: Clean up / improve Gadget tutorial related pages on mediawiki.org for these links, and that task is resolved now.

Aklapper updated the task description. (Show Details)
Aklapper removed subscribers: Gilles, Jonas.

Dropping my link collection here to not open yet another task:
[...]
^ That stuff needs cleanup and consolidation first. That's my point of view.

For the records, that got covered by T245491: Clean up / improve Gadget tutorial related pages on mediawiki.org; followup is T307013: Gadget tutorial.

TBurmeister subscribed.

Developer Advocacy has created and continues to curate lists of projects by programming language:

...but we only direct people to projects that have clear contributing guidelines and can work effectively with newcomers and volunteers. That list is small, which is a larger problem outside the scope of this task. I have filed T321844 to track potential future work Dev Advocates could do to try to grow this list of projects.

There is also https://www.mediawiki.org/wiki/JavaScript, and of course it's possible to search repos by language, but that is not a happy path to onboarding as a new contributor, since you risk running into outdated or broken code with no one to help you and no one willing or able to review patches, etc. One can also search for tools that use Javascript in Toolhub, but again, whether the results correlate to projects that welcome newcomers or any volunteer contributions is the larger issue. After discussion among Dev Advocacy team, we're declining this task as we have resolved the parts of it that we can, and the other issues are tracked in the separate, aforementioned tasks.