[00:04:18] (PS1) Ejegg: Fix FIXME in validate_boolean [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446206 [00:07:12] mepps: are you still there? Am thinking it’s a bit late for you [00:07:54] Oh yeah eileen never updated my nick [00:10:12] :-) [00:10:55] (PS11) Ejegg: Add opt_in field for selected countries [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/445327 (https://phabricator.wikimedia.org/T199278) [00:10:57] (PS1) Ejegg: Get rid of traces of old old 'optout' field. [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446207 [00:14:55] (CR) Ejegg: "I like where this is going! Only thing is that whitespace mutations between patches make it a little hard to review this chain." [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446187 (owner: Mepps) [00:15:42] (PS2) Ejegg: Get rid of traces of old 'optout' field. [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446207 (https://phabricator.wikimedia.org/T199278) [00:50:22] (PS4) Ejegg: Code simplification. [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/443888 (https://phabricator.wikimedia.org/T196644) (owner: Eileen) [00:51:48] (CR) Ejegg: [C: 2] "Yep, the effect is the same! Maybe not a lot simpler to read, but it does do away with a bit of duplication" [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/443888 (https://phabricator.wikimedia.org/T196644) (owner: Eileen) [00:58:19] (Merged) jenkins-bot: Code simplification. [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/443888 (https://phabricator.wikimedia.org/T196644) (owner: Eileen) [04:54:26] Fundraising Sprint Karma chameleons hide amongst us, Fundraising Sprint Lactose is unusually tolerant, Fundraising Sprint Matt Damon to head up Space Force, Fundraising Sprint Naming Sprints Is Not Important, and 2 others: Civi: enable Force Merge Selected ... - https://phabricator.wikimedia.org/T193674 [04:54:41] Fundraising Sprint Karma chameleons hide amongst us, Fundraising Sprint Lactose is unusually tolerant, Fundraising Sprint Matt Damon to head up Space Force, Fundraising Sprint Naming Sprints Is Not Important, and 2 others: Civi: enable Force Merge Selected ... - https://phabricator.wikimedia.org/T193674 [06:56:22] Fundraising Sprint Gondwanaland Reunification Engine, Fundraising Sprint Homebrew Hadron Collider, Fundraising Sprint Ivory Tower Defense Games, Fundraising Sprint Judgement Suspenders, and 5 others: NULL referrers in contribution_tracking - https://phabricator.wikimedia.org/T161539 (Krinkle) [10:15:34] Wikimedia-Fundraising-Banners: All banner images should be inline SVG where possible - https://phabricator.wikimedia.org/T199147 (schoenbaechler) Oh, missed that one but it’s now also replaced @Pcoombe. Thanks for spotting it. [14:22:55] hi jgleeson! hi AndyRussG! [14:23:39] hey ejegg & AndyRussG :) [14:23:43] eileen: are you actually here now? [14:23:52] :-( [14:23:55] not sleepijng [14:24:04] ah bummer [14:24:24] yeah - but also didn’t /nick away earlier as I guess I should have [14:25:27] I like the look of that core pull with the 'merged into' display [14:26:54] ejegg: cool - I just need to track down Tim or Coleman - I feel like I need their blessing [14:27:45] We’ve kept them busy - although Coleman wasn’t too busy to construct an appropriate reply here https://github.com/civicrm/civicrm-core/pull/12495 [14:34:38] sigh gotta work on remembering my nickname [14:35:12] eileen go to sleep! does that work as a sleep aid? [14:35:22] :-) [14:35:34] perfect - fast asleep now! [14:37:18] and ejegg i agree i also like that merged into look [14:37:36] my only question is what happens when the merged into contact also gets merged [14:38:38] mepps: yeah I thought there would be an activity chain BUT the activity is merged across too [14:39:00] hmm interesting, so will it go to the undeleted contact? [14:39:15] (I actually wrote the code for the activity chain & then found out there was no need - the parent activity always links to the latest contact) [14:39:31] hi mepps! [14:39:37] hi ejegg! [14:39:42] ie. 2 activities - one on the deleted contact - it has a parent_id linking to an activity on the latest contact [14:39:57] eileen: oh, nice! [14:40:08] right, that makes perfect sense [14:40:12] ejegg, I've had a look over your patches from yesterday and I rebased your opt-in patch over the DataValidation fix patch, and the tests work for me also. I'm gonna quickly run through the precursor patch on its own once I get back just before +2'ing, so I know what's going on there. [14:40:27] thanks jgleeson [14:41:46] eileen's got an epic dragon-slaying pull request here: https://github.com/civicrm/civicrm-core/pull/12495 [14:41:51] Hmm - I only had 2 topics I’d worked on - we just discussed the merge one & the silverpop one I think I need to discuss with CC - just thinking if I catch up now I can unset my alarm [14:42:07] ejegg: I feel rather outdone by Coleman’s response TBH [14:42:33] :) [14:45:01] ok - so just covering my standup before going away … I think the only thing I have to add to that email is whether there is anything anyone wants me to review or help with tomorrow if I’m blocked on other people (although I think I can work off those upstream merge apis - even if they change they will exist in some form somehow) - but I might wind up blocked on Silverpop unless CC is around [14:51:39] OK - I think I can sleep now - don’t expect me for stand up but email me is there is some thing you want me to work on if I get blocked on upstreaming /feedback [14:55:54] Fundraising-Backlog, Wikimedia-Fundraising-CiviCRM: civicrm_cache 'path' key length exceeded, not unique - https://phabricator.wikimedia.org/T199810 (Ejegg) [15:20:16] ejegg: jgleeson|away mepps morningsies! [15:22:18] hello! [15:25:16] ;) [15:46:30] fr-tech shall we go over the process-control jobs at tech talk today? [15:46:51] sure! [15:51:05] nick jgleeson [15:51:19] try that again [15:51:29] sounds good ejegg [15:51:50] cool [15:55:04] fr-tech cwd Jeff_Green Any preference for the way the Python ingress scripts are actually run? As far as I can tell, there are three options: [15:55:25] 1) (probably wrong) Make it actually executable http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html [15:56:21] 2) Make it run as a script, e.g. $ python /srv/fr_user_event_consumer/banner_event_consume.py [15:56:59] 3) Make it run as a module, e.g. install with pip, then python -m fr_user_event_consumer.banner_event_consume [15:57:07] i like 1 best [15:57:11] https://stackoverflow.com/questions/22241420/execution-of-python-code-with-m-option-or-not [15:57:42] AndyRussG: process-control includes a bin dir with executable python scripts [15:57:46] Jeff_Green: ah hmm okok [15:57:48] ejegg: yeah I saw that [15:58:02] any reason why that seems best ejegg Jeff_Green? [15:58:40] you can put the argparse stuff in there [15:58:41] I thought it'd be less than ideal because it provides less visibility as to where the actual code running is [15:58:51] I think u can put it elsewhere too, no? [15:59:23] https://docs.python.org/3.6/howto/argparse.html [15:59:51] yeah, but since argparse is only useful for command line utils, it feels right to have a wrapper script that just takes those options, instatiates the objects with the right flags, and tells them to run [15:59:59] (pardon the parallel conversation) saurabhbatra: there is an encryption plugin for IRC called OTR, can you set that up for the transfer of the password? [16:00:33] then those objects could be instatiated by something like a web UI if necessary, without having argparse stuff inside 'em [16:00:38] once you've got that if you could post your fingerprint somewhere out of band we can authenticate each other [16:01:19] is this essentially a command line tool? [16:01:21] +1 ejegg [16:01:25] Jeff_Green: yep [16:01:43] ejegg: hmm ok I see, so the command line entry point would be a wrapper for only stuff related to the command-line interface, I guess? [16:02:01] AndyRussG: that was the thought [16:02:05] okok [16:03:05] and regardless the rest of the code is in a module that gets installed or linked to some place on PYTHONPATH? [16:04:05] that's how the process control scripts get access to the processcontrol module? [16:04:09] i think that's ok, that's the way typical CLI tools are integrated, anyway [16:04:31] AndyRussG: looks like we set PYTHONPATH in the process-control yaml file [16:04:58] ah ok [16:05:03] they've got a section for environment variables to provide to the subprocess [16:05:45] where is that? (I don't see it in the process-control repo) [16:06:13] on frpm1001, in the localsettings repo, you can see the actual jobs we run [16:06:24] under process-control/civi1001 [16:07:24] in process-control, it's the JobRunner class [16:08:19] uses subprocess.Popen to pass env vars [16:08:41] ah, but those env vars come from the Job class in job_spec.py [16:09:25] which copies the parent environment, then looks at the config for an 'environment' key and adds all those key/value pairs [16:10:00] mornin XenoRyet [16:11:09] Mornin' [16:11:37] That patch from last evening still need looking at? [16:12:58] ejegg Jeff_Green hmmm ok... I think I got most of that, at least... so yeah we can do option (1) then, following the same pattern as process control... thx!! I'll ping if stuck :) [16:13:02] XenoRyet: I think jgleeson is giving it a final once-over [16:13:23] sorry was just replying to an email, will +2 now [16:13:27] but more eyes make bugs shallow! [16:14:39] ejegg, I did have a question [16:14:51] at least it's not more bugs make the eyes shallow [16:15:00] ejegg, https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/DonationInterface/+/446206/1/gateway_common/DataValidator.php [16:15:08] oh no! I have a bug in my eye! losing depth perception! [16:15:36] it feels to me like this is a lot of work to validate a boolean [16:16:18] and without trying, I'm guessing type-casting doesn't make it any more straightforward? [16:16:26] Shallow bugs make more eyes? [16:17:44] jgleeson: is_bool only seems to accept literal values TRUE and FALSE, not 1 or 0 or string versions of the above [16:19:16] and typecasting seems to change string 'false' to TRUE as well as accepting 'hello' as TRUE [16:19:38] yeah I just tried that out in interactive console, silly idea [16:19:44] I then was reading this http://php.net/manual/en/filter.filters.validate.php [16:19:49] "yes" and "on" [16:19:50] ... [16:20:30] hmm, I guess that's intuitive... [16:21:06] though we don't want to accept "" as FALSE here [16:21:46] yeah it looks like php doesn't give us an easier way [16:21:51] I just assumed it might [16:23:27] back soon... [16:24:15] XenoRyet those multi-eyed bugs just can't grasp the deeper issues at stake 8p [16:24:43] too many eyes, so they only focus on what's immediately visible [16:25:21] (CR) Jgleeson: [C: 2] Don't mutate $data in DataValidator loop [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446205 (https://phabricator.wikimedia.org/T199278) (owner: Ejegg) [16:25:25] (CR) Jgleeson: [C: 2] Fix FIXME in validate_boolean [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446206 (owner: Ejegg) [16:31:54] ejegg|brb, did you manage to put through GB donation locally? I don't have any GB country code test cards for ingenico [16:33:36] (which is the integration I've been using to test most things recently) [16:35:50] (Merged) jenkins-bot: Don't mutate $data in DataValidator loop [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446205 (https://phabricator.wikimedia.org/T199278) (owner: Ejegg) [16:35:52] (Merged) jenkins-bot: Fix FIXME in validate_boolean [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446206 (owner: Ejegg) [16:55:00] hey ejegg, did you manage to fudge a way to get a GBP donation through to confirm the opt-in value ends up somewhere? (or does it end up somewhere...) [16:55:18] I can't at the moment, although it works in testland! [16:55:26] jgleeson: oh hey, I didn't actually... [16:55:37] So, step 2 is to make it end up somewhere in Civi [16:55:53] ah cool, so for now if it just ends up on the queue we're happy [16:56:12] yeah, I was counting on the fact that pending messages look a lot like the donation messages [16:56:33] step 2 will probably not be too tough [16:56:55] just add a new custom field, and a little bit of logic in the queue ingress [16:57:27] let's see, I think it should be in the same set as the do_not_solicit field got moved to [16:58:13] Ah, 'Communication' [16:58:55] so we'll add another update_ function to wmf_civicrm.install [16:59:09] that looks a lot like the existing wmf_civicrm_update_7655 [16:59:44] hmm, though we'll have to figure out the exact type [17:00:30] oh hey, tech talk time! [17:00:47] be there in sec! [17:01:17] gonna use the new 'meet' room attached to the invite [17:02:02] (CR) Jgleeson: [C: 1] "Looks good to me so far." [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/445327 (https://phabricator.wikimedia.org/T199278) (owner: Ejegg) [17:39:45] hey cwd, got some time today? [17:41:51] saurabhbatra: yep, in an hour or so. in the mean time if you could install the OTR IRC plugin and post the fingerprint somewhere public we can have a secure way to transfer the password [17:41:53] * cwd off to eat [18:07:56] Got an unexpected errand that needs running, I'll be back in a bit. [19:28:45] (PS8) Ejegg: Move metadata to class, switch to whitelisting of entities to show & forget. [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/443889 (https://phabricator.wikimedia.org/T196644) (owner: Eileen) [19:31:26] (CR) Ejegg: [C: 2] "Looks good! Any reason to think that metadata function would need a hook for extensibility? Or does the existing way to declare having a f" [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/443889 (https://phabricator.wikimedia.org/T196644) (owner: Eileen) [19:37:10] (Merged) jenkins-bot: Move metadata to class, switch to whitelisting of entities to show & forget. [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/443889 (https://phabricator.wikimedia.org/T196644) (owner: Eileen) [19:54:03] (PS3) Ejegg: JobQueueConsumer can hydrate non-JsonSerializableObjects [wikimedia/fundraising/SmashPig] - https://gerrit.wikimedia.org/r/441250 (https://phabricator.wikimedia.org/T195488) [19:54:05] (PS6) Ejegg: Job to add tokens to Ingenico payments [wikimedia/fundraising/SmashPig] - https://gerrit.wikimedia.org/r/441251 (https://phabricator.wikimedia.org/T195488) [19:56:23] Fundraising Sprint Karma chameleons hide amongst us, Fundraising Sprint Lactose is unusually tolerant, Fundraising Sprint Matt Damon to head up Space Force, Fundraising Sprint Naming Sprints Is Not Important, Fundraising-Backlog: make a mini test plan a... - https://phabricator.wikimedia.org/T195329 [19:59:18] ejegg, the only patch from the 4 in your email I haven't done anything with is, [19:59:18] Get rid of traces of old 'optout' field. [19:59:33] (PS3) Ejegg: Rewrite DeletePendingJob as Runnable [wikimedia/fundraising/SmashPig] - https://gerrit.wikimedia.org/r/441583 [19:59:34] and that's because I'm not sure how to test it, as in where would I opt out? [19:59:42] would that be in civi [20:00:17] (PS4) Ejegg: Rewrite DeletePendingJob as Runnable [wikimedia/fundraising/SmashPig] - https://gerrit.wikimedia.org/r/441583 [20:00:39] looks like we lost the +1 again [20:00:51] on https://gerrit.wikimedia.org/r/#/c/wikimedia/fundraising/SmashPig/+/441251/ [20:01:20] (PS2) Mepps: Trying to simplify logic [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446187 [20:02:29] (Abandoned) Reedy: Revert "Hack out some failing tests on fundraising/REL1_27" [core] (fundraising/REL1_27) - https://gerrit.wikimedia.org/r/445189 (owner: Reedy) [20:10:42] jgleeson: that's ok, it's just a code cleanup [20:11:03] I guess we used to show an opt out field on the forms [20:11:20] and it would be sent via that variable [20:11:34] and stored in Civi [20:11:44] but... it seems to no longer be a thing [20:20:34] (PS1) Reedy: Replace foundationwiki url Bug: T199812 [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446467 (https://phabricator.wikimedia.org/T199812) [20:20:42] ^ is some fun and games for you all [20:22:23] (CR) jerkins-bot: [V: -1] Replace foundationwiki url Bug: T199812 [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446467 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:22:27] :( [20:23:31] Oh [20:23:32] 20:22:20 >> Message "apihelp-donate-param-variant" lacks documentation. [20:23:42] Does someone want ot fix that? :) [20:24:08] Reedy: argh, translatewiki keeps doing that! [20:24:16] Keeps removing it? [20:24:22] yeah, it's really weird [20:24:57] Have you reported it? [20:25:28] Ah, to who would that go? [20:26:14] (PS1) Ejegg: Undo Translatewiki weirdness [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446475 [20:26:20] I've just poked Niklas offline [20:26:30] ah, cool. [20:26:34] (CR) Reedy: [C: 2] Undo Translatewiki weirdness [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446475 (owner: Ejegg) [20:26:37] I think he may be on vacation just now [20:26:47] but I'll send an email [20:27:03] He is [20:27:07] Reedy: also, thanks for that patch! [20:27:09] See if he tells me to file a task :P [20:27:23] I think we're actually moving all those support pages to donatewiki, though [20:27:35] pcoombe has been working on getting them all set up there [20:28:00] https://translatewiki.net/w/i.php?title=Special%3ATranslations&message=apihelp-donate-param-variant&namespace=8 [20:28:36] since the referrers from paymentswiki could leak a bunch of stuff about a donor, we thought it would be best to keep all links internal [20:29:26] huh, and 'Mediawiki' project includes all extns? [20:29:37] i guess so [20:29:51] I think Niklas might've foundit [20:32:13] or not :P [20:32:23] (PS1) Reedy: Remove ContributionTracking.php [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446478 [20:32:25] (PS1) Reedy: Replace foundationwiki url [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446479 (https://phabricator.wikimedia.org/T199812) [20:34:03] Reedy: oh shoot, that ReturnToURLDefault has to be totally obsolete at this point! [20:34:11] rofl [20:34:30] oh jeez, also those IPN urls pointing to civicrm [20:34:47] im in ur repos [20:34:50] uncovering ur techdebt [20:35:07] man, part of this year's original plan would have gotten rid of the ContributionTracking extension entirely [20:35:18] i'm still bummed we're not going to get to that [20:35:21] :( [20:35:23] "FundraisingEmailUnsubscribeCancelUri": "https://www.wikimediafoundation.org/", [20:35:26] Any suggestions on that one? [20:35:28] the whole darn extension is tech debt [20:35:31] to new foundation wiki too? [20:35:41] nah, it gets deleted too [20:36:02] basically the only thing that extension is actually used for now is managing a single db connection [20:36:19] haha [20:37:03] yeah, its heyday was around 2011 when I guess we actually solicited and initiated donations from all sorts of different places, like forms right on foundationwiki [20:37:53] man, that url was still http:// even [20:39:16] (PS2) Reedy: Replace foundationwiki url [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446467 (https://phabricator.wikimedia.org/T199812) [20:40:54] (CR) Reedy: [C: 2] Remove ContributionTracking.php [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446478 (owner: Reedy) [20:40:56] (PS2) Krinkle: Replace foundationwiki url [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446479 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:40:59] (CR) Krinkle: [C: 1] Replace foundationwiki url [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446479 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:41:21] (CR) jerkins-bot: [V: -1] Replace foundationwiki url [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446467 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:42:29] (CR) Ejegg: "Thanks! We're actually going to move these support pages to donate.wikimedia.org instead of the new foundation site. We just need to coord" [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446467 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:42:37] (CR) Ejegg: [C: -2] Replace foundationwiki url [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446467 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:43:11] (CR) Ejegg: [C: -1] "ack, that's totally obsolete! Lemme just get rid of half of these settings..." [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446479 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:43:35] (CR) Krinkle: "Thanks :)" [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446479 (https://phabricator.wikimedia.org/T199812) (owner: Reedy) [20:46:25] (Merged) jenkins-bot: Undo Translatewiki weirdness [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446475 (owner: Ejegg) [20:46:34] (CR) Ejegg: [C: 2] "Looks good to me! Confirmed that we're using wfLoadExtensions on payments-wiki" [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446478 (owner: Reedy) [20:56:54] (CR) Jgleeson: [C: 1] "Looks good. Tests passing." [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/446207 (https://phabricator.wikimedia.org/T199278) (owner: Ejegg) [20:57:33] ejegg, I just +1 the last patch removing the optout. I +1'd as it's tied to the earlier bigger patch which is also +! [20:57:36] +1 even [20:58:03] thanks! [20:58:52] fr-tech, any other code review anyone would like a set of eyes on that I can look over tomorrow morning? [21:00:41] ejegg, I also noticed the ticket relating to the recurring ingenico stuff is now in the done column, but I think it needs to go into review [21:01:38] oops, gokd catch [21:01:43] (CR) Jgleeson: [V: 1 C: 1] "reapplying +1" [wikimedia/fundraising/SmashPig] - https://gerrit.wikimedia.org/r/441250 (https://phabricator.wikimedia.org/T195488) (owner: Ejegg) [21:02:13] (CR) Jgleeson: [V: 1 C: 1] "reapplying +1" [wikimedia/fundraising/SmashPig] - https://gerrit.wikimedia.org/r/441251 (https://phabricator.wikimedia.org/T195488) (owner: Ejegg) [21:03:04] fundraising-tech-ops: Staging access for Saurabh - https://phabricator.wikimedia.org/T199373 (cwdent) Open>Resolved He is set up with kerberos auth for the time being, will be removed when he gets the yubikey [21:04:18] fundraising-tech-ops: Fundraising Prometheus hosts running out of disk space - https://phabricator.wikimedia.org/T198788 (cwdent) Open>Resolved I adjusted the retention to 6mo for the codfw hosts and it recovered the disk space as expected. Great! [21:04:34] (Merged) jenkins-bot: Remove ContributionTracking.php [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446478 (owner: Reedy) [21:16:10] (PS1) Ejegg: Delete most of the things [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446492 [21:16:17] ^^^^ eviscerated! [21:17:01] (PS2) Ejegg: Delete most of the things [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446492 [21:18:03] ok, gonna head out for now [21:19:40] (CR) jerkins-bot: [V: -1] Delete most of the things [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/446492 (owner: Ejegg) [21:54:39] bye all!