Page MenuHomePhabricator
Paste P3350


Authored by RobLa-WMF on Jul 6 2016, 10:04 PM.
Referenced Files
F4246080: ArchCom-RFC-2016W27-irc-E226.txt
Jul 6 2016, 10:04 PM
21:02:12 <TimStarling> #startmeeting RFC: Improve the per-programming-language listings for our tools
21:02:12 <wm-labs-meetbot`> Meeting started Wed Jul 6 21:02:12 2016 UTC and is due to finish in 60 minutes. The chair is TimStarling. Information about MeetBot at
21:02:12 <wm-labs-meetbot`> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
21:02:12 <wm-labs-meetbot`> The meeting name has been set to 'rfc__improve_the_per_programming_language_listings_for_our_tools'
21:02:54 <quiddity> Hi all.
21:02:58 <robla> #link
21:03:04 <TimStarling> #topic RFC: Improve the per-programming-language listings for our tools | Wikimedia meeting channel | Please note: Channel is logged and publicly posted (DO NOT REMOVE THIS NOTE) | Logs:
21:03:16 <SMalyshev> hi all
21:03:35 <MaxSem> do we have ops representatives here?
21:04:37 <robla> this is about getting a better sense of what our status quo is
21:04:50 <robla> (at least, that's what I'm hoping to get out of it)
21:04:53 * ostriches is idly watching
21:04:54 <quiddity> MaxSem, I beleive we're mainly (at least initially) focusing on the use-case of "how to support newcomer developers". We might (not up to me) get into the larger ops@ issue later on.
21:05:22 <quiddity> As I see it, the main issue is where (what page(s)) to direct newcomers to, when they are looking for new projects to work on, and they already know just 1 or 2 languages.
21:05:23 <Scott_WUaS> Hi All
21:05:24 <SMalyshev> how we define "wikimedia cluster"? i.e., are maps or wdqs part of it for this purpose?
21:05:37 <Krinkle> DanielK_WMDE: OK. I made a very basic draft at - But feel free to expand on the page and/or on phab.
21:05:38 <quiddity> There are a number of pages that contain partial information (listed in the bottom of the description of )
21:06:03 <quiddity> There are 2 sites (github and openhub) that collate information automatically/semi-automatically. Plus our own scattered and incomplete listing on
21:06:18 <quiddity> I lean towards mergism for documentation, to prevent fragmentation, hence I'm hesitant about starting the new page at - but I'm also not a dev, so ...
21:06:29 <quiddity> * Do we want to give a bunch of search links such as and/or
21:06:31 <robla> SMalyshev: I believe so
21:06:47 <quiddity> * Do we want to provide links to our own existing pages that contain some of this information, and focus on improving/updating them. E.g. and
21:06:59 <SMalyshev> ok, then we need at least Java there, we run a bunch of Java tools
21:07:02 <quiddity> Or something else? [EOM]
21:07:28 <TimStarling> I would also prefer to see a big table or list
21:07:41 <legoktm> there's also
21:08:22 <legoktm> (compare with for example)
21:08:56 <legoktm>!/progornoprog/proglang/py is their language selector thing
21:09:14 <quiddity> TimStarling, ah, so something that combines everything in the existing listings, such as the links in and links to the subsections of ?
21:09:57 <Scott_WUaS> As a possible newcomer developer (and having donated WUaS to Wikidata last autumn), I'd be interested in a page that even would precede
21:10:26 <TimStarling> yes on the first (Template:Conventions_navigation), not sure about the second
21:10:32 <robla> quiddity: I agree with your mergism tendencies, but started [[Programming languages]] because none of the existing editable pages really answered the question that I had
21:11:18 <TimStarling> I mean that robla wants to create one page per programming language and put all projects related to that programming language on the specific page
21:11:22 <quiddity> TimStarling, nod. robla, I think that new page is a really good exxample to have available, as one possible direction to head in. I might end up utilizing it as the location for the large table suggested.
21:12:07 <TimStarling> I think [[Programming languages]] is fine, but I'm less convinced about e.g. [[Ocaml]] (which doesn't exist yet)
21:12:09 <chasemp> as a newby to this convo where is the task or rfc on-wiki, I'm not clear on what the meeting subject means exactly
21:12:14 <SMalyshev> I wonder if that page should be just a category
21:12:20 <quiddity> chasemp,
21:12:33 <SMalyshev> i.e. Category:Projects using Python
21:12:40 <robla> TimStarling: I'm actually not sure if we should create new pages, but just noted that we have [[Python]] but not [[Ruby]], and didn't really even have [[PHP]] until recently
21:12:48 <ostriches> I would prefer to having a page or category or something on-wiki. I think the github code base detection is pretty bad tbh.
21:12:59 <SMalyshev> Category:Projects using OCaml etc
21:13:06 <legoktm> I think a table with sections for each language would be a good starting point, and if it becomes unweidly, we can split into separate pages
21:13:09 <ostriches> It's bad with multi-language codebases.
21:13:10 <quiddity> chasemp, but it's tangentially related to the larger questions asked in
21:13:18 <ostriches> It's completely off-base on repos mostly made up of submodules
21:13:23 <ostriches> (eg mediawiki/extensions)
21:13:46 <Scott_WUaS> If there was something on this page, for example - - about newcomer developers participating in this ArchCom process, in these Office Hours, and then something about how to write a RFC in Wikimedia Phabricator, that could work. Might that be possible, Tim?
21:14:10 <chasemp> quiddity: ok thank you I was thinking it was aimed at a list of official languages rather than a survey, makes sense
21:14:51 <ostriches> Is throwing new developers straight into RfC processes a good idea?
21:14:59 <ostriches> Sounds like it'd be information overload.
21:15:16 <robla> ostriches: no, not my hope
21:15:24 <TimStarling> yeah, it's probably not the easiest starting point
21:15:31 <quiddity> ostriches, nod, that was my perspective, too. The subpages for each, contain more details, but are harder to discern. (e.g. the multicolour line at the top of which shows "Python 1.1%")
21:15:40 <bd808> Scott_WUaS: maybe you are looking for ?
21:15:44 <TimStarling> we could definitely improve that page though, you know it links to a phab query that includes closed bugs
21:16:31 <TimStarling> yeah maybe can link to [[How_to_become_a_MediaWiki_hacker]]
21:16:47 <Krenair> are we thinking of another microsite here? :/
21:17:20 <ostriches> quiddity: Yeah that's not bad, but stuff like is useless.
21:17:29 <ostriches> (again: mw/extensions is not python lol)
21:17:40 <quiddity> Krenair, definitely not! I'm hoping that we conclude that I should focus on improving only pages. But, I'm willing to also take a stab at improving openhub/github links/listings, I can figure out how.
21:17:42 <legoktm> Krenair: no, I don't think so
21:17:51 <quiddity> I/we*
21:18:15 <ostriches> quiddity: How do you propose improving what github spits out?
21:18:48 <Scott_WUaS> bd808: Thanks, having donated WUaS to Wikidata, I think it's contributing to WMF by developing in both Wikidata and MediaWiki that I'd be interested in learning about, possibly with Phabricator and RFCs after a few months of Office Hours, and from here -
21:18:54 <quiddity> ostriches, I know I can improve the openhub listings (as Nemo suggested). I'm not sure about github.
21:19:01 <ostriches> :)
21:19:07 <TimStarling> robla: is this only about recruitment at the moment, or do you think this process of documenting how programming languages are used would help with a future discussion about what programming languages we should use for new projects?
21:20:00 <robla> TimStarling: good question. I'm happy to get into the deeper question if quiddity and everyone else wants to
21:20:24 <legoktm> so I think the first step would be taking the list at and others and sorting them by programming languages into a table or something?
21:20:31 <quiddity> I'm satisfied (thanks!) with the feedback and input on my concern. Feel free to go deeper.
21:20:31 <legoktm> and then we'd figure out how we want to present that data to new users?
21:21:36 <legoktm> or am I misunderstanding?
21:21:41 <SMalyshev> I see there's a lot not listed in Invented_Here... is there some procedure to keep it up to date? Or at least telling people it exists (I had no idea)?
21:21:55 <quiddity> legoktm, nod, I'll start a couple of demonstration tables (sometime over the next couple weeks) and ask for further feedback in the task (
21:22:06 <robla> legoktm: this is the first time I've looked at that page in this context. interesting idea...
21:22:28 * robla can't remember if he's ever looked at that page
21:22:36 <legoktm> quiddity: sounds good :)
21:22:44 <ostriches> [[Upstream projects]] wouldn't have clued me in that there's a list of our own projects on it
21:22:46 <ostriches> :)
21:22:53 <legoktm> SMalyshev: nope, like most of our docs it's always out of date
21:22:57 <Scott_WUaS> (TimStarling, RobLa and bd808: And perhaps how developing in both Wikidata and MediaWiki would work programming language-wise and from here - and - could be a way in).
21:23:06 <SMalyshev> yeah, it's like on Windows you click on Start to shutdown :)
21:23:26 <quiddity> that Upstream page, and, are interestingly tangential. I'd love to combine ALL THE THINGS into a giant table, but we'd need monitors 3x wider. >.>
21:24:04 <SMalyshev> legoktm: that's why I think using something like categories may be more resistant to neglect...
21:24:51 * robla agrees with SMalyshev that we need to think about neglect-resistant solutions
21:25:01 <legoktm> maybe!
21:26:34 <greg-g> quiddity: 4 dimensional tables ;)
21:27:07 <SMalyshev> let's put all those projects on Wikidata and just query it :)
21:27:18 <Scott_WUaS> :)
21:27:31 <greg-g> in a previous life I would have said SMW ;)
21:27:44 <quiddity> Maybe I'll also take a look at our existing navboxes, and see which could be best utilized on Upstream and Developers/Maintainers.
21:27:53 <robla> DanielK_WMDE: I'm guessing SMalyshev is only half kidding :-)
21:28:05 <SMalyshev> robla: you are guessing right :)
21:28:24 <Scott_WUaS> RobLa: Wikidata-centrism makes much sense :)
21:30:14 * robla goes back to T136866 to see what questions we should try to resolve
21:30:53 <Scott_WUaS> To add to Quiddity's observation from yesterday: "So, let's focus tomorrow's conversation on helping newcomers identify "What can I work on in language foo"" I'd explore how and in what programming langauges ... and especially in Wikidata
21:31:08 <SMalyshev> continuing with the topic of crazy ideas, Wikibase install doesn't have to be Wikidata... just saying...
21:31:37 <Scott_WUaS> and in Wikidata's process (Wikidata is holding an office hour tomorrow too)
21:33:32 <robla> so....if some developer (WMF included) wanted to deploy an extension involving non-PHP code, what would they need to consider?
21:33:56 <Krenair> well we already have JS
21:34:34 <robla> Krenair:'s talk about server languages, say a new Node.js service
21:34:43 <Krenair> wouldn't be mediawiki and wouldn't be an extension
21:34:48 <bd808> robla: an extension? That pretty much by definition needs to be PHP
21:35:01 <SMalyshev> yeah mediawiki extension == PHP/JS
21:35:09 <SMalyshev> but service can be pretty much anything
21:35:13 <TimStarling> we have some extensions that shell out, or are clients for HTTP services
21:35:31 <SMalyshev> we have nodejs, python, java, probably c[++] too
21:35:31 <Krenair> yeah we have OpenStackManager
21:35:35 * Krenair runs
21:36:03 <bd808> the deploy part is the key probably in robla's question
21:36:14 <robla> bd808: yup
21:36:17 <Krenair> setting up the service itself is ops' area
21:36:19 <SMalyshev> I think we only have standard deploy for nodejs
21:36:36 <Krenair> the MW extension part in JS/PHP would have to conform to all the usual requirements
21:36:48 <SMalyshev> all others are pretty much "do your own puppet/scap3"
21:36:48 <bd808> deploying to WMF prod requires at some point getting approval from releng and techops
21:36:59 <quiddity> hypothetical for discussion: a new labs service written in an Esolang. (e.g. BrainFNORD)
21:37:17 <MaxSem> quiddity, E_GOODFORTHEM
21:37:21 <TimStarling> for node.js we also have service-runner, which is the in house service framework
21:37:23 <SMalyshev> but the question is: how many volunterrs would be writing non-toollabs services?
21:37:50 <Krenair> not many I'd imagine, most volunteers I've seen writing code stick to their gadgets and labs tools
21:38:12 <SMalyshev> right. Or patching existing ones (like pywikibot)
21:38:24 <robla> is that by design?
21:38:35 <Krenair> pywikibot is a python bot framework, rather than a service, right?
21:38:49 <bd808> getting completely new code into production is a non-trivial process but for good reasons I think
21:38:50 <Krenair> robla, no I think most useful tools are supposed to graduate from labs eventually, theoretically
21:38:58 <SMalyshev> given how many stakeholders one needs to gather to approve/deploy new service, I'd say it's both design and de facto
21:39:08 <TimStarling> even getting a new PHP extension deployed on WMF is non-trivial
21:39:25 <bd808> true
21:39:50 <bd808> which leads to kitchen-sink extensions like mobilefrontend
21:40:52 <SMalyshev> Krenair: right, but that eventually leads to bots which are kind of services...
21:41:02 <bd808> from my personal experience the 2 big hurdles were security review and puppet automation
21:42:15 <Krenair> because it's easier to put extra features into an existing extension with far less approval than it takes to deploy a new extension?
21:42:18 <SMalyshev> yeah I think with puppets we don't have much choice besides a) learn puppet or b) bribe somebody who knows puppet
21:42:19 <bd808> both really due to limited revewer resources.
21:42:40 <bd808> Krenair: yes. there is no second or third or fourth security review
21:42:51 <legoktm> it sucks, but I can say from experience that it sucks much less than it did 3 years ago
21:43:05 <Krenair> Is it a problem of getting puppet code written, or getting into onto the actual production puppetmasters?
21:43:30 <bd808> for my puppet is was getting it reviewed and merged
21:43:45 <Krenair> SMalyshev, you're probably right wrt stakeholders btw, I was thinking from the labs perspective
21:44:15 <TimStarling> it's not simple to test puppet manifests
21:44:29 <TimStarling> I think the ops team usually deploys them untested (except for a lint check)
21:44:56 <TimStarling> so to make sure things work, they are limited to staring at the code really hard
21:45:01 <SMalyshev> TimStarling: yeah that too. even if your build own puppetmaster (non-trivial) still labs and prod differ a lot
21:46:33 <TimStarling> they said to me "you can build your own puppetmaster" and I said "where is the puppetmaster *you* use to test your changes? can I use that one?"
21:46:44 <TimStarling> and it transpired that there wasn't one
21:47:04 <bd808> heh
21:47:31 <bd808> I've tried to talk folks into testing in deployment-prep more often but... yeah
21:47:51 * robla looks at and gets sad
21:48:51 <SMalyshev> robla: probably :)
21:48:55 <quiddity> it was empty, and is ripe for redirecting.
21:49:26 <SMalyshev> looks like still ripe for redirecting to wikitech :)
21:49:42 <quiddity> done
21:49:50 <bd808> robla:
21:50:04 <bd808> and
21:50:49 <bd808> knowing what goes on mw.o and what goes on wikitech and what goes on meta is still a challenge for me
21:51:14 <Krenair> only if it's mediawiki code
21:51:20 <Krenair> meta probably not for technical things
21:51:29 <robla> bd808: I'm guessing it's a challenger for any newcomer to our codebase
21:51:30 <Krenair> wikitech for pretty much anything wikimedia-related that's technical
21:51:59 <bd808> Krenair: but mw.o has all of the WMF teams and projects which could be anything
21:52:09 <Krenair> bd808, yes but should mw.o have all of that?
21:52:24 <quiddity> Krenair, yes, but that only works if one doesn't mind the SUL issue (notmywiki gets even worse when people have to create a new account just to contribute)
21:52:24 <bd808> and there are quire a few technical things on meta like quarry docs
21:52:32 <TimStarling> for a lot of projects I have written a page on each wiki
21:52:43 <Krenair> those things need to be tagged for moving off of but I've never got around to it
21:52:43 <TimStarling> they have a different audience
21:53:15 <TimStarling> for I write for external users, basically public-facing source code documentation
21:53:26 <TimStarling> for wikitech I write notes for the ops team
21:53:26 <Krenair> quiddity, if we're talking about people that want to contribute to our software they should probably have gerrit access, and this requires them to have a wikitech account
21:54:11 <quiddity> contributions can be in the form of user-feedback, and other non-technical guises! ;-)
21:54:35 <bd808> someday wikitech will be a SUL wiki
21:54:49 <bd808> gibe me another 9-12 months
21:55:45 <robla> this has been a really great conversation, thanks everyone! Lemme look up the link to the thing we'll be suggesting for next week....
21:55:58 <Scott_WUaS> Thanks, All!
21:57:10 <robla> next week's Phab event is and is what we're tentatively planning on
21:58:42 <Krenair> I dunno, was it useful to other people? I feel like I've mostly been talking about problems with our existing situation
21:58:47 <Krenair> Maybe that's useful, maybe not
21:59:11 <robla> Krenair: it was very useful to me to know what edits to make to, so I appreciated it
22:00:36 <robla> thanks TimStarling for chairing/meetbot running :-)
22:00:50 <TimStarling> #endmeeting