[08:16:42] New patchset: Daniel Kinzler; "(bug 50478) Filter langlinks by site group." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71302 [08:26:49] New patchset: Daniel Kinzler; "(bug 50478) Filter langlinks by site group." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71302 [08:35:58] New patchset: Daniel Kinzler; "Use MockStiteStore for testing" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71322 [08:37:18] New patchset: Daniel Kinzler; "(bug 50478) Filter langlinks by site group." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71302 [08:47:45] New review: Aude; "(1 comment)" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71322 [09:04:00] aude: hello! [09:04:15] I hope I'm not late for the hangout? [09:12:27] here's the sitelink group bug: https://bugzilla.wikimedia.org/show_bug.cgi?id=50478 [09:12:39] and the cache key thing: https://bugzilla.wikimedia.org/show_bug.cgi?id=50303 [09:12:58] ...and the deployment issues katie mentioned: https://bugzilla.wikimedia.org/show_bug.cgi?id=50371 [09:13:08] i'm not sure i fully understand that bug report though... [09:14:29] DanielK_WMDE_: we got the deployment thing, although it's a bit problematic the way we load the extension [09:15:03] aude: is it problematic only because we had it deployed twice in this case? [09:15:04] we return null if the constant is defined and then localisation update was unable to load it [09:15:14] no, it was not deployed twice [09:15:32] but the data model constant must have already been set in the Wikibase extension in wmf8 [09:15:47] then they added data model to wmf8 so they could run localisation update [09:16:00] ...because the code was in there, too. that's what i meant by "twice" [09:16:10] and it crashed because it returned null the second time and couldn't find WikibaseDataModel.i18n.php [09:16:14] yes [09:16:17] but about returning null... the top level include *always* returns null, no? [09:16:24] what else would it return? [09:16:28] it's an issue that will occur with DataValues if we split that stuff out [09:16:37] right [09:16:42] DanielK_WMDE_: it's before i18n is loaded [09:16:51] and then is used in !include_once [09:16:55] which is unreliable [09:17:07] hm... [09:17:16] it could be include_once === false, though still risky [09:17:16] that's in the localisation script [09:17:47] and then it rebuilt a corrupt localisation cache, which roan did not realise before he scapped things :( [09:17:57] eek [09:18:01] there obviously needs to be a check that the cache is good [09:18:20] so... the rebuild script loads the extension files explicitly? not the i18n files directly? [09:18:27] with my change, the localisation update will still abort but have the option to --force and override [09:18:34] e.g. as appropriate in our situation [09:18:46] apparently [09:18:56] it's a mw instance [09:19:04] everything is loaded [09:19:13] isn't the localization cache going to be wonkey anyway whenever we have multiple versions of some module/extension deployed? [09:19:32] our multiple versions are on different versions of core [09:19:32] or do we have one cache per deployed branch? [09:19:36] e.g. different code bases [09:19:55] the problem just is when we have a new extension for the new branch, but the extension has to be put everywhere [09:19:58] yea, but is the split that way too? [09:20:14] it does not have to be part of require_once() explicitly [09:20:21] but the script will search for it [09:20:23] yea... why does it have to be put everywhere? [09:20:33] * aude asked the same question [09:20:39] that's what i'm attempting to address [09:20:42] :P [09:20:43] normally it's that way [09:20:44] fun times [09:20:57] i'm adding the option to override and skip the extension [09:21:23] there are various other issues in the cache rebuild scripts and scap process that are out of scope for us [09:21:39] could have made a dummy branch for the extension, contianing only dummy files, and the set the submodule for the old wmf branch to that [09:21:47] we could [09:21:47] (nasty hack, but should work, right?) [09:22:17] anyway, need to think about this if we split out the datavalues componentes [09:22:20] components [09:22:27] the query ones are fine as they are not loaded now [09:23:51] DanielK_WMDE_: anyway, if you like to do some code review, https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/Wikibase+owner:%22Liangent%22,n,z [09:24:02] if you want to take a look at liangent's stuff [09:24:39] otherwise i'll review later and try to get stuff merged [09:37:42] aude: i want to püush the property info stuff first, then look at cache keys. may do reviews before or after cache keys. [09:37:49] DanielK_WMDE_: ok [09:37:59] denny is also around and can review [09:43:17] New patchset: Nikerabbit; "Use MockSiteStore for testing" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71322 [09:43:49] New review: Nikerabbit; "(1 comment)" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71322 [09:44:57] Henning_WMDE: https://bugzilla.wikimedia.org/show_bug.cgi?id=50491 [09:45:06] Abraham_WMDE: can you put it on the board as well? https://bugzilla.wikimedia.org/show_bug.cgi?id=50491 [09:45:43] Denny_WMDE: done [09:47:51] Abraham_WMDE: thx [10:18:20] Abraham_WMDE: can yopu please put these on the borad? 50478 (review) and 50303(doing) [11:11:49] yoo [11:28:05] aude: Denny_WMDE: I don't dare to create new patches too fast without getting existing patches reviewed, or naming problems require me to manually rebase a bunch of dependent patches [11:28:48] liangent: you get used to it :) [11:29:23] liangent: since a lot of people are on vacation, review backlock is a problem. i'll try to get some reviewing done today, but can't promise [11:30:37] DanielK_WMDE_: how are your vacations arranged :p [11:36:54] liangent: reviews for you are on my to do list for today [11:37:00] and i understand your hesitance for that [11:37:28] btw i am also fine with merging and then refactoring / renaming later (but it has to happen very soon afterwards) [11:37:36] this at least saves some mess from git [11:38:30] liangent: i'm here the next four weeks. i'm mostly unavailable in august. [11:39:45] liangent: if Denny_WMDE does not review, i can probably when i get home [11:40:06] renaming can be done later or any issues in a follow up [11:43:24] https://bugzilla.wikimedia.org/show_bug.cgi?id=46352 [11:44:07] Denny_WMDE: DanielK_WMDE_: aude: got it [11:44:12] liangent: ok [11:44:22] ^^ DanielK_WMDE_ when you have time, you want to check that bug and confirm or resolve https://bugzilla.wikimedia.org/show_bug.cgi?id=46352 [11:44:25] (iirc) [11:44:28] https://bugzilla.wikimedia.org/show_bug.cgi?id=49978 [11:45:49] https://bugzilla.wikimedia.org/show_bug.cgi?id=49952 [11:46:40] https://bugzilla.wikimedia.org/show_bug.cgi?id=47610 [11:48:03] https://bugzilla.wikimedia.org/show_bug.cgi?id=49742 [11:48:52] https://bugzilla.wikimedia.org/show_bug.cgi?id=49740 [11:49:13] New patchset: Daniel Kinzler; "(bug 49742) introducing PropertyInfoTable." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71333 [11:50:21] Denny_WMDE: for statements display, is silent fallback to another language ok? it's difficult to find a good design to insert a language tag everywhere, and it messes up the interface [11:50:34] New patchset: Daniel Kinzler; "(bug 49742) introducing PropertyInfoTable." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71333 [11:50:38] eg dropdown list [11:50:48] liangent: no, completely silent is not good [11:51:45] liangent, Denny_WMDE: i'd say anything that can be edited in the current context must be very explicit about language fallback. but when showing a label in an entity selector or some such, a silent fallback is probably ok, don' [11:51:50] ...don't you think? [11:52:03] https://bugzilla.wikimedia.org/show_bug.cgi?id=49315 [11:52:08] that is also required [11:52:40] https://bugzilla.wikimedia.org/show_bug.cgi?id=49642 [11:53:14] Denny_WMDE: checking 46352 now [11:53:42] liangent: agree with daniel [11:53:57] aude: DanielK_WMDE_: the only problem I see is https://en.wikipedia.org/wiki/False_friend [11:54:08] liangent: example? [11:54:16] https://bugzilla.wikimedia.org/show_bug.cgi?id=46555 [11:54:24] in the selector it could be an added (de) [11:54:36] liangent: that's why there should always be a description... [11:54:53] https://bugzilla.wikimedia.org/show_bug.cgi?id=49583 [11:55:03] Denny_WMDE: that's a simple solution, but are language codes really a nice idea? shouildn't iot be the language name? [11:55:26] yeah, language name is good [11:55:37] but that's too long [11:56:02] liangent: why? [11:56:15] i mean, what's the problem with it being long? [11:56:30] hello hoo [11:56:34] https://bugzilla.wikimedia.org/show_bug.cgi?id=49571 [11:56:50] * DanielK_WMDE_ is missing the triage [11:57:00] hi DanielK_WMDE_ :) [11:57:05] DanielK_WMDE_: the suggest list is so small [11:57:08] DanielK_WMDE_: speak up if you have any comments [11:57:39] aude: can't follow atm, and got too much other stuff to do. [11:57:44] ok [11:57:49] https://bugzilla.wikimedia.org/show_bug.cgi?id=49554 [11:58:02] Abraham_WMDE: is there a quick log of what was triaged, and what the outcome was for each? [11:58:08] i'd like to look over it later [11:59:11] DanielK_WMDE_: maybe list of wikidata bugs changed today [11:59:49] https://bugzilla.wikimedia.org/show_bug.cgi?id=49532 [12:00:03] DanielK_WMDE_: not really, we're going through the unprioritized bugs [12:00:30] https://bugzilla.wikimedia.org/show_bug.cgi?id=49527 [12:01:15] https://bugzilla.wikimedia.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=wikidata-1d&sharer_id=10206&list_id=212913 [12:01:20] DanielK_WMDE_: ^ [12:01:26] i have to add data value bugs to that [12:01:29] Denny_WMDE: is it ok to introduce a pseudo language code to indicate "the finally looked up label after the fallback chain is completely resolved" in serialized form for UI, eg wbUsedEntities? [12:01:37] like {"p2":{"id":"p2","type":"property","labels":{"qqz":{"language":"de","value":"AnotherItem"}},"datatype":"wikibase-item","title":"Property:P2","lastrevid":47},"q3":{"id":"q3","type":"item","labels":{"qqz":{"language":"en","value":"Stuff"}},"title":"Item:Q3","lastrevid":56}} [12:03:45] https://bugzilla.wikimedia.org/show_bug.cgi?id=45363 [12:03:58] liangent: trying to follow [12:06:11] https://bugzilla.wikimedia.org/show_bug.cgi?id=47317 [12:06:39] Denny_WMDE: ? [12:06:40] https://bugzilla.wikimedia.org/show_bug.cgi?id=49432 [12:07:02] liangent: we're in a bug triage meeting [12:07:13] once we're done, he can answer [12:07:13] Denny_WMDE: undo via api is indeed an issue [12:07:50] aude: ok [12:08:25] DanielK_WMDE_: so you confirm the bug? [12:08:47] New patchset: LivingShadow; "Documentation for RepoApi.createClaim extended" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71175 [12:09:05] Denny_WMDE: yes. [12:09:21] ok, thanks [12:09:30] Lydia_WMDE: https://bugzilla.wikimedia.org/show_bug.cgi?id=44749 [12:09:53] aude: If you have a second... what do you think about https://gerrit.wikimedia.org/r/#/c/71175/2/lib/resources/wikibase.RepoApi/wikibase.RepoApi.js ? [12:10:29] I don't think such stuff belongs there, only the wrapper itself should be documented and not the API [12:10:31] hoo: the documentation or the patch as a while? [12:10:33] (except of types) [12:10:33] whole? [12:11:24] https://bugzilla.wikimedia.org/show_bug.cgi?id=48709 [12:11:49] hoo: i think those details are not needed but if we want them there then ok [12:11:50] aude: Yep... I think we shouldn't have more than the plain param descriptions there... [12:11:59] sure, sounds fine [12:12:04] I don't really want them there... hard to maintain [12:12:48] hoo: then remove them [12:12:52] sounds reasonable to me [12:13:57] aude: Ok, going to -2 the change then [12:13:58] hoo: and has Henning_WMDE or danwe reviewed that patch yet [12:14:03] hmmmmm, ok [12:14:18] * aude don't want you to be stuck [12:14:18] I don't feel comfortable -2ing a volunteer patch, tbh [12:14:28] ok [12:15:31] https://bugzilla.wikimedia.org/show_bug.cgi?id=49433 [12:16:48] aude: what's the verb for abandoned ... to abandone ? Autocorrect and dict.cc don't like that... [12:16:51] https://bugzilla.wikimedia.org/show_bug.cgi?id=49186 [12:17:01] abandon [12:17:03] to abandon [12:17:18] ah... stupid /me [12:17:23] Thank you both :) [12:17:28] https://bugzilla.wikimedia.org/show_bug.cgi?id=48888 [12:18:02] https://bugzilla.wikimedia.org/show_bug.cgi?id=48938 [12:18:43] https://bugzilla.wikimedia.org/show_bug.cgi?id=48567 [12:19:52] New review: Hoo man; "I don't really think we want more documentation in RepoApi as that just doesn't really belong there ..." [mediawiki/extensions/Wikibase] (master) C: -1; - https://gerrit.wikimedia.org/r/71175 [12:23:04] hoo: I'm okay with it. But the docs have to be linked in a way that it can also be found. I learned using the API not via docs, because I could not find any, but by digging through the code and reading server responses in Firebug. [12:23:25] (LivingShadow is me) [12:23:41] Granjow: mh [12:24:17] maybe just link the automatic documentation at https://www.wikidata.org/w/api.php and the help pages on mediawiki.org in the file header once? [12:24:45] hoo: Yes, thought of this as well. That would already help a lot. [12:24:47] Like "Documentation for the API modules can be found at ..." [12:25:17] that's probably nicer than to expand the documentation of each method with a lot of redundant information which can be hard to keep up to date [12:25:59] hoo: Plus, I started searching on the wikidata.org main page -- but there is literally nothing at all to be found. [12:26:16] Yes, this totally makes sense! [12:26:50] Henning_WMDE: could you take a look at https://bugzilla.wikimedia.org/show_bug.cgi?id=48567 please? [12:27:49] https://bugzilla.wikimedia.org/show_bug.cgi?id=49349 [12:27:59] Btw, do you use to publish upgrade notes (breaking changes or so)? Like the new WikibaseDataModel introduced last week. I just got a blank page, without any error message at all, when I upgraded Wikibase but did not notice the new repository. [12:28:46] Denny_WMDE: re templates in labels... wtf?! how does that happen? if it does indeed happen, i'd think this shoudl be pretty high prio, no? [12:28:53] Granjow: we're trying to add it to the weekly summaries but it doesn't already happen :( [12:28:54] https://bugzilla.wikimedia.org/show_bug.cgi?id=49315 [12:29:11] Granjow: You should follow our mailing list(s) [12:29:13] DanielK_WMDE_: yep, we just put it on immediate and i want to assign it right away, that's bad [12:29:40] i'm still very confused as to how that would happen. odd. [12:29:49] me either, i first didnt believe it [12:30:42] hoo: Which one? [12:31:14] Granjow: we got wikidata-l and wikidata-tech [12:31:15] https://bugzilla.wikimedia.org/show_bug.cgi?id=49282 [12:31:20] DanielK_WMDE_: wait, why'd you just un-confirm it? [12:31:34] PinkAmpersand: i did whut? [12:31:39] https://bugzilla.wikimedia.org/show_activity.cgi?id=48567 [12:31:42] hoo: Just noticed, createEntity also lists «query» as supported type, but the API (* action=wbeditentity *) does not, what is the query for? [12:32:03] wtf? [12:32:05] looks like the bugzilla version of an edit conflict :P [12:32:08] oh, bugzilla, i hate you [12:32:19] all i did was hit "save" to add myself to the cc list [12:32:23] https://bugzilla.wikimedia.org/show_bug.cgi?id=49306 [12:32:33] apparently, bugzilla didn't detect the "mid air collision" :( [12:32:51] https://bugzilla.wikimedia.org/show_bug.cgi?id=49298 [12:33:19] Granjow: That's weird [12:33:30] Denny_WMDE: btw, if i'd thought y'all would care that much about that bug, i'd've upped the severity and bothered some of you about it weeks ago [12:34:04] https://bugzilla.wikimedia.org/show_bug.cgi?id=49240 [12:34:19] PinkAmpersand: this one scares us a bit, yeah :) [12:35:11] Granjow: Could you be so kind and remove that as well? That's a great example to my points above :P [12:35:19] * for my [12:35:26] well, let's take a moment to thank the clueless n00b who set an item's label to {{delete}} 6 weeks ago ;) [12:35:27] [6] 10https://www.wikidata.org/wiki/Template:delete [12:35:37] PinkAmpersand: feel free to always bother me about such bugs - it's ok in this case to bother me once too much ;-) [12:36:22] https://bugzilla.wikimedia.org/show_bug.cgi?id=49242 [12:36:59] hehe, I love bothering you guys about this stuff. this is just one of those things that matters way more from a developer perspective than from a luser perspective, and since i'm a luser, I'm not great at guessing what will matter :P [12:37:30] hehe yeah [12:38:00] https://bugzilla.wikimedia.org/show_bug.cgi?id=49236 [12:38:54] https://bugzilla.wikimedia.org/show_bug.cgi?id=49235 [12:40:33] DanielK_WMDE_: we just closed https://bugzilla.wikimedia.org/show_bug.cgi?id=49235 as not reproducible. if we misunderstood something, let us know [12:40:35] https://bugzilla.wikimedia.org/show_bug.cgi?id=46644 [12:42:29] https://bugzilla.wikimedia.org/show_bug.cgi?id=49171 [12:42:47] https://bugzilla.wikimedia.org/show_bug.cgi?id=49165 [12:43:58] Denny_WMDE, aude: our own dumb template engine uses {{....}} for parameters. So if that occurss in a paramerters, it may get replaced. [12:43:59] [7] 04https://www.wikidata.org/wiki/Template:%2E%2E%2E%2E [12:44:14] oh, makes sense [12:44:19] https://bugzilla.wikimedia.org/show_bug.cgi?id=49124 [12:44:23] Henning_WMDE! ^ [12:44:29] Denny_WMDE, aude: The solution is to esacape {{ in all parameters to templates [12:44:34] yep [12:44:40] Henning_WMDE: oh, right ---^ [12:44:43] :) [12:45:35] https://bugzilla.wikimedia.org/show_bug.cgi?id=45529 [12:47:15] https://bugzilla.wikimedia.org/show_bug.cgi?id=49111 [12:47:46] https://bugzilla.wikimedia.org/show_bug.cgi?id=49014 [12:48:41] hoo: sure :) [12:49:38] https://bugzilla.wikimedia.org/show_bug.cgi?id=49102 [12:55:11] https://bugzilla.wikimedia.org/show_bug.cgi?id=49067 [12:57:39] liangent: hi, sorry for letting you wait [12:58:06] New patchset: Daniel Kinzler; "(bug 49742) Rebuild script for property info table." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71336 [12:58:55] New patchset: LivingShadow; "RepoApi.js: Links to documentation added." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71337 [12:59:11] Denny_WMDE: ok [12:59:12] finished? [12:59:14] yes [12:59:20] so regarding the display [12:59:33] * aude happy the meeting is done :) [12:59:36] i think everywhere it is displayed, we can put something there [13:00:03] i am just trying to find my demo for that... [13:01:20] grrr... sqlite... https://integration.wikimedia.org/ci/job/mwext-Wikibase-client-tests/1165/console [13:01:24] ah, need to upload first [13:01:26] is WikibaseDataModel depending on Wikibase? [13:01:47] liangent: i think the other way around [13:01:55] data model is intended to be stand alone [13:02:01] e.g. bots could use it outside of mediawiki [13:02:54] hmm so what if I want to use my language classes/functions in DataModel? [13:03:08] or should I just move that part of logic to Wikibase? [13:03:28] the latter [13:03:34] what denny says [13:03:45] or inject it into the datamodel [13:03:55] and refactor the datamodel so it can take that as a dependency [13:04:11] liangent: here's my little demo on how i think that could look like: http://simia.net/languagetext/ [13:04:19] like if ( class_exists( ... ) ) { ... } ? [13:04:27] New patchset: Daniel Kinzler; "(bug 49742) introducing PropertyInfoTable." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71333 [13:04:50] liangent: no, rather have a standard implementation of the functionality without your fallback in the datamodel [13:05:00] and then be able to replace that with a class of your own [13:06:17] but let's first understand what exactly you want to do [13:06:19] Lydia_WMDE: https://gerrit.wikimedia.org/r/#/c/71087/ :) [13:06:24] shall i start reviewing your code now? [13:06:36] aude: thx [13:06:39] or shall we talk first? [13:06:41] wb_entity_per_page will be available in the dumps [13:06:57] for anyone who does not wish to run that rebuild script [13:08:29] New patchset: Daniel Kinzler; "(bug 49742) Adding caching layer for property info." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71339 [13:11:09] Denny_WMDE: some quick talk first is fine [13:11:24] put ui design talk after review [13:11:27] Abraham_WMDE: put this one please on the list for wednesday - https://bugzilla.wikimedia.org/show_bug.cgi?id=48567 [13:11:38] liangent: ok, great [13:12:05] for what I'm trying to do: Entity::getLabels() is in datamodel which accept an array of language codes [13:12:25] I want to change it to / make a new function in Entity to accept fallback chains [13:12:36] understand [13:13:05] so basically, i ask Entity::getLabels('de') and it returns the 'en' fallback if it does not find a 'de'? [13:13:19] what would be the signature of the new function? [13:13:38] hmm let me make it accept a fully expanded fallback chain [13:14:16] like Entity::getLabels( array( array('de','en'), array('zh-cn', 'zh', 'en') ) [13:15:13] in these case those 'de','en','zh-cn', 'zh', 'en' will be LanguageWithConversion objects [13:15:28] hehe, my patchset has number 1337 :D [13:15:35] if the caller can't provide it (not have Wikibase installed), it's fine not to use this feature [13:15:45] New patchset: Daniel Kinzler; "(bug 49742) Introducing PropertyInfoDataTypeLookup" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71341 [13:16:37] liangent: trying to understand... [13:16:50] so this is resolved :p [13:16:57] so the signature is an array of language codes [13:17:02] and each array is a fallback-chain [13:17:14] and the whole thing wrapped in an array [13:17:28] whereas right now it was an array of language codes [13:18:05] it's signature will be like the new version of setLanguages in https://gerrit.wikimedia.org/r/#/c/71182/5/lib/includes/serializers/SerializationOptions.php [13:19:40] what's the current signature? [13:19:43] an array of ( ( string as language code ) OR ( array of ( LanguageWithConversion objects ) as fallback chains ) ) [13:20:02] currently it is is array of string as language code? [13:20:06] right [13:20:14] ok [13:20:34] where is languagewithconversion situated? [13:21:03] you mean where are they created? [13:21:10] in which extension is the code? [13:21:15] Wikibase [13:21:41] hmm, now i see. if it stays there the datamodel would be dependent on wikibase [13:21:49] that's what you meant earlier, right? [13:22:27] doesn't make things easier, but i wonder if language with conversion is generic enough a thing to be in core? [13:22:30] maybe at some point [13:22:52] then model would depend on core [13:23:12] the class already depends on core [13:23:14] at the moment [13:23:29] but the model does not [13:23:33] right [13:23:38] Denny_WMDE: well if you don't have Wikibase when using DataModel, you can't get ( array of ( LanguageWithConversion objects ) as fallback chains ) to feed to that getLabels [13:24:13] yes, but you still need to write code that deals with that when it comes in [13:24:21] and then you need wikibase code [13:24:33] I only call $something->translate( ) [13:24:41] any "glue" between data model and mediawiki stuff or mediawiki dependent stuff is in wikibase [13:24:44] as denny says [13:24:50] I don't really care whether it's really LanguageWithConversion .. [13:25:13] another option could be to resolve the list before [13:25:19] $something->getLanguage( ) $something->getFetchLanguage( ) $something->translate( ) [13:25:31] and ask Entity::getlabel with a flat list [13:26:06] no it depends on how many labels does the entity have [13:26:18] explain please [13:26:21] or I have to get a full list of labels, then intersect myself [13:26:22] New patchset: Daniel Kinzler; "(bug 49742) Hook PropertyInfoStore in service reg." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71343 [13:26:47] liangent: that would be bad, indeed. but i don't fully understand, sorry [13:28:25] benecloudstar around? :) [13:30:39] Denny_WMDE: there'll be something [13:30:39] $returnLabels = array(); [13:30:39] foreach ( $chains as $chainFor => $chain ) { [13:30:39] foreach ( $item in $chain ) { [13:30:39] if ( isset( $label[$item->getFetchLanguage()->getCode()] ) { [13:30:39] $returnLabels[$chainFor] = array( [13:30:39] 'language' => $item->getLanguage()->getCode(), [13:30:40] 'value' => $item->translate( $label[$item->getFetchLanguage()->getCode()] ), [13:30:40] ); [13:30:41] break; [13:30:41] } } } [13:33:48] if this piece of code is in DataModel, $label is already these, and getFetchLanguage/getLanguage/translate works as duck typing [13:34:31] if it's in Wikibase, I should get $label with ->getLabels() with no language restriction first [13:35:33] i am sorry, i am really trying to follow [13:35:41] can we make an example of an item with a few labels [13:35:46] and an example request [13:35:56] and what should come out given a few such example requests [13:36:12] i am very sorry for being so slow [13:39:48] Denny_WMDE: well will it be easier to write some demo code first [13:40:13] maybe [13:40:15] or will understanding that be difficult for you [13:40:26] i am trying to write an example [13:40:26] given an item [13:40:31] given a few requests [13:40:35] what is the expected result [13:41:25] then another question, is this fine to use qqz to indicate requests language? {"p2":{"id":"p2","type":"property","labels":{"qqz":{"language":"de","value":"AnotherItem"}},"datatype":"wikibase-item","title":"Property:P2","lastrevid":47},"q3":{"id":"q3","type":"item","labels":{"qqz":{"language":"en","value":"Stuff"}},"title":"Item:Q3","lastrevid":56}} [13:42:04] New patchset: Daniel Kinzler; "(bug 49742) introducing PropertyInfoTable." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71333 [13:42:09] liangent: https://www.mediawiki.org/wiki/User:Liangent/wb-lang/example [13:42:13] can you continue on this one? [13:42:16] as an example? [13:42:21] i will check your other question now [13:43:57] in your example, "qqz" means "in the language that was requested", and "de" (for the label) is the language of the actual result, right? the requested language is nowhere visible anymore, is this correctly understood? [13:46:10] Denny_WMDE: added [13:46:35] and qqa=qqz I randomly picked another one [13:47:06] reload. I edited a bit [13:48:24] why do i ask for sr-ec-converted-from-sr instead of sr-ec only? [13:48:56] sr-ec-converted-from-sr is a LanguageWithConversion object, right? [13:49:38] right [13:50:15] well let me expand it to answer "why do i ask for sr-ec-converted-from-sr instead of sr-ec only?" [13:50:37] done [13:51:26] edited again [13:51:44] ok, i will add a bit more to see whether i understood [13:52:07] btw do you think duck typing is called a dependency? [13:52:22] I'm used to this as a python user too [13:52:44] i think it should be a dependency also in PHP [13:52:54] but i am not a good PHP developer [13:53:15] i would like to hear some of the more experienced devs on that (DanielK_WMDE_ Jeroen aude ?) [13:54:19] you don't really need a LanguageWithConversion here, as long as it can provide getLanguage()->\Language, getFetchLanguage()->\Language, translate(string)->string, it's ok [13:54:52] for that sr-ec-converted-from-sr fallback item [13:55:06] liangent: i extended the example a bit more [13:55:11] can you please check and correct? [13:55:37] i will quickly bother jeroen, he just walked in about the duck typing [13:55:57] liangent: duck typing is usually not a good idea, much better to add an interface. [13:56:12] you can benefit much better from ide support for type hinting and parameter checking that way [13:56:33] we are working with type hints as much as possible, and duck typing will not work with that at all. [13:56:43] DanielK_WMDE_: well I don't use ide :p [13:56:56] * aude uses vim :D [13:56:59] http://www.wikidata.org/wiki/User:AvocatoBot >> http://benestar.github.io/DotNetDataBot/ [13:57:06] dislikes ide [13:57:10] New patchset: Daniel Kinzler; "(bug 49742) Rebuild script for property info table." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71336 [13:57:20] New patchset: Daniel Kinzler; "(bug 49742) Adding caching layer for property info." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71339 [13:57:28] Lydia_WMDE: ^^ [13:57:54] liangent: other people do, and type mismatches will be highlighted as errors. also type hinting is enforced by php at runtime. [13:58:31] * DanielK_WMDE_ thinks IDEs are great to avoid errors and spend less time finding and opening files, searching around, etc [13:58:49] * aude disagrees with DanielK_WMDE_ :) [13:59:19] aude: we could benchmark at some point :) [13:59:23] heh [13:59:36] also, source code debugging is a must, imho. [13:59:44] it makes finding bugs about 5x faster [13:59:54] vim can be super powerful :) [13:59:54] depending on the kind of bug, obviously [14:00:07] super customisable [14:00:12] aude: i know, but few have tweaked and mastered it to that extend. [14:00:16] super awesome [14:00:30] you can turn vim into an ide - if you do that, i fully support using vim :) [14:01:09] but usually, watching a "plain editor" fan navigate the source just makes me impatient. all that opening, scrolling and searching - instead of a single click :) [14:01:13] * aude would also use sublime [14:01:19] (not to mention the print_r debugging) [14:02:22] aude: anything with sourc ecode debugging and symbol resolution (click a type or method to open the definition), search funtions for "where is this used", and "does this symbol exist". [14:02:34] i don't care what it looks like if it does these things. [14:02:58] i do beleve these are essential - a real productivity boost [14:03:17] Denny_WMDE: https://www.mediawiki.org/w/index.php?title=User:Liangent/wb-lang/example&diff=721316&oldid=721312 [14:03:21] New patchset: Daniel Kinzler; "(bug 49742) Introducing PropertyInfoDataTypeLookup" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71341 [14:03:29] New patchset: Daniel Kinzler; "(bug 49742) Hook PropertyInfoStore in service reg." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71343 [14:07:51] Lydia_WMDE: DAAAAAAAAAAAAAAAAAAAAH [14:08:02] JeroenDeDauw: ? [14:08:24] aude: does the repo know it's own site ID? [14:08:38] Lydia_WMDE: you happy now? :p [14:08:52] noooooo! :P [14:13:21] here? [14:13:29] liangent: yes [14:14:21] ok, quim will join us in a moment too [14:14:38] * aude would be totally incapable of a skype call in german, but could manage irc in german [14:14:55] thinks irc is better [14:15:03] hi qgil [14:15:04] hi there [14:15:13] hi qgil [14:15:25] New review: Hoo man; "Looks good now, thanks :)" [mediawiki/extensions/Wikibase] (master); V: 2 C: 2; - https://gerrit.wikimedia.org/r/71337 [14:15:26] Change merged: Hoo man; [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71337 [14:15:26] ok... let's continue here. [14:15:33] Granjow: ^ ;) [14:15:40] hi qgil [14:15:56] liangent: (when you have time) why are those incorrect calls? [14:16:01] (still trying to understand) [14:16:25] liangent, Denny_WMDE aude I'm doing this meeting will al GSoC teams [14:16:31] qgil: ok [14:16:37] just to make sure we are all in a same pag [14:16:49] for pragun, skype or hangout is not a problem [14:16:53] did you have a chance to attend the allhands irc meeting last week? [14:17:01] he already joined us this morning via hangout [14:17:07] qgil: i was there [14:17:08] I was there [14:17:10] no sorry, i had a talk at that time [14:17:12] kind of jet lagged , but there [14:17:24] i will ask aude for a quick recap [14:17:44] ok, consider me having been there :) [14:17:56] ok, at http://www.mediawiki.org/wiki/Summer_of_Code_2013#IRC_logs_.26_stuff there is a log of the meeting. All the general info was shared there and if you have any question about that you can just ask, now or later [14:18:08] http://www.mediawiki.org/wiki/Summer_of_Code_2013#IRC_logs_.26_stuff [14:18:38] filled him in, in a nutshell [14:18:40] I find interesting to go through the lessons we learned in the last OPW round: https://www.mediawiki.org/wiki/Outreach_Program_for_Women/Round_5 [14:19:02] we are having liangent and pragun (and will extend invitation to nilesh) to put stuff in our weekly status update to the community [14:19:03] since that is the last mentorship iteration we did before this GSoC round [14:19:15] (we'll get to reporting) :) [14:19:17] then it will be easier for them to have stuff for the monthly update [14:19:19] ok [14:19:55] "We can't assume technical people don't need a basic introduction." well, liangent has been here for a long time so I assume you have no problem (at all) on this... [14:20:43] "Proposals must go through public community review" this was already done as part of the GSoC selection process, where liangent was always a strong candidate - well done! [14:21:13] "Proposals must consist in one project only." this is the case of your project, is it? Are you all clear on the scope and the goal? [14:21:25] * aude nods [14:21:45] each project is very distinct [14:22:07] what do you mean, each? [14:22:12] all our students [14:22:19] we are talking about liangent now [14:22:27] ok, i don't understand your question [14:22:31] this is the one were i have a bit of disagreement with liangent :) [14:22:40] btw qgil I guess emphasize 'Proposals must consist in one project only.' too much will reduce extensibility of code written by students [14:22:48] we must plan what need to be done next [14:23:04] ok, this is the project: http://www.mediawiki.org/wiki/User:Liangent/wb-lang [14:23:09] she always wants to do much more than what I want to suggest [14:23:18] are you all three on the same page about what is this project about and what needs to be done? [14:23:20] and i have the fear of holding her back too much [14:23:32] but i am always worried whether we are taking on too much [14:24:15] as long as it's one step at a time, i think it's okay [14:24:44] the "Community bonding" period, which you marked as complete was the prfect time to be all in the same page. If not, this should be your priority before starting to code away. [14:25:08] in general it is good to go through steps that can be pushed and merged, [14:25:34] rather than trying to make a round so big that never gets closed [14:25:47] I'm trying so but reviewing backlog is always there [14:25:48] * aude already merged some code of liangent's last night [14:25:48] is at least your next step clear? [14:25:56] more is going in today, i hope or soon [14:26:20] having code merged already in July 1st is a GSoC success :) [14:26:24] :) [14:26:34] yes, i think that's one clear for us, what do you think, liangent? the next steps are clear. it is just how far we might get which is a question :) [14:27:38] Ok, all in all it looks like you are in a tactic / immediate agreement and you will need to make sure in the following days / weeks that you are also in strategic / program agreement [14:28:04] Denny_WMDE: ease of further developments eg about further code maintenace or about api users or about gadgets authors etc [14:28:14] not really need to be done by myself [14:28:22] liangent: agreed [14:28:37] Think that GSoC will pass quickly. End of September looks far in time but it will be under your feet sooner than expected. It always happens. :) [14:28:54] liangent: did you get the invitation to our dailies, btw? [14:28:56] * aude nods [14:29:04] you don't have to join, but i wanted to make sure you can if you want to [14:29:16] Denny_WMDE: I did [14:29:21] we sometimes do it by email, in case we can't join in person or on hangout [14:29:24] or skype [14:29:46] if you want to send an email to us each day, sayign what you did and what you are working on, that is fine also [14:30:03] although it's interesting to hear what others are doing also [14:30:34] Related to the previous point: "Proposals must specify a clear and measurable outcome." If not now, I strongly recommend you to have a clear idea of what DONE means in a month. [14:30:35] well I don't see many such mails in my inbox [14:31:03] (agreeing how you work and communicate was also part of the "community bonding" period :) [14:31:25] qgil: we communicate mainly on irc but allow additional options [14:31:28] reviewwwww https://gerrit.wikimedia.org/r/#/c/70331/ [14:31:40] whatever suits the student [14:31:56] aude, Denny_WMDE did you go through http://www.mediawiki.org/wiki/Summer_of_Code_2013#Community_bonding_period with liangent in June? [14:32:02] Denny_WMDE: you want to review https://gerrit.wikimedia.org/r/#/c/70331/ so the query stuff happens faster :p [14:33:00] didn't do it officially especially for those social works ... [14:33:51] she has things well documented on mediawiki.org and have the bugs for her work [14:33:57] ok, let's move on [14:34:01] "Proposals shouldn't depend on Wikimedia Foundation's short term priorities." [14:34:38] how is this point? does your work depend on e.g. Wikidata functionality expected to be delivered these days or similar dependencies? [14:34:50] no [14:35:30] The idea is to isolate GSoC projects as much as possible of WMF / WMDE short term plans and deliveries [14:35:30] so they are not affected by possible delays etc [14:35:38] liangent, do you agree? [14:35:58] there's no such thing blocking her [14:36:13] as long as they don't rewrite the whole wikibase of shut down wikidata :p [14:36:20] ok :) [14:36:21] just getting through the code reviews and discussing implementation with denny etc. [14:36:24] we are progressing [14:36:38] liangent: certainly hope not! :) [14:36:40] "The first contribution must be related with the type of project proposed." we are well past this point. :) [14:37:00] me with "Two mentors are required for each intern." - thank you to both for volunteering! [14:37:54] Note that Denny is the primary mentor, which simply means that, in case of things going weird or wrong, he will be the first one to ping. Other than that, you are a team working in the way you prefer. [14:37:57] is this clear? [14:38:15] hmm it's always easier to find aude [14:38:51] liangent: yeah, i am often traveling or something [14:39:04] * aude works crazy hours of the day and night sometimes :) [14:39:05] you can always reach me via email [14:39:22] Denny_WMDE: including gerrit review emails? [14:39:25] or did you disable it? [14:39:48] Aude is primary mentor in Mobilizing Wikidata, and Denny is secondary mentor in Wikidata Entity Suggester. You need to be careful not to become overloaded. [14:39:55] sure [14:39:57] I mean, currently when I uploaded a patch I simply put you and aude in the reviewer list [14:40:07] liangent: that is good [14:40:09] i see those [14:40:17] ok [14:40:26] how do i figure out my gerrit password? i am logged out, does anyone know? [14:40:46] https://gerrit.wikimedia.org/r/login/q/status:open,n,z [14:40:56] https://gerrit.wikimedia.org/r/login/ [14:40:56] Denny_WMDE, in case of GSoC overload you see which project has the priority. Daniel is the primary for the other one. [14:41:09] but that has no reminder [14:41:25] might it be the same as wikitech wiki [14:41:31] it is [14:41:32] since it is all ldap [14:41:35] yeah [14:41:39] so do password reset on wikitech wiki [14:41:56] qgil: think we're doing okay [14:42:03] ok, next: "Teams having daily contact via IRC have more chances of success" [14:42:07] i've been assisting volunteer developers for the past year [14:42:09] we insist on this a lot [14:42:19] used to doing this kind of stuff and enjoy it [14:42:51] aude, Denny_WMDE liangent we have no doubt about you and this GSoC project! This is why all you are here working on it. :) [14:43:05] https://wikitech.wikimedia.org/wiki/User:Denny_Vrandecic [14:43:25] I'm just doing this review almost as a robot, and every time is useful to find little things that in a team of 3 remote people might not be obvious :) [14:43:35] ok [14:43:54] daily IRC sync, are you doing this? [14:44:25] it can be just a ping to make sure everything is fine [14:44:31] most of the time, yes (and as much as denny is available) [14:44:36] sometimes not on the weekends [14:44:42] that's fine :) [14:44:43] sometimes on the weekends [14:44:48] fine too :)) [14:45:24] liangent, the idea here is that you are more or less aware when you have a chance to find your mentors on IRC. Do you have this feeling? [14:46:08] i'd say denny is more inconsistent yet is around during the week when he's not travelling or on vacation [14:46:08] yes [14:46:13] timezones are also a challenge [14:46:21] ok [14:46:25] "Monthly reports must be required and plugged to Wikimedia's monthly reports routine." [14:46:45] we talked about monthly reports in the allhands. Are they clear? [14:47:59] as aude mentioned earlier, we spoke about weekly reports [14:48:04] for our weekly in wikidata [14:48:10] i think liangent is aware [14:48:38] I remember it was mentioned there, but I can't find those exact lines in that chatlog now [14:48:40] the weekly reports are something the entire team participates in [14:48:45] monthly reports: http://www.mediawiki.org/wiki/Summer_of_Code_2013#Reporting [14:49:15] qgil: so you are insisiting on monthly reports even though we have weeklies? [14:49:17] they are a requirement for all GSoC students, just like monthly reports are a requirement for WMF projects and Wikimedia activities in general [14:49:19] something like http://www.mediawiki.org/wiki/User:Pragunbhutani/GSoC_2013_Updates [14:49:22] maybe [14:49:29] some would be duplicate so just cut & paste [14:49:53] and he linked it in http://www.mediawiki.org/wiki/Mentorship_programs/status and [14:49:59] http://www.mediawiki.org/wiki/Summer_of_Code_2013 [14:50:07] i think that is all [14:50:29] that's all indeed. [14:50:41] then end of the month is easy cut & paste [14:50:42] qgil: are you insisting on monthlies even though we have weeklies? just to understand that [14:50:49] yes, I am [14:50:51] Denny_WMDE: i think it is a requirementy [14:50:53] requirement [14:51:04] why? [14:51:09] i think lydia does those for us also [14:51:11] what is the benefit of that? [14:51:20] just to sum things up? [14:51:37] why not biweeklies too? [14:51:37] heh [14:51:46] Wikimedia has monthly reports, and we want GSoC projects to be just part of that [14:51:56] well it can be easily worked around by concatenate existing reports [14:52:07] like lydia does http://www.mediawiki.org/w/index.php?title=Wikimedia_engineering_report/2013/May&diff=prev&oldid=704412 [14:52:17] Denny_WMDE, I have been pointing to http://www.mediawiki.org/wiki/Summer_of_Code_2013#Reporting since some weeks ago [14:52:19] although not sure the students reports need to be that long [14:52:24] we can discuss further over email if you wish [14:52:33] liangent , qgil i hope you found this meeting more useful than i did [14:52:58] it's just a short summary of the most relevant things, linking to the resources to know more [14:53:15] liangent, you can see many examples in the reports of the other students [14:53:36] Denny_WMDE, don't be mad at me :) we have 20 teams and getting 20 successes is a task of everybody [14:53:48] also VERY IMPORTANT [14:54:03] http://www.mediawiki.org/wiki/Summer_of_Code_2013#Reporting two of those reports must be done by the mentor [14:54:15] mid term evaluation and final project evaluation [14:54:23] without these, liangent won't get a check from Google [14:54:33] Denny_WMDE, is this clear? [14:54:52] this is my fourth gsoc [14:54:56] qgil: when is the mid term evaluation need to be done? [14:55:00] when does [14:55:16] good Denny_WMDE . don't be offended. I just go through the checklist. [14:55:27] that is actually exactly what offends me [14:55:28] * aude clicks the link [14:55:41] i could have spend one hour on reviewing liangents work [14:55:47] and actually helping her [14:55:49] ok, got it, end of july [14:55:55] Denny_WMDE, well, this is a reason why I think calls might work better than IRC for something like this. [14:56:04] * aude not so sure [14:56:10] it depends on the participants [14:56:11] especially with students who are not understanding the language when spoken [14:56:34] * aude thinks it would be like doing a skype call in german (i would be terrified and incapable) vs. irc  [14:56:39] I'll have the chat with Denny_WMDE , no worries. It's no good that mentors and org admins are not in good sync [14:56:40] gerrit died! [14:56:47] althoguh i think liangent is much better at english than my german is [14:56:49] and liangent doesn't need to see any of this [14:57:11] JeroenDeDauw: is that the reason I'm not being able to update my repos? [14:57:17] Denny_WMDE, I'll be in Germany next week and will invite you for a call, ok? [14:57:18] pragunbhutani: that would be [14:57:30] it happens time to time :( [14:57:34] pragunbhutani: possibly, its back now [14:57:37] qgil: no, having more calls is not what I need, thanks [14:57:41] let's just move on [14:57:51] ok Denny_WMDE ..... [14:58:02] the time is over and I have another GSoC team meeting starting now [14:58:09] ok, thanks qgil [14:58:13] JeroenDeDauw: ah yes it is [14:58:24] liangent, aude Denny_WMDE if you have comments / questions you can find me on IRC / email [14:58:28] pragunbhutani: sometimes it goes down for a minute [14:58:32] qgil: ok [14:58:39] thank you for your time and good luck with your project! [14:58:41] * aude usually around also [14:58:53] or otherwise will see a ping when i come back [14:59:15] qgil: ok got it [14:59:19] thanks [14:59:29] bye, need to go [14:59:36] alright, i think it's time to go home but will be back in a few hours..... [14:59:53] You'll be back later aude ? [14:59:59] pragunbhutani: yes [15:00:06] okay cool [15:00:13] probably in 3 hours-ish and then on for a while [15:00:31] DanielK_WMDE_, are you ready for the hangout? [15:00:34] okay [15:00:43] liangent: is this one better? https://www.mediawiki.org/w/index.php?title=User:Liangent/wb-lang/example&diff=721328&oldid=721316 [15:00:51] not healthy to sit at computer all day :) [15:02:41] aude, Denny_WMDE is DanielK_WMDE_ around? [15:03:03] qgil: if he responds here, yes [15:03:06] :) [15:03:10] he's working remotely [15:03:14] ok [15:03:26] could be interrupted by kids [15:16:31] Is there a way to speed up adding items? Via the JavaScript API it takes 1 to 2 seconds for a single entry (create entity, create claim) [15:25:02] New review: Krinkle; "This repository has a jenkins gate-and-submit pipeline, please don't set Verified manually and espec..." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71337 [15:26:51] New patchset: Krinkle; "Restrict Verified/Submit to JenkinsBot and l10n-bot" [mediawiki/extensions/Wikibase] (refs/meta/config) - https://gerrit.wikimedia.org/r/71357 [15:27:04] Change merged: Krinkle; [mediawiki/extensions/Wikibase] (refs/meta/config) - https://gerrit.wikimedia.org/r/71357 [15:28:54] Abraham_WMDE: we forgot to do our call on world domination :P [15:36:41] JeroenDeDauw: indeed [15:37:38] * JeroenDeDauw things this is a good url to DDoS some WMF server with https://git.wikimedia.org/?db=1337 [15:39:07] Denny_WMDE: if you can have a look at the serialization format for Ask (that integration test is the best place to get an idea of what it looks like quickly), soon it will be twice as hard to make changes to it [15:42:38] JeroenDeDauw: where is that integration test? [15:42:43] https://gerrit.wikimedia.org/r/#/c/70331/12/Tests/Phpunit/Language/QueryTest.php [15:42:44] ? [15:43:03] or https://gerrit.wikimedia.org/r/#/c/70331/12/Tests/Integration/Serializers/QuerySerialializationTest.php ? [15:47:25] New review: Denny Vrandecic; "I am sorry, I do not understand this code. I tried to read the tests, but they do not make sense to ..." [mediawiki/extensions/Wikibase] (master) C: -1; - https://gerrit.wikimedia.org/r/71182 [15:47:52] JeroenDeDauw: did you answer? i dropped out for a moment [15:48:23] Denny_WMDE1: I'm passing the hole thing as a array (and it don't have a java-style array syntax), there's even nowhere to place type hinting [15:48:30] (about that duck typing thing) [15:48:34] JeroenDeDauw: ^ [15:48:52] liangent: there is, in the comment [15:50:11] Denny_WMDE1: oh [15:50:36] @param Thingy[] $foo [15:51:07] heh, Fatal error: Class 'Wikibase\EntityId' not found in mediawiki\extensions\Wikibase\lib\WikibaseLib.php on line 165 >.< [15:51:22] seems I broke my local install.. [15:51:37] addshore: install WikibaseDataModel extension [15:52:00] Denny_WMDE1: regarding https://gerrit.wikimedia.org/r/70871, there's nothing to store in class instances I can think of [15:52:27] liangent: that doesn't matter [15:52:27] so LanguageSomething::getInstance()->getLanguageFallbackChain( ) is basically identical to have public statics [15:52:41] I agree with that [15:52:46] don't do singletons either [15:52:55] New review: Aude; "(1 comment)" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71182 [15:53:19] liangent: heh, I guess it has been a while since I have 'pulled' on my local stuff :P [15:53:23] Denny_WMDE1: so do what? [15:53:31] a normal class [15:54:28] new LanguageSomething()->getLanguageFallbackChain( ) everywhere ? that creates nothing but a bunch of one-off objects [15:55:09] no [15:55:25] you have the object that uses the language fallback chain service [15:55:48] that object, maybe upon construction, gets an object that will do the fallback chain generation when needed [15:56:36] so it will be, with a private member, $languageFallbackChainGenerator->getFallbackChain( 'en' ) [15:57:01] if you want a different generator, you just inject it into the constructor [15:59:56] does this make any sense? [16:00:34] New review: Denny Vrandecic; "code in general OK, but should not be static" [mediawiki/extensions/Wikibase] (master) C: -1; - https://gerrit.wikimedia.org/r/71279 [16:06:40] Denny_WMDE1: liangent: some quick thoughts on this LanguageWithConversion object: http://pastebin.com/tMMTpnBX [16:08:08] Denny_WMDE1: so LanguageFallbackGetter::factory( /* default */ )->getFallbackChain( ), but allows alternative LanguageFallbackGetter::factory( new MyLanguageFallbackChainGenerator() )->getFallbackChain( ) ? [16:09:36] JeroenDeDauw: that might be similar to a core class Language thing [16:10:02] liangent: I wouldn't regard core as a necessarily good example of how to do software design [16:10:18] yeah... Language is bad [16:10:28] (see also JeroenDeDauw 's comment in the pastebin ) [16:11:00] liangent: the class you wrote is less bad then Language luckily :) [16:11:11] re : LanguageFallbackGetter::factory( /* default */ )->getFallbackChain(  ) try without the static [16:12:47] Denny_WMDE1: fine with this naming or have a better idea? [16:12:47] 'object-type' => 'description', [16:12:47] 'description-type' => $description->getType(), [16:13:07] Denny_WMDE1: even without possible object cache? [16:13:12] just create new instances? [16:13:38] Also, what is preferred? objectType, objecttype or object-type? [16:13:59] DanielK_WMDE_: bikeshed opportunity, please weigh in ^^ [16:15:41] JeroenDeDauw: can you come over for a second? [16:23:05] liangent: yes, for now creating new instances is ok [16:23:33] mediawiki has the bagostuff class for providing caching in general, but that should be best done in a decorator or so [16:24:26] JeroenDeDauw would know more on that (maybe link to your blogpost?) [16:24:32] liangent: i have to run [16:24:35] for today [16:24:46] i unfortunately wont be there much tomorrow, i am afraid [16:24:49] but they day after [16:24:53] Denny_WMDE1: liangent: on caching: http://www.bn2vs.com/blog/2013/06/29/github-extension-for-mediawiki-and-simplecache-php-library/ [16:24:54] i will try to do more reviewing [16:26:34] see you [16:27:46] liangent: note, this solution I went with described in that post might not be applicable to what you are doing - I don't have a clear enough idea of what you are doing to say [16:29:08] JeroenDeDauw: I'm just trying to avoid executing expensive function too many times [16:30:15] btw currently fallback chains are arrays. do you think I should write a class for it? [16:33:32] liangent: I'm unsure what the structure of a fallback chain is [16:33:38] Is it just a list of languages? [16:33:48] Or is it more complex [16:33:59] JeroenDeDauw: a list of that LanguageWithConversion objects [16:34:26] liangent: a list of LanguageWithConversion seems like a bad idea to me [16:35:12] JeroenDeDauw: so what should it be? [16:35:33] liangent: am I right that what you need to do is [16:35:33] 1. given a fallback chain definition and a list of available languages, spit out the language to use [16:35:33] 2. do some translation or action using that language [16:36:48] right [16:38:05] liangent: for step 1 you can have a LanguageFallbackChain object or so that contains the definition of the fallback chain and has a method getLanguageToUse( array $availableLanguages ) [16:38:14] This method would return a string language code [16:38:21] And take an array of such string language codes [16:38:33] This class would not contain any Language object or have other dependencies [16:39:03] Once you then got your language code to use, you just get a Language object based on that and do what you need to do with it [16:39:19] That really depends on what you need to do as part of step 2. [16:39:42] What step 2 entrails should not really affect step 1 though [16:41:15] liangent: I'm off for a bit but will be back later [16:41:29] JeroenDeDauw: "This method would return a string language code" it need to return an array sometimes maybe [16:41:32] for converted languages [16:41:41] ok [17:42:52] why on earth I can't access my own contributions? [18:00:07] JeroenDeDauw: still not back? [18:06:46] liangent: pong [18:07:09] JeroenDeDauw: here [18:07:13] liangent: why would it need to return an array? In the end you only use one language right? [18:09:20] JeroenDeDauw: no - there's that "converted one" [18:09:34] so there should be a data source and conversion target [18:10:28] a data source and a conversion target [18:11:10] and that languagewithconversion is basically to encapsule that [18:11:20] that translate function is more like a shortcut [18:13:39] addshore: simyo [18:15:34] to reach the translation service provided in class LanguageConverter [18:17:33] Hate the difference between en-gb and en-us >.< [18:22:15] New patchset: Jeroen De Dauw; "Ground work for deserialization code" [mediawiki/extensions/Ask] (master) - https://gerrit.wikimedia.org/r/71383 [18:27:47] New patchset: Jeroen De Dauw; "Ground work for deserialization code" [mediawiki/extensions/Ask] (master) - https://gerrit.wikimedia.org/r/71383 [18:30:39] liangent: I don't understand what you are saying [18:33:59] JeroenDeDauw: background: some entity only have a zh-tw label, but user is requesting a zh-cn one. we can fetch the zh-tw label, then translate it to zh-cn [18:34:50] so I need the info "fetch zh-tw, translate to zh-cn" [18:35:17] liangent: translate? You'll have on the fly translation? [18:35:31] JeroenDeDauw: right [18:35:46] like what core does for wiki pages [18:36:08] liangent: well, perhaps you are right and this should be returned by that method. I still don't know what exactly makes up a "language fallback chain" [18:36:43] liangent: can you represent such a chain in JSON or something, then I'll have a better idea of what you are talking about [18:40:54] JeroenDeDauw: like a series of "fetch ii and return it as-is", "fetch zh-cn and return it as-is", "fetch zh-tw and translate it to zh-cn", "fetch zh and translate it to zh-cn", "fetch en and return it as is" info [18:41:37] when using it, try items one by one. if one 'fetch' succeed, do the second to either translate it and return = convert, or return it as-is = verbatim [18:49:04] liangent: right [18:49:41] liangent: so a falback chain is more complex then just being an ordered list such as "en, nl, de", meaning "English if available, if not nl, and as last resort de" [18:49:56] It also has info on this translation stuff [18:51:40] JeroenDeDauw: right. though translation info is already included in LanguageWithConversion [18:59:49] JeroenDeDauw: will it be better if I make it a class, with a method to accept an array to accept a data array keyed by language code, then return the value finally picked and transformed? [18:59:51] aude: ^ [19:04:53] liangent: creating an object that just holds a language fallback chain as I described is probably the way to go [19:05:16] liangent: I however still do not know what the fallback chain info looks like exactly [19:05:29] liangent: agree with jeroen [19:05:57] seems like there is a bit of complexity that an object would help represent and relate to stuff [19:06:46] liangent: what does this "lang foo should be translated into lang bar" info look like? Is this a simple map from source language to target language? Is this something that is per fallback chain or is it something that is more global? [19:11:30] JeroenDeDauw: core has some "list" of possible translation pairs [19:11:57] or do you think this should be decoupled from core and allow an external translation service? [19:12:33] if it's the case, some injection method described by denny should be really useful [19:14:06] decoupling would be a good thing in my opinion [19:37:59] liangent: figuring out which language something should be translated in is quite distinct from actually translating, those responsibilities should be kept separate [19:40:34] JeroenDeDauw: yeah and the only connection should be the code figuring out that should send the translator something that it can't translate, right? [19:40:39] *shouldn't [19:42:11] or it could try and then get told that it cannot translate that, and then carry on [19:42:15] whatever is simpler [19:43:10] liangent: i made another change in the example, what you think of this? https://www.mediawiki.org/w/index.php?title=User:Liangent/wb-lang/example&diff=721830&oldid=721392 [19:43:15] looks more consistent [19:44:14] but considering what you are talking, the getLabels probably shouldn't be that smart. If Entity is meant to be a dumb data object, services around it should be doing the smartness and doing the fallbackchaingeneration and the translation and fetching. [19:45:03] Denny_WMDE: also per previous talk, I want to change the fallback chain from an array to a class, with a method to accept an array to accept a data array keyed by language code, then return the value finally picked and transformed? [19:45:35] so fallbackchaingeneration is generating the fallbackchain object [19:45:59] and getLabels calls the method in fallbackchain class to "be smart" [19:47:06] sounds good [19:47:10] clearer [19:49:09] Denny_WMDE: btw I don't want to remove the behavior that calls with plain string as language code return plain string, to avoid changing all existing invocations at once [19:49:38] * legoktm huggles Adam_WMDE [19:50:05] liangent: ok, then i am taking this away again [19:54:08] New review: Krinkle; "Since the buttons would only be confusing, I've disabled them in Ied5c08e1b4ffb." [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71337 [20:14:54] New patchset: Liangent; "New class LanguageFallbackChain" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/70871 [20:15:38] Denny_WMDE: ^ chain generation is still in that class, but this interface allows easier change later [20:16:12] good [20:24:01] liangent: thanks for renaming, it is getting better :) [20:55:35] New patchset: Liangent; "New class LanguageFallbackChain" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/70871 [21:03:58] New patchset: Liangent; "New class LanguageFallbackChain" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/70871 [21:06:10] Denny_WMDE: with the class, that resolveMultilingualData can be done in it, instead of getLabels: https://gerrit.wikimedia.org/r/#/c/70871/14..16/lib/includes/LanguageFallbackChain.php [21:07:26] New review: Liangent; "(1 comment)" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/70871 [21:44:33] aude: there? [21:46:20] hi pragunbhutani [21:46:42] I just made a hello world skin [21:47:02] cool! [21:47:14] it simply adds 'Hello world' before the body of the page [21:47:29] ok [21:47:53] I want to try and make a box and give it a class [21:48:11] can you help me with that? [21:49:43] i can try [21:50:57] how do I go about it? [21:53:44] pragunbhutani: Just out of interest: Are you trying to skin MediaWiki itself now are hacking on MobileFrontend? [21:53:53] * or are you [21:53:55] hoo: MobileFrontend [21:54:00] ah [21:54:05] * hoo never touched that [21:54:11] actually, I've found a better question to ask [21:54:32] pragunbhutani: maybe take a look at https://git.wikimedia.org/tree/mediawiki%2Fskins%2Ferudite for a general mw skin [21:54:34] Do you still plan to use the non-JS page for mobile editing? [21:54:44] i need to look at mobile frontend [21:54:44] since the new skin extends SkinMobile, I needn't worry about the skinning so much [21:54:47] ok [21:55:08] the problem comes back to the entity view now, I think [21:55:09] i think non-js comes a second goal [21:55:15] would be great [21:55:23] k [21:55:49] aude: I still hope we can do both in one run here [21:55:58] hoo: i hope so [21:56:28] if we talk about implementing a separate MobileEntityView, then that should be possible shouldn't it? [21:56:55] if you need that, you can surely do it [21:57:54] i think that's the way to go, since entity view is not very well designed code [21:58:09] but if it's possible to improve both and share code, then that's good [21:58:51] that sounds like a good idea [21:58:57] but I'm not sure I know how to do that [21:59:41] are you suggesting that I should improve upon the existing entity view code itself? [21:59:54] such that it suits both mobile and desktop [22:00:28] perhaps though perhaps not yet [22:00:30] but think about it [22:00:42] as you go along [22:01:41] I am concerned that implementing a Mobile Entity View would require a lot of repetition of existing code [22:01:56] it would be nice to accomplish it without doing so [22:02:14] sure [22:03:17] pragunbhutani: then make an abstract entity view, then a desktop entity view and a mobile entity view which extend the abstract one? [22:03:31] aude: and it may require even faster review from you :) [22:03:40] I may be going to change that piece of code too [22:03:41] liangent: that's what I was thinking about [22:03:46] and there may be conflicts [22:04:04] aude: Is normalizeItemByTitlePageNames true in production? [22:04:08] so then I think it's best that I implement a mobile entity view right now, which is no-JS [22:04:30] and if that works out, we could use that to write the abstract entity view and change mobile and desktop to extend it [22:04:33] the desktop view with js is not good enough now .. [22:04:52] liangent: hah :) [22:04:55] having a good non-js mobile view may benefit the desktop view too [22:05:10] hoo: i don't think it is though we need to do settings update very soon [22:05:20] It's not :( [22:05:46] i might have to ask denny and daniel about it [22:05:50] so I think I'll go the mobile entity view way and later we'll try to unify the system [22:06:11] maybe have a bug for it [22:06:19] s/the desktop view with js is not good enough now ../the desktop view without js is not good enough now ../ ouch [22:06:19] aude: We either have to enable it or not admire it everywhere... there's that linkItem bug I can't resolve without normalizing pages somewhere [22:06:34] talked to Daniel about that already, but forgot the setting ;/ [22:06:41] DanielK_WMDE_: Around? [22:07:04] hoo: i can't remember if there was some reason not to [22:07:36] pragunbhutani: that's a good next step [22:09:04] pragunbhutani: liangent we don't necessarily have to do abstract / extend for this [22:09:30] maybe there can be some "service" classes or others that handle some shared parts of code [22:09:47] aude: ok [22:09:54] let's see how it goes [22:12:19] aude: agreed [22:29:58] New patchset: Hoo man; "Allow (optional) title normalization in wbgetentities" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71543 [22:31:51] New review: Hoo man; "(1 comment)" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71543 [22:42:04] aude: Any objections towards setting enableSiteLinkWidget to true per default? [22:42:15] Is that assumed to be false in production? [22:45:50] hoo: i think it should be true [22:46:12] ok :) [22:46:52] in production we have $wgWBSettings['enableSiteLinkWidget'] = true; [22:46:57] so true everywhere [22:47:36] btw, it should be $wgWBClientSettings and $wgWBRepoSettings now [22:47:50] New patchset: Hoo man; "Use the wbgetentities normalization in jquery.wikibase.linkitem" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71545 [22:48:17] aude: I really want that to be in before the next code freeze [22:48:40] and we *must* set the pref to stop testwiki from trying to alter wikidata.org before the wmf10 deploy [22:49:11] but I'm not sure how to set these prefs on a per wiki base [22:50:33] * aude updating the settings [22:50:50] :) [22:51:14] New patchset: Hoo man; "Use the wbgetentities normalization in jquery.wikibase.linkitem" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71545 [22:57:01] done and done [22:57:04] well not deployed yet [22:57:51] New patchset: Hoo man; "Set enableSiteLinkWidget to true per default" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71550 [23:00:43] :) [23:02:23] * aude waits for jenkins [23:03:08] https://gerrit.wikimedia.org/r/#/c/71549/ for propagate changes [23:03:26] already added myself there :P [23:03:30] k [23:03:47] it might not get deployed immediately though [23:03:51] at latest tomorrow [23:04:04] Change merged: jenkins-bot; [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71550 [23:04:09] Needs to be in on July 11 or we might get into trouble (dunno how much page moves happen on the test wikis) [23:04:18] needs to be tomorrow [23:04:26] no need to wait [23:04:56] good to do the settings when we're not deploying new code [23:05:18] Yes, setting these in advance gives lowers the heat :) [23:05:30] :) [23:05:54] oh, what about normalizeItemByTitlePageNames will you also do that? Or shall I poke Daniel tomorrow? [23:08:21] i'll ask daniel again [23:08:26] ok :) [23:08:48] I've already added him to my API patch and mentioned it in there [23:08:53] ok [23:21:23] salam [23:23:16] irc://irc.freenode.net/#wikimedia-stewards [23:23:28] Join #wikimedia-stewards [23:41:48] New patchset: Hoo man; "Include namespace in labels created via jquery.wikibase.linkitem" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71556 [23:45:04] New patchset: Hoo man; "Include namespace in labels created via jquery.wikibase.linkitem" [mediawiki/extensions/Wikibase] (master) - https://gerrit.wikimedia.org/r/71556