Page MenuHomePhabricator

Support Vega 3.0+ and Vega Lite 2.0+
Open, NormalPublic

Tokens
"Like" token, awarded by domoritz."Like" token, awarded by Jan_Dittrich."Like" token, awarded by Mgmhunt."Like" token, awarded by Yurik."Like" token, awarded by Prtksxna.
Assigned To
Authored By
Base, May 12 2017

Description

It looks that all examples on https://vega.github.io/vega/examples/ , docs on https://vega.github.io/vega/docs/ etc. are now using Vega 3.0 while the extension still requires 2.0 specs which is a limitation and complicates things a lot for people trying to use Graphs along other things.

Implementation strategy

  1. Add Vega 3.0+ & VegaLite support to Graphoid
    • This can be done without waiting for Mediawiki support. Having this feature allows users to implement non-interactive Vega 3.0 graphs, but not preview them before saving, nor use them interactively.
  2. Add Vega 3.0+ & VegaLite support to MediaWiki
    • Handle new Vega 3.0+ graphs. Note that Vega 3.0+ should be loadable in parallel with Vega 2.0, thus it should be possible to have both versions at the same time.

P.S. This could be a good student project. @Yurik will be happy to mentor. (added by Yurik)
P.S. looks like Vega 4.3 and Vega-lite 3.0 are out, so maybe we skip straight to those

Event Timeline

Base created this task.May 12 2017, 1:37 AM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMay 12 2017, 1:37 AM
Prtksxna added a subscriber: Prtksxna.
Yurik awarded a token.May 25 2018, 4:03 PM
Yurik renamed this task from Support Vega 3.0 to Support Vega 3.0 and Vega Lite 2.0.May 25 2018, 9:44 PM
Yurik added a project: Google-Summer-of-Code.
Yurik updated the task description. (Show Details)
Yurik added a subscriber: Yurik.
Yurik updated the task description. (Show Details)May 25 2018, 9:53 PM
Yurik updated the task description. (Show Details)May 25 2018, 9:57 PM
Mgmhunt added a subscriber: Mgmhunt.
Milimetric triaged this task as Normal priority.
Milimetric updated the task description. (Show Details)
Yurik added a comment.Oct 18 2018, 7:45 PM

@Milimetric v3 and v4+ are not very different. Just some minor integration API changes. 4 is 99% backward compatible. So yes, we could just skip to 4.3

As an author of Vega-Lite and contributor to Vega, I'd like to offer my support and help with this effort.

@domoritz I've been trying to make time to work on it. I think I can start this Friday, thank you for offering to help! I'll ping you with any questions on this task.

Ok, I had some time, I poked around a bit. My conclusion is that graphoid needs some basic maintenance first before new features can be implemented. So I've talked to the services team and they're going to file a sterwardship request. If nobody comes forward, I'll make some time and give graphoid the love it needs. Once that's done, I can easily add support for the new vega versions. But if I did anything now, it would just complicate that graphoid work, and seems counter-productive.

Thanks for the update. Let me know if there is anything I can help with.

@Milimetric have you had a chance to look into this?

We're working on a GSoC proposal and I wonder whether this would be a good project for a student. I wouldn't be very helpful as the only mentor so maybe you would like to co-mentor or know someone.

The status right now is that WMF is looking for a steward for the project. Ideally, a team would agree this is critical infrastructure and take over ownership of Graphoid and the Graph extension. We are mostly in agreement that it would be a bad idea to add even more logic to the current implementation, before it gets restructured. If no team agrees to take it over by the end of this quarter, I will see if I can make space to deal with it myself. As for GSoC work, before we get the basic service in shape I don't think it makes sense to draft any other tasks around it. Hope that helps, and I really hope a team decides to take this over.

Yurik added a comment.EditedMay 8 2019, 2:56 PM

@Milimetric has any team at WMF decided to adapt it yet? From what I was told, there is already a GSOC student about to get started on this, and we could ask them to do some restructuring work as well. Which restructuring steps did you have in mind? BTW, it would be great if you could co-mentor this person as well (we already have @domoritz and myself signed up as mentors)

Hi, My name is Xin Chen, I'm the student who wants to participate in this project.
I’m a master student majoring computer science at visualization group in Shandong University, China.
Since I have to take an exam on May 27th, I want to finish the support of Vega3&VegaLite basically before May 26th. I can work all day before that. If I can't make it work by the end of May, maybe I can only go back to this project when my summer break officially begins, and that is July 7th.

I have read the code of Graph extension and understood the basic idea of it, so I can start to write some code promptly.

Yurik renamed this task from Support Vega 3.0 and Vega Lite 2.0 to Support Vega 3.0+ and Vega Lite 2.0+.May 9 2019, 4:48 AM
Yurik updated the task description. (Show Details)
MSantos added a subscriber: MSantos.May 9 2019, 5:32 PM

GSoC has already started, so I'm guessing that there is an interest to work on this project outside of outreach programs. Just making sure so that there is no confusion here around this.

@Yurik I think in general graphoid is going to find a sponsor, but I'm not 100% clear on who exactly that is. One of the 3 main strategies for the next 3-5 years is "rich media" so this obviously fits in. The code that @Xiaoyanghaitao is working on to add Vega support to the Graph extension seems useful in any case. The more foundational platform work should include a better way for graphoid to interact with mediawiki (better than page props). And other work that's been described on this and related tasks. I don't think it makes sense to do it in context of GSoC though, the Graph extension work fits much better there. I'm a little late to the party, and I see you're reviewing the code, but I can take a look if either you or @Xiaoyanghaitao would find that useful.