On Thu, Nov 24, 2016 at 4:50 PM, Svetlana Tkachenko <svetlana@members.fsf.org> wrote:
Hi all,

In response to [0] I am considering volunteering to develop the tabbed
search interface [2] [3]. To me it looks like more logical, more
familiar to users compared to the other interfaces.

I'm Gryllida at Wikimedia sites. I have prior Perl and JavaScript
experience interacting with the MediaWiki API [1], but none in PHP. The
JavaScript things I wrote are rather scattered; I have only minimal
understanding of objects and modules as I only wrote subroutine style
scripts before. At home, I use a GNU/Linux Debian desktop.

So this week I came to IRC and asked several questions to get an idea of
what the Discovery team is doing. Thanks Deborah for sharing the current
state of things! :-) I appear to realize that the tabbed interface is in
the plans and nobody is working on it, so it's good to take.

We had left some questions unanswered. Particularly, is the Labs
instance at [4] expected to be used for all ideas at once or only for
one at a time, and is it shared between several people? Is it a good
idea for me to use a Labs instance at initial development stages or only
when the code is nearing completion? Or is it better to use a Vagrant
instance locally? Or both?

The labs instance is planned to be used for demo's. Essentially while working on patches or having features that are merged but flagged in such a way they aren't seen in production, we can make the code active on the labs instance and see how it is supposed to work. By having access to various production indicies it makes it easier to get a feeling for what we will be providing to users. It also gives us a place to point users to when talking to wiki's about running experiments with the new interfaces.

It's almost certainly better to start development in a vagrant environment. Everyone on the team has a local vagrant install they do development in. When it works it works well, but sometimes there are a few bugs getting vagrant setup. Feel free to poke in our channel, or perhaps #mediawiki-dev. Another possibility might be #wikimedia-labs. Even though you are running vagrant locally the people in -labs are pretty familiar with our vagrant setup. The timezones might make things a bit tricky, having an EU and US specific team we are likely not very available to AUS timezones. I'm not sure the best way to help here.


What documentation and code do you recommend me to read? May I develop
it as an extension as much as possible and not a gadget, so that people
don't have to wait for page JavaScript to finish loading before they see
the new sister wiki tabs?


We have lots of documentation, but I'm not sure how much of it is strictly relevant. The high level guide starts at the Developer Hub[0]. You'll need to get a gerrit[1] account which is the code review platform.

In terms of actual implementation, a new extension will add a large overhead to deployment. I don't think a gadget will be able to do enough. A tabbed interface suggests that you would stay on the original wiki but receive results from a sister wiki. There is no concept of this in the search code yet, so something would have to be added. The current interwiki search implementation instead has the ability the query both the main wiki and the sister wikis all at once so it can provide the sidebar of results. This necessary backend work isn't over the top complicated, we already have concepts like inline secondary results that come from alternate wikis, but it also wont be a quick thing to get done.

Once the ability is there to send requests and get back the appropriate set of results the work on the UI itself can be worked out. I have a large set of refactors to the search UI code currently pending review[2], mostly likely you will want to build on top of that. Since this is new code it may or may not be flexible enough to allow what you need (although it is certainly more flexible than what lives in Special:Search today). I think a tabbed ui would perhaps be done as an extension to the MediaWiki\Widget\BasicSearchResultSetWidget class. It's a good starting point at least.


[0] https://www.mediawiki.org/wiki/Developer_hub 
[1] https://gerrit.wikimedia.org
[2] https://gerrit.wikimedia.org/r/323976

May I please ask someone to volunteer mentoring me throughout the
project? (I am in the UTC+11 timezone at present; 'gry' nickname at
chat.freenode.net.)

I might be able to help some, but the timing will be difficult. I'm at UTC-8, which is a 19 hour time difference, and i tend to start my days early to have more overlap with our EU team members. I'm typically finishing up by 4:30 or 5pm my time, which if i did my math right is around noon for you. Feel free to pop into the IRC and ask questions and I will help where I can, but it'll have to be in your mornings.

Regards,
Svetlana.

[0]:
https://lists.wikimedia.org/pipermail/wikitech-ambassadors/2016-November/001502.html
[1]: http://svetlana.nfshost.com/fs/
[2]:
https://www.mediawiki.org/wiki/Cross-wiki_Search_Result_Improvements/Design#Tabbed_interface
[3]: https://wikitech.wikimedia.org/wiki/User:Gryllida/sandbox
[4]: https://phabricator.wikimedia.org/T151344

_______________________________________________
discovery mailing list
discovery@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/discovery