[00:14:14] mooeypoo, reviewing https://www.mediawiki.org/wiki/User:MSchottlender-WMF/Creating_a_new_notification_type . [00:17:04] (03PS1) 10Catrope: Fix links to sections with [[links]] in their title [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312959 (https://phabricator.wikimedia.org/T134216) [00:19:52] 06Collaboration-Team-Triage (Collab-Team-Q2-Oct-Dec-2016), 10Flow: Create a lockdown configuration for Flow on Enwiki to prevent anyone at all from creating new Flow boards - https://phabricator.wikimedia.org/T146727#2669485 (10Quiddity) [00:27:36] matt_flaschen, awesome, thanks! [00:28:30] mooeypoo, it looks really useful. Ready to move to content space when you're ready. [00:28:44] I'm ready if it looks good - we can always continue tweaking [00:28:59] Feel free to move it to wherever you think it makes most sense? [00:31:48] 06Collaboration-Team-Triage (Collab-Team-Q2-Oct-Dec-2016), 10Flow: Create a lockdown configuration for Flow on Enwiki to prevent anyone at all from creating new Flow boards - https://phabricator.wikimedia.org/T146727#2669485 (10Mattflaschen-WMF) Is there a way to revoke global rights on a particular wiki, so g... [00:33:06] mooeypoo, I forgot about https://www.mediawiki.org/wiki/Notifications/Developer_guide . Saw it just now when looking for where to put this. [00:33:11] We should merge it into that. [00:33:42] I have to go now, see you later or tomorrow. [00:36:36] (03PS1) 10Catrope: Use static Parser::guessSectionNameFromWikiText() [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312964 [00:38:31] (03CR) 10jenkins-bot: [V: 04-1] Use static Parser::guessSectionNameFromWikiText() [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312964 (owner: 10Catrope) [01:20:42] (03PS3) 10Kmuthu: Make user rights notifications link to added/removed group [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312436 (https://phabricator.wikimedia.org/T55860) [01:25:02] (03CR) 10jenkins-bot: [V: 04-1] Make user rights notifications link to added/removed group [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312436 (https://phabricator.wikimedia.org/T55860) (owner: 10Kmuthu) [01:36:04] (03PS4) 10Kmuthu: Make user rights notifications link to added/removed group [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312436 (https://phabricator.wikimedia.org/T55860) [02:45:06] 06Collaboration-Team-Triage (Collab-Team-Q2-Oct-Dec-2016), 10Flow: Create a lockdown configuration for Flow on Enwiki to prevent anyone at all from creating new Flow boards - https://phabricator.wikimedia.org/T146727#2669485 (10Peachey88) >>! In T146727#2669508, @Mattflaschen-WMF wrote: > Is there a way to rev... [03:53:59] (03PS5) 10Kmuthu: Make user rights notifications link to added/removed group [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312436 (https://phabricator.wikimedia.org/T55860) [03:54:05] (03CR) 10Catrope: [C: 032] Make user rights notifications link to added/removed group [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312436 (https://phabricator.wikimedia.org/T55860) (owner: 10Kmuthu) [03:57:50] (03CR) 10Catrope: "recheck" [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312964 (owner: 10Catrope) [04:00:08] (03Merged) 10jenkins-bot: Make user rights notifications link to added/removed group [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312436 (https://phabricator.wikimedia.org/T55860) (owner: 10Kmuthu) [09:05:19] 03Collab-Team-Q1-July-Sep-2016, 10Flow, 07Regression: Flow as a Beta feature: enable, disable and reenable doesn't seem to work - https://phabricator.wikimedia.org/T138310#2669919 (10Trizek-WMF) I've tried it on fr.wikiquote, and managed to opting out and re-enabling it without error. @Catrope, is it possib... [09:32:27] (03PS5) 10Addshore: Add mention failure notifications to Flow [extensions/Flow] - 10https://gerrit.wikimedia.org/r/308555 (https://phabricator.wikimedia.org/T144614) [11:35:17] 03Collab-Team-Q1-July-Sep-2016, 10Edit-Review-Improvements, 06Revision-Scoring-As-A-Service, 10rsaas-editquality: Research how to present ORES scores to users in a way that is understandable and meets their reviewing goals - https://phabricator.wikimedia.org/T146333#2670332 (10Pginer-WMF) >>! In T146333#26... [13:05:34] (03CR) 10Sbisson: [C: 032] Fix error-handling for handleSubmit [extensions/Flow] - 10https://gerrit.wikimedia.org/r/309636 (owner: 10Mattflaschen) [13:12:24] (03Merged) 10jenkins-bot: Fix error-handling for handleSubmit [extensions/Flow] - 10https://gerrit.wikimedia.org/r/309636 (owner: 10Mattflaschen) [14:01:33] 06Collaboration-Team-Triage (Collab-Team-Q2-Oct-Dec-2016), 10Flow: Create a lockdown configuration for Flow on Enwiki to prevent anyone at all from creating new Flow boards - https://phabricator.wikimedia.org/T146727#2670637 (10Alsee) 05Open>03Invalid [14:27:17] 06Collaboration-Team-Triage, 10Notifications, 10Collaboration-Community-Engagement, 06Community-Liaisons, 07Documentation: Document Echo Mentions whitelist and blacklist options on Notifications help page - https://phabricator.wikimedia.org/T129642#2111531 (10Qgil) Are you planning to work on this task d... [14:27:36] 06Collaboration-Team-Triage, 10Flow, 06Community-Liaisons, 07Documentation: Create an help page about Flow history system - https://phabricator.wikimedia.org/T113581#1670021 (10Qgil) Are you planning to work on this task during #liaisons-oct-dec-16 (or #cl-jan-17 )? [14:27:53] 06Collaboration-Team-Triage, 10Flow, 10Collaboration-Community-Engagement, 06Community-Liaisons, 10MediaWiki-extensions-GuidedTour: Create a guided tour about Flow - https://phabricator.wikimedia.org/T112757#1645088 (10Qgil) Are you planning to work on this task during #liaisons-oct-dec-16 (or #cl-jan-17 )? [14:28:08] 06Collaboration-Team-Triage, 10Flow, 06Community-Liaisons, 07Documentation: Create a page about (more) advanced Flow features - https://phabricator.wikimedia.org/T111529#1606503 (10Qgil) Are you planning to work on this task during #liaisons-oct-dec-16 (or #cl-jan-17 )? [14:34:35] (03PS7) 10Sbisson: [WIP] Update Flow caching strategy for multi DC [extensions/Flow] - 10https://gerrit.wikimedia.org/r/307951 (https://phabricator.wikimedia.org/T120009) [15:15:33] 06Collaboration-Team-Triage, 10Thanks, 10Revision-Slider, 06TCB-Team, and 4 others: RevisionSlider fails to re-trigger the Thanks JS code when the diff changes - https://phabricator.wikimedia.org/T142636#2670855 (10Tobi_WMDE_SW) 05Open>03Resolved [15:39:28] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 06TCB-Team, 07Wikimedia-log-errors: Request has exceeded memory limit DiscussionParser::getFullSection - https://phabricator.wikimedia.org/T144141#2670923 (10Tobi_WMDE_SW) [15:44:58] 06Collaboration-Team-Triage, 10Flow: Null edit in BoardMover doesn't work - https://phabricator.wikimedia.org/T146779#2670936 (10Mattflaschen-WMF) [16:52:08] matt_flaschen: it's the same revision object but some things have changed. Error: Update not allowed on: rev_content_url, rev_flags. Values: ( rev_content_url: ( old: '', new: '' ) ) ( rev_flags: ( old: '', new: 'utf-8,html' ) ) [16:57:38] Hmm, interesting. [16:58:50] 06Collaboration-Team-Triage (Collab-Team-Q2-Oct-Dec-2016), 10Flow: Create a lockdown configuration for Flow on Enwiki to prevent anyone at all from creating new Flow boards - https://phabricator.wikimedia.org/T146727#2671149 (10Mattflaschen-WMF) 05Invalid>03Open [17:06:26] 06Collaboration-Team-Triage, 10Notifications: Determine if multi-reverted edits still send notifications to all non-IP users who were reverted - https://phabricator.wikimedia.org/T146326#2671172 (10Quiddity) a:03Quiddity Thanks both. I will try to determine where this is (or should be) documented, and update... [17:11:24] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 13Patch-For-Review, 07Regression: [betalabs] Notification about Mention on wikitext pages does not link to the section where Mention occurred if links, templates etc are present in section titles - https://phabricator.wikimedia.org/T134216#2671182 (10Catrop... [17:24:11] 03Collab-Team-Q1-July-Sep-2016, 10Flow, 07Regression: Flow as a Beta feature: enable, disable and reenable doesn't seem to work - https://phabricator.wikimedia.org/T138310#2396630 (10SBisson) @Mattflaschen-WMF and I looked at it. There's an unexpected interaction between opt-in and the BoardMover. Not quit... [18:43:01] 10Collab-Notifications-Page, 03Collab-Team-Q1-July-Sep-2016: Special:Notifications - make the pagination controls sticky - https://phabricator.wikimedia.org/T140964#2671545 (10Catrope) a:03KMuthu [18:46:46] (03PS1) 10Sbisson: BoardMover: don't try to save a null edit [extensions/Flow] - 10https://gerrit.wikimedia.org/r/313052 (https://phabricator.wikimedia.org/T138310) [19:19:14] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 06Editing-Analysis: Measure number of page views until unseen notification is seen - https://phabricator.wikimedia.org/T114841#2671661 (10Mooeypoo) a:03Mooeypoo [19:26:22] 06Collaboration-Team-Triage, 10Notifications, 07Easy: "Learn more" link for right change notifications should point to a page about the group - https://phabricator.wikimedia.org/T57339#635597 (10Etonkovidova) Checked in betalabs - 'Learn more' points to the specific section on Special:ListGroupRights e.g. wh... [19:27:14] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 07Easy: "Learn more" link for right change notifications should point to a page about the group - https://phabricator.wikimedia.org/T57339#2671672 (10Etonkovidova) [19:30:21] (03PS8) 10Sbisson: [WIP] Update Flow caching strategy for multi DC [extensions/Flow] - 10https://gerrit.wikimedia.org/r/307951 (https://phabricator.wikimedia.org/T120009) [19:32:29] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 07Easy, 13Patch-For-Review, 05WMF-deploy-2016-10-04_(1.28.0-wmf.21): Echo: User rights change : Link to specific row of table that is applicable - https://phabricator.wikimedia.org/T55860#562831 (10Etonkovidova) Checked in betalabs - clicking on a notifica... [19:47:52] (03CR) 10Sbisson: [C: 032] Fix links to sections with [[links]] in their title [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312959 (https://phabricator.wikimedia.org/T134216) (owner: 10Catrope) [19:48:44] (03CR) 10Sbisson: [C: 032] Use static Parser::guessSectionNameFromWikiText() [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312964 (owner: 10Catrope) [19:49:08] 03Collab-Team-Q1-July-Sep-2016, 10Flow, 13Patch-For-Review, 07Regression: Flow as a Beta feature: enable, disable and reenable doesn't seem to work - https://phabricator.wikimedia.org/T138310#2671724 (10SBisson) a:03SBisson [19:53:35] (03Merged) 10jenkins-bot: Fix links to sections with [[links]] in their title [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312959 (https://phabricator.wikimedia.org/T134216) (owner: 10Catrope) [20:21:10] 06Collaboration-Team-Triage, 06Community-Tech, 06TCB-Team, 07Category, and 4 others: Improve diff compare screen - https://phabricator.wikimedia.org/T121469#2671826 (10Jdlrobson) https://gerrit.wikimedia.org/r/#/c/280904/ is still waiting for review and would help T117279 and hopefully make the diff code a... [20:25:20] 03Collab-Team-Q1-July-Sep-2016, 10Edit-Review-Improvements-ReviewStream, 13Patch-For-Review: Add fields needed by ERI to mediawiki.revision-create - https://phabricator.wikimedia.org/T145164#2671832 (10SBisson) @jmatazzoni Which events do we want to include in ReviewStream. I was about to only include edits... [20:30:53] * halfak waits for freenode to calm down [20:32:35] jmatazzoni_____, got a few minutes to talk about https://phabricator.wikimedia.org/tag/mediawiki-extensions-wikilabels/ and more specifically https://phabricator.wikimedia.org/T146406 ? [20:45:38] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 13Patch-For-Review, 05WMF-deploy-2016-09-20_(1.28.0-wmf.20): newNotifData.bundledNotifications.map is not a function - https://phabricator.wikimedia.org/T145825#2642269 (10Etonkovidova) Checked in betalabs - general regression testing was done after the fix... [21:08:21] (03PS1) 10Esanders: Fix typo in sans-serif classname [extensions/Flow] - 10https://gerrit.wikimedia.org/r/313120 [21:18:18] 03Collab-Team-Q1-July-Sep-2016, 10Wikimedia-Extension-setup: Add NewUserMessage to kabwiki, for Flow, if community agrees - https://phabricator.wikimedia.org/T145230#2672108 (10Mattflaschen-WMF) @Issimo_15 said at https://kab.wikipedia.org/wiki/Topic:Ta4vwsvia56u6bby, "Merci Darkoneko, je vais essayer de faire... [21:36:12] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 13Patch-For-Review, 05WMF-deploy-2016-10-04_(1.28.0-wmf.21): Echo master query spam on HTTP GET - https://phabricator.wikimedia.org/T146492#2663066 (10Etonkovidova) Did not see such warnings in deployment-fluorine02 /srv/mw-log/exception.log. [21:56:17] 10Collab-Notifications-Page, 03Collab-Team-Q1-July-Sep-2016: Special:Notifications - make the pagination controls sticky - https://phabricator.wikimedia.org/T140964#2672279 (10Catrope) @Pginer-WMF @jmatazzoni Once the pagination controls on the top are sticky, do we still need the bottom ones? IIRC those were... [21:57:53] 03Collab-Team-Q1-July-Sep-2016, 10Edit-Review-Improvements, 10QuickSurveys, 06Reading-Web-Backlog: Retool quicksurveys so we can do a survey on one page only - https://phabricator.wikimedia.org/T146495#2672281 (10Catrope) >>! In T146495#2668222, @Pginer-WMF wrote: > Desktop: > {F4526962} > > Mobile: > {F... [22:09:52] 03Collab-Team-Q1-July-Sep-2016, 10Edit-Review-Improvements, 10QuickSurveys, 06Reading-Web-Backlog: Retool quicksurveys so we can do a survey on one page only - https://phabricator.wikimedia.org/T146495#2672334 (10jmatazzoni) A few questions: - This survey is meant to appear on RecentChanges, which has... [22:28:22] RoanKattouw, meh, the merge() func is good, but nowhere is it documenting what $callback is expected to have as params [22:28:36] I assume function ( $value ) { ... } (or at least hope so) but I can't know [22:28:41] any idea?! [22:29:05] I've been grepping for anything using it but so far there's not much [22:29:26] mooeypoo: It says it in the docs I think, lemme check [22:29:27] oh! found something... [22:29:39] $this->cache->merge( [22:29:39] $this->cacheKey( $indexed ), [22:29:39] function( BagOStuff $cache, $key, $value ) use( $self, $row ) { [22:29:40] ... [22:29:56] * The callback function returns the new value given the current value [22:29:56] * (which will be false if not present), and takes the arguments: [22:29:56] * (this BagOStuff, cache key, current value, TTL). [22:30:26] (03CR) 10Catrope: [C: 032] Fix typo in sans-serif classname [extensions/Flow] - 10https://gerrit.wikimedia.org/r/313120 (owner: 10Esanders) [22:31:03] oh, I missed that [22:31:32] hm seems a bit redundant to return the cache key, but ok [22:31:35] not return, use [22:36:45] (03Merged) 10jenkins-bot: Fix typo in sans-serif classname [extensions/Flow] - 10https://gerrit.wikimedia.org/r/313120 (owner: 10Esanders) [22:52:52] Yeah I don't know why the BagOStuff object is passed in either [22:52:56] But something must be using it [22:55:11] o/ RoanKattouw. I've been meaning to talk to you about https://phabricator.wikimedia.org/tag/mediawiki-extensions-wikilabels/ and more specifically https://phabricator.wikimedia.org/T146406. Got a couple minutes to chat about status & plans? [22:55:24] (also jmatazzoni_____, not sure if you got my ping earlier) [22:55:25] Sure [22:55:54] I'll just say that where I'm at right now is that I've asked Baha what's up with the extension repo being empty, and he linked me to the Gerrit change that contains all of his code [22:56:00] Which I haven't gotten around to reviewing yet [22:56:09] ( https://gerrit.wikimedia.org/r/#/c/264415/ ) [22:56:50] RoanKattouw, I'm hoping that we can get work on this in some sort of plan. [22:57:00] Sould I just try and get you & jmatazzoni_____ into a meeting? [22:57:05] *should [22:57:13] It looks like Baha only worked on a front-end [22:57:27] halfak: Yeah maybe [22:57:32] I haven't really thought about back-end plans yet [22:58:25] RoanKattouw, he just copy-pasted the JS from the user-script and put the HTML elements to activate it on a special page. [22:58:32] Oh OK [22:58:44] And that still points to your backend I see [22:59:19] Yeah. That's right [22:59:21] 03Collab-Team-Q1-July-Sep-2016, 10Edit-Review-Improvements, 06Revision-Scoring-As-A-Service, 10rsaas-editquality: Research how to present ORES scores to users in a way that is understandable and meets their reviewing goals - https://phabricator.wikimedia.org/T146333#2672431 (10jmatazzoni) Following up here... [23:00:28] halfak: Reading through that task, can you clarify the definition of a workset? [23:00:36] Is it a subset of a campaign? [23:00:53] It seems it's defined by the campaign creator rather than defined as "whatever the user felt like doing that day"? [23:00:54] Right [23:01:01] It's a subset you checkout to work on [23:01:13] Oh I see [23:01:20] So then as long as you have it, nobody else does [23:01:33] Indeed. Or rather, it depends on how you configure the campaign. [23:01:49] E.g. if you only want 1 label per task, then yeah, only the one person can have a task in an active workset [23:02:06] But if you want, say 2, you can have two people have the task. [23:02:06] Could you also add a link to the source code of the Flask app to that task? [23:02:14] Oh, I see [23:02:25] https://github.com/wiki-ai/wikilabels [23:02:27] Will add [23:02:28] You potentially want things to be labeled multiple times by different pepole [23:03:50] Right [23:09:20] (03PS1) 10Catrope: Used parsed section titles for anchors [extensions/Echo] - 10https://gerrit.wikimedia.org/r/313136 (https://phabricator.wikimedia.org/T134216) [23:09:36] (03Abandoned) 10Catrope: Use static Parser::guessSectionNameFromWikiText() [extensions/Echo] - 10https://gerrit.wikimedia.org/r/312964 (owner: 10Catrope) [23:10:31] 03Collab-Team-Q1-July-Sep-2016, 10Notifications, 13Patch-For-Review, 07Regression, 05WMF-deploy-2016-10-04_(1.28.0-wmf.21): [betalabs] Notification about Mention on wikitext pages does not link to the section where Mention occurred if links, templates e... - https://phabricator.wikimedia.org/T134216#2672463 [23:15:05] (03CR) 10jenkins-bot: [V: 04-1] Used parsed section titles for anchors [extensions/Echo] - 10https://gerrit.wikimedia.org/r/313136 (https://phabricator.wikimedia.org/T134216) (owner: 10Catrope) [23:17:28] halfak: So, what would you want to discuss in this meeting with Joe and me? [23:17:41] (Sorry for spacing out for a bit, I got distracted submitting patches) [23:18:07] (03PS2) 10Catrope: Used parsed section titles for anchors [extensions/Echo] - 10https://gerrit.wikimedia.org/r/313136 (https://phabricator.wikimedia.org/T134216) [23:18:40] RoanKattouw, this is super confusing, I'm going to need serious brainhelp [23:18:59] mooeypoo: Go ahead [23:20:07] RoanKattouw, my **code** will need your brainhelp. I'm cleaning stuff up and will submit soon.. this is confusing [23:20:28] especially since I need to use seen time in the counter (to figure out if the data is valid) BUT I am also using the counter in seen time [23:20:32] **brain explodes** [23:20:55] hah yeah that can be dangerous [23:21:03] A uses B and B uses A [23:21:09] I made the seentime thing optional [23:21:12] exactly [23:21:20] public function increment( $type = 'all', $currSeenTime = null ) { [23:21:40] ^ so I am thinking that from inside SeenTime, I call increment( ... ) with the seen time string that seentime already knows [23:21:43] but then I also have in this method [23:22:00] $currSeenTime = $currSeenTime !== null ? $currSeenTime : EchoSeenTime::newFromUser( $this->user )->getTime( $type ); [23:22:21] So if you give it, fine, if you don't, the counter will ask seen time... and "getTime" is *not* using the counter -- only "setTime" does [23:22:26] so this should be safe recursively [23:22:54] getTime() can call setTime(), but that's deferred [23:22:59] (on cache miss) [23:23:02] right [23:23:05] ... right [23:23:18] RoanKattouw, also, I am not bothering to implement 'getCount' for type="all", because it makes no sense. [23:23:25] I could give the min or max but.. what? [23:24:08] In the logger, it should separate the values. If you opened something that had both, it'll store each separately. Either that, or we set an actual "all" value that counts that or something. [23:24:15] Oh you're tracking this for alerts and messages separately? [23:24:37] I guess that's good, it gives us more granular data [23:24:44] That's what it said in the ticket... [23:24:49] Oh haha OK then [23:24:57] Also, otherwise it's a problem because seenTime is separated by type [23:25:01] Far be it from me to question you for doing what I told you to :P [23:25:07] Right yeah that too [23:25:08] so if I don't, I'm going to have an issue tracking what counts for which time [23:25:14] haha [23:25:28] seenTime *can* give us 'all' by doing min on both [23:25:31] I guess it makes sense because alert vs message is the only property of an unseen notification the user can know about before it becomes seen [23:25:36] but it just makes no sense to do that in the counter's point of view... [23:25:52] But yeah there's no sensible way to implement 'all' in terms of alert/message [23:26:07] However, we have to think about how this works for mobile [23:26:10] Also, if I set this in "setTime" then setTime actually sets per type.. it converts "all" to a call per type [23:26:30] RoanKattouw, same way that seentime works. It will log twice - once for alerts, once for messages, with the same value [23:26:37] Hmm I guess so [23:26:38] We can add a parameter to the logger if it's mobile [23:26:55] Oh and due to seentime magic it'll know if it was an alert or message? [23:26:59] Make it easier to ignore a type. So when you look at the data, you can look at mobile + only-one-type [23:27:00] Yeah that may be a good idea [23:27:16] Because I feel like the lack of distinction in the mobile UI would dirty the stats [23:27:19] Well, it doesn't "care" what it was, it opens the mobile and goes "setTime( ... 'all' ) [23:27:28] and that does setTime( 'alert' ) and setTime( 'message' ) [23:27:35] each one of those will log the visits per type [23:27:48] OK sure [23:27:50] so if we also have a mobile flag, you could query mobile=true and only alerts or something [23:27:55] that will give you the actual mobile data [23:28:06] Yes, but the "only alerts" part of it won't mean much presently [23:28:10] I guess it would still function though [23:28:20] I'm talking about the logging schema [23:28:23] You would just have to be aware that querying the data in that manner doesn't mean much [23:28:31] But yeah we can log it that way [23:28:32] It will save type, pageviewCount, mobile [23:28:44] My concern though is this [23:28:47] RoanKattouw, I guess that I'm working on figuring out (1) what kind of plan we can put together for Wiki labels and (2) if the collab team can commit the necessary resources to complete the plan. [23:29:05] The mobile UI does not distinguish between "you have unseen alerts", "you have unseen messages" and "you have both" [23:29:10] If the answer to (2) is "no" then to adjust. [23:29:10] halfak, we are always down for The Plan[tm]. [23:29:16] :) [23:29:19] However, in the latter case we'd log two data points [23:29:36] So reconstructing the data into something meaningful for mobile seems hard [23:29:37] RoanKattouw, but it doesn't matter. [23:29:55] RoanKattouw, okay, scenario: You have unseen alerts but all your messages are seen. [23:30:11] Well I mean obviously we wouldn't try to analyze if there's a difference between how users respond to alerts vs messages (or maybe we will, as an unbiased baseline) [23:30:12] You go to mobile page and visit 10 pages before you open the mobile popup [23:30:29] But when computing averages we'd double-weight cases where the user had unseen notifs of both types [23:30:35] Now you open the popup, EchoSeenTime::setTime( 'all' ) is fired [23:30:56] Yes, and we'll log that you waited 10 page views before seeing your alert, and that works [23:30:58] it splits itself to fire setTime( 'alert' ) and setTime( 'message' ) and each f those call PageViewsLogger::increment( $type ) [23:31:18] now when the increment is running, it's **checking** whether it's dealing with the right seen time [23:31:30] But if you have unseen alerts AND messages, then it'll double-count, it'll log that you waited 10 page views to view your alerts and also 10 page views to view your messages [23:31:41] Which for desktop is OK if we only ever analyze the data separately [23:31:52] Come to think of it, I think we need to store 'all' separately for both mobile and desktop [23:31:55] It will always double-count, though, no? [23:31:57] Because I don't think it can be analyzed from the split data [23:32:11] Yes, I just realized desktop will double-count too and that's a problem there as well [23:32:32] It will only double-count where we have 'all' which is the special page, and I'm not sure we want to count the special page [23:32:37] Except on desktop you can say that at least the split-out data is meaningful in its own right (but you'd still be missing the 'all' data), whereas on mobile that's meaningless [23:32:51] but... but [23:33:02] ... but when we mark 'all' we actually mark individual types seenTime [23:33:21] if the measure is how many pages the user visited before they "seen" things then we need to split the update the same way [23:33:24] halfak: I'm hoping for yes to (2) but it depends on (1) and on Joe [23:33:25] otherwise it will make no sense [23:33:38] halfak: OK so let's have that meeting and as homework I'll look at how complicated all this stuf is [23:33:50] RoanKattouw, great. Please ping with questions. [23:34:01] mooeypoo: OK, let me explain my concern [23:34:03] I'll try to get the meeting scheduled this week since I'm away next week. [23:34:31] Say we are trying to answer the question "how many page views, on average, does it take a user to view a notification: [23:34:50] With your code we can answer that for alerts and for messages separately [23:35:35] Yes... [23:35:37] But the answer to the general question (i.e. regardless of alert/message) can't easily be constructed from the answers to the separate questions, nor from the data for it [23:35:39] Example: [23:35:49] Wouldn't we want to know whether people open either one of those more often? [23:35:51] User A receives an alert, waits 3 page views, then views it [23:36:02] Yes we would, I'm getting there [23:36:12] User B receives a message, waits 7 page views, then views it [23:36:36] User C receives an alert and a message (in rapid succession, let's say a reply and a thank), waits 10 page views, then views both [23:36:52] The avg number of page views for alerts is (10+3)/2 = 6.5 [23:37:04] The avg number of page views for messages is (10+7)/2 = 8.5 [23:37:14] how does user C view both? [23:37:27] For the avg number of page views until users view any notification, the correct answer is (3+7+10)/3 = 6.67 [23:37:36] There are strictly 2 pathways for that. Either through the mobile page or the special page. If we know that, we can adjust to that. [23:37:37] (I thought I was choosing round numbers but I failed) [23:37:50] C could also just open both flyouts [23:37:57] during the same page view [23:38:01] But then you'd want to know that they saw alerts and messages [23:38:06] Yes, we would [23:38:14] I don't understand why the separation is bad except for cases where it *confuses* the code [23:38:22] I'm saying we *also* want to be able to do stats that don't care about the alert/msg distinction [23:38:33] I am not saying the separation is bad at all [23:38:48] I am saying that I think we need to track both alerts/messages separately, and also 'all' as a separate thing [23:39:30] Because if you don't, then the only average regardless of type you can compute is (3+7+10+10)/4 = 7.5 and that's wrong since it weights C double [23:39:40] RoanKattouw, okay, so in the cases of 'all' (mobile, special page) we can store all as its own value [23:39:45] the problem is this though [23:39:54] we are incrementing everything on every pageview [23:39:57] Yeah that's what I'm suggesting, and then we'd also need to update that when a separated popup is opened [23:40:13] No, we're only incrementing the things the user has unseen notifs for [23:40:23] whenever I store one value, say I opened the message panel at some point and now I store 10 pageviews for the messages... I will have to zero-out 'all' [23:40:28] If the user has unseen alerts but no unseen messages, we should not increment the messages counter [23:40:35] does "all" have unseen if the user opened half of all [23:40:41] Oh, hmm, yeah shit [23:40:48] ... this is cofnusing. [23:40:53] That is a good question [23:41:05] I would say yes, but I would also say "not sure" [23:41:08] heisenanswer. [23:41:10] I guess for it to make sense you'd have to zero it out only when they have nothing unseen left [23:41:23] But then what would 'all' give us at all? [23:41:26] So when they open the second popup [23:41:28] if you zero it out like that [23:41:49] "From the moment that a user has any unseen notifs, to the moment that they have no unseen notifs, how many page views happened" [23:42:03] also, btw, this is in the cache -- if I visited 10 pages today, then switched to mobile and visited 10 more, then visited desktop and opened ONE of the popups, then went to mobile.... [23:42:03] .... [23:42:05] ......... [23:42:18] ............................................. I need to scoop my brain from the keyboard. [23:42:19] But an equally valid measure is "From the moment that a user has unseen notifs, to the moment they do anything at all to interact with notifications, how many page views happened" [23:42:26] haha [23:42:40] Under my proposed thing that would be OK [23:42:43] RoanKattouw, I think tomorrow, at the office, we should meet in front of a whiteboard. [23:42:48] LOTS AND LOTS OF ARROWS [23:42:48] Sure [23:43:00] I think I know what I think makes sense [23:43:07] We shall prove whether half of all counts for all [23:43:15] I think it shouldn't [23:43:22] RoanKattouw, at least we'll have it set up in a way where we know it's consistent [23:43:30] Yes [23:43:33] there's probably a bunch of "right ways" of doing it, depending on what we want to figure out from the data [23:43:43] I think not counting half of all as all will result in more consistency [23:43:45] but it's getting pretty convoluted - we might as well make sure we're consistently getting the data we want [23:44:02] But yes, you can also count it and then your metric just ends up meaning somtehing differnet [23:44:10] I ... am not sure, but I am open to it. I'm also in need of figuring out where and what I am zeroing-out when storing [23:44:14] or ignoring [23:44:18] Which, we could even track both [23:44:18] btw we'll have a problem with that too [23:44:26] RoanKattouw, ... i found another problem with your logic [23:44:30] here it is, ready? [23:44:32] Sure [23:44:54] We said that the counter only counts for its own valid seenTime. So if I try to increment for a seen time that's different than the stored one, I know that I'm invalid, I need to recound and store the new seen time [23:45:03] ... but in order to see if my counter's invalid, I take the current seen time. [23:45:07] alert, message give me seen time [23:45:11] GUESS WHAT ALL GIVES ME [23:45:39] It will be so inconsistent. the minute *one* of those types get updated, the seenTime that represents "all" **is also updated** [23:46:03] which theoretically either invalidates the count, *or* (worse?) means we have no way **of** invalidating the count [23:46:22] Let me also push what I currently have, as useless as it may be, because that can show the issue [23:46:26] halfak: Did you want to scope that as "all/any ORES support" or just WikiLabels? [23:46:59] Wiki labels is the most pressing ORES support. I guess if our collab continues, then it might extend beyond that [23:47:05] mooeypoo: OK I see what you mean [23:47:13] halfak: OK that makes sense [23:47:27] RoanKattouw, seemed to me that citing ORES in the title would be helpful for making it clear what this was about :) [23:47:53] halfak: I think Toby was going to organize a meeting to talk about various ownership questions around ORES, I haven't heard back from that so I guess we're just preempting/sidestepping that in the case of WikiLabels [23:48:00] Sure that makes sense :) [23:48:20] Yeah. I think that is fine. Maybe we should also have that larger ownership conversation in parallel. [23:48:38] (03PS1) 10Mooeypoo: [wip] Store the number of pageviews users have before seeing notifs [extensions/Echo] - 10https://gerrit.wikimedia.org/r/313148 (https://phabricator.wikimedia.org/T114841) [23:48:43] RoanKattouw, ^^ [23:48:43] * halfak wants to run away from developing Wiki labels and the ORES extension as fast as possible. [23:48:59] You folks are going to love the new sources of signals and types of models I'm developing for ORES though :D [23:49:01] look at the merge() func in increment() [23:49:09] * halfak runs towards ORES models and related research [23:52:48] (03CR) 10jenkins-bot: [V: 04-1] [wip] Store the number of pageviews users have before seeing notifs [extensions/Echo] - 10https://gerrit.wikimedia.org/r/313148 (https://phabricator.wikimedia.org/T114841) (owner: 10Mooeypoo) [23:53:52] (03CR) 10Catrope: [C: 04-1] [wip] Store the number of pageviews users have before seeing notifs (032 comments) [extensions/Echo] - 10https://gerrit.wikimedia.org/r/313148 (https://phabricator.wikimedia.org/T114841) (owner: 10Mooeypoo) [23:54:08] mooeypoo: Yes, I understand what you mean, you can't easily look at the 'all' seentime and decide if it's out of date [23:54:28] Especially since in my definition it depends on whether you had unseen alerts/messages or both at the start