[06:24:06] (PS1) Adamw: WIP dedupe report [wikimedia/fundraising/tools] - https://gerrit.wikimedia.org/r/93429 [07:37:38] (PS2) Adamw: WIP dedupe report [wikimedia/fundraising/tools] - https://gerrit.wikimedia.org/r/93429 [09:02:22] (PS3) Adamw: WIP dedupe report [wikimedia/fundraising/tools] - https://gerrit.wikimedia.org/r/93429 [09:44:47] (PS4) Adamw: WIP dedupe report [wikimedia/fundraising/tools] - https://gerrit.wikimedia.org/r/93429 [17:47:30] K4-713: ! https://gerrit.wikimedia.org/r/#/c/93307/ [17:50:03] (CR) Katie Horn: [C: 2 V: 2] don't normalize amount if it doesn't exist [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/93307 (owner: Adamw) [17:57:16] !log updated crm from 272966e353244e668a64c54ca4fa6f344079f4bf to 63de2d6b8bc92d6c2130a242ff4995ba71b5ce11 [17:57:31] Logged the message, Master [17:58:42] !log rollback crm to 272966e353244e668a64c54ca4fa6f344079f4bf [17:58:56] Logged the message, Master [18:12:09] (PS1) Adamw: Need at least one pair of (gross amount, currency), or the "original_" fields. [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/93509 [18:12:28] K4-713: crazy malformed input messages. further reading: https://gerrit.wikimedia.org/r/93509 [18:14:12] K4-713: also I could use your input on https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/1171 [18:16:05] awight: Well, right off the bat, 1171 is definitely two cards. [18:16:20] crazy talk. [18:16:23] Everything after "Also". :p [18:16:34] fixing (a) will make (b) go away... i just wanted to document it [18:16:38] so, no. [18:16:56] * awight makes notes to be wary of conjunctions [18:16:56] uh... if the gateway is emitting malformed messages, that's DonationInterface. [18:17:00] Being... bad. [18:17:07] and IPN [18:17:28] Hm. [18:17:50] If it's *just* IPN, then... possibly. [18:18:04] If it's not our IPN destination code that's swallowing it. [18:18:40] oh man that reminds me of a thing [18:19:13] So, yes, this sounds like multiple codebases need cleaning. Sounds like multiple cards in a supertask. [18:19:33] * awight wilfully ignores good advice [18:19:39] who cares about multiple codebases!! [18:19:49] Er... people doing the deploys? [18:20:00] grr [18:22:59] Anyway... to be totally explicit here: All the "original_" fields are intended to be a record of what the donor thinks they did. Before fees, currency conversion, whatever. [18:23:21] So, depending on the source of the message, it may *only* be aware of the "original_" fields. [18:23:39] K4-713: yes absolutely. oh... https://gerrit.wikimedia.org/r/#/c/93509/ [18:23:47] In that way, it sort of makes sense to me that some things would be setting that. [18:23:58] hmm. [18:24:01] Or using them interchangeably... which is probably worse. [18:24:08] I was afraid you would have an argument for this [18:24:15] ratnests [18:24:17] argh [18:24:47] it's just that... if our gateway interface does not have a concept of settlement, I prefer to just pass "gross" and "currency" [18:24:52] maybe... [18:24:55] Don't conflate "archaeological explanation" with "argument". :p [18:24:58] we can rename those fields [18:25:16] But, to what? Change the labels and we still have the problem. [18:25:17] like, instead of moving "gross" to "original_gross", instead create a new field "settled_gross" [18:25:27] I think that would clean this up [18:25:34] That sounds... dangerous. [18:25:37] yes [18:26:00] but, all we have to do is tweak the normalize code to handle both cases while we deprecate orignal_* [18:26:09] So, when I get back from my doctor's appointment, I sort of want to hear why this is a problem in the first place... [18:26:21] cos it's confusing [18:26:23] Particularly with paypal, because that's where They stole the field names from. [18:26:27] hehehe [18:26:28] exactly [18:26:53] it's demonstrably a problem, cos our code does inconsistent things [18:27:00] But, wait. Gross is just original minus settled. [18:27:06] eh [18:27:07] You can't have an original gross. Makes no sense. [18:27:14] gross is the total, including fees [18:27:17] there is no minus settled [18:27:23] net = gross - fee [18:27:25] Oh, wait. sorry. net. [18:27:30] gross is generally all we know about [18:28:15] I'm having a collapse of "Katie can't speak english before noon" and "The Doctors took the caffeine away". [18:28:19] Like, all the time. [18:28:19] same here [18:28:20] Forever. [18:28:23] That's my life now. [18:28:51] hehehe. u m. Ask Dr for the prophylactic that includes caffeine? [18:29:03] Still won't work. :p [18:29:16] anti-migaine makes me essentially caffeine-immune. [18:29:30] Moar dosage! [18:29:39] or... matteine? [18:29:51] But then it eats up the anti-migraine and I collapse with the revenge of all hangovers. [18:30:05] It sux. [18:30:24] har. Man I had a candy hangover this weekend [18:30:51] I am skeptical; matteine does not have a wiki page [18:30:59] mwalker: I'm just noticing that as well. [18:31:00] Nothing? [18:31:04] Wow. [18:31:11] I've been lied to. The page on mate says, "caffeine-rich" [18:32:07] Oh, that. Yeah, they hella lie about that. [18:32:27] Like, everybody who has ever tried to sell me mate. [18:32:27] They should just advertise as "like coffee, but with more cancer" [18:32:40] seems to work for cigarettes [18:32:56] But, anyway, all of those things work by constricting your blood vessels such that the blood races around like woah. [18:33:37] Anti-migraine works by preventing everything that looks like that reaction, and also preventing adrenaline. [18:33:45] Completely at odds. [18:34:17] They say I can't even do cardio. Target heart rate never happens. [18:34:47] Jeff_Green: oops I did not assign to u. https://rt.wikimedia.org/Ticket/Display.html?id=6191 [18:35:00] no problem [18:37:56] (CR) Katie Horn: [C: 2 V: 2] Need at least one pair of (gross amount, currency), or the "original_" fields. [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/93509 (owner: Adamw) [18:38:01] whoohoo! [18:38:04] ok; article created which redirects to caffiene [18:38:07] public service completed [18:38:08] whaaat [18:38:15] eeehehe [18:38:50] http://www.erowid.org/plants/yerba_mate/yerba_mate_chemistry1.shtml [18:38:51] It will be interesting to see how long that stands. [18:38:55] might be a helpful link [18:39:38] aaight, I'm off to see how much longer I have to put up with this no-caffeine hell. [18:39:43] Yerba maté contains two other xanthines (caffeine-like compounds) theobromine and theophylline that have their own effects [18:39:47] Back in, like, an hour or something. [18:40:01] nick K4|out [18:40:05] ...gar [18:40:15] :[ [18:40:26] I hate everything. [18:40:31] k.o. [18:42:41] awight are we sure a redirect will work? [18:42:52] Jeff_Green: not entirely sure. [18:43:24] Is there any trickery we can do at the nginx level, to serve the contents w/o a 3xx? [18:43:51] there is no nginx level for civi, yet anyway [18:43:56] it's just apache woo woo [18:44:22] hopefully, all that's left will be a smouldering pile of 2 or three redirects. [18:44:48] mwalker: you want to have an opinion about this? https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/1171 [18:46:12] awight: I think that depends on our definitions; we should have knowedge of what the original currency was -- it's what we sent to the gateway [18:46:24] um [18:46:33] "original" only makes sense in the context of settlement, IMO [18:46:54] afaik, there is no gateway code which knows about settlement [18:47:29] the way I see it (from 10,000 feet) is that we set the 'original_currency' to what we sent to the gateway; and then have a 'settlement_currency' or some such if required after the fact [18:47:40] !log updated crm from 272966e353244e668a64c54ca4fa6f344079f4bf to 8d9240fea273faf434881a16d894ef0ad6c616c0 [18:47:56] Logged the message, Master [18:48:01] mwalker: that's fine... as long as we change "original" to something more... semantic [18:48:05] like "receive_currency" [18:48:08] sure [18:48:16] but, point taken [18:48:30] now... do we want to do that? or it "currency" [18:48:33] sorry [18:48:47] do you think bare "currency" / "gross" will be misleading? [18:49:06] *nods* if we were to have those; I'd actually expect them to be in USD [18:49:10] hmm [18:49:12] harr [18:49:14] weird [18:49:17] ok glad i asked [18:49:45] ya; it's an interesting problem; because we run all our reports in USD [18:49:50] but we don't always settle into it [18:50:06] I don't think we always report in USD [18:50:15] we just report in the settlement currency [18:50:24] no; all the reports megan pulls are in USD [18:50:28] ... technically... in practice, we always pretend we are settling in USD [18:50:32] yes, ^^ is why [18:50:49] however, all built-in civi reporting splits across currency [18:51:10] which makes sense [18:51:22] we... might have to do this for France [18:51:25] * mwalker taps fingers [18:51:56] anyway, I'm happy with "received_" and "settled_"-*, I'll ask K4 when she regresses [18:52:08] I think what I'm getting at; is that in whatever we end up with -- we still need to support extraction of the currency we sent them to the gateway with, the currency we settled in, and the USD equivilant [18:52:16] yep [18:52:35] although, it's pretty sketchy to randomly add foreign settled currency to USD [18:52:42] for example, when do you do the conversion? [18:52:56] if it hasn't actually happened, there is *no* conversion rate [18:53:14] *nods* that is a shortcoming [18:53:23] I would say on the date that the conversion would have happened [18:53:26] It would only be useful for... econometric-style stuff [18:53:34] mwalker: eh? "would have"? [18:53:55] the settlement date is the date we would have converted from the source into usd [18:54:00] but, the money is "physically" sitting in a bank in foreign currency [18:54:10] yes; but megan doesn't care about that [18:54:25] I think we should discourage such usages... [18:54:41] like, ask what the purpose of the report is and determine how to deal with multi-currency on a case-by-case basis. [18:54:55] the report is; "Is my banner doing better?" [18:55:14] that's the "econometrics" style I was lambasting above [18:55:26] and you intend to get megan to change how? [18:55:31] the more important one, "are we done making money" should be converted at the moment of the report. [18:55:51] I don't, I'm just saying we have to think about these things, not just give her USD cos that's easy [18:56:36] meganhernandez: if given a choice between seeing a rough USD fudge of how much money a banner made; and a breakdown of how much a banner actually made per settlement currency -- which would you choose? [18:56:55] mwalker: that is ovviously option (A) [18:57:23] however, when we want to know how much money we made in this year's campaign, we are asking, "how much is the settled balance now worth in USD" [18:58:15] * awight has a vested interest in making reports as complexly unmaintainable as possible [18:58:16] ok; so we need four numbers; we need the original currency, the settled currency, the USD amount the day of settlement, and the USD amount the day we draw the report [18:58:28] mwalker: yes [18:58:36] exchange_rates does all that, luckily [18:59:02] I suppose USD on settleday is something we should cache in the db [18:59:10] *nods* [18:59:21] so that we can query it without having to build a crazy query [18:59:47] yes, that would not subquery well. [19:00:23] value on the day of report is easier, we'll probably take the Civi path and split totals by currency, then convert each sum [19:00:33] *nods* [19:00:42] and since that's a purely civi report we can hide the complexity [19:01:01] *at least I presume we don't export that using some sort of /srv/br/* tool [19:01:08] looking forward to writing this stuff [19:01:22] grr... /me looks into wiping out that directory and replacing with fr-tools backend [19:02:01] * awight sharpens penknife [19:02:08] heh [19:02:26] btw, buckle up for some more fail [19:03:14] I'm reenabling the recurring consumer [19:05:13] Jeff_Green: so... the adyen cron job you're running... we can kill that now [19:05:39] or... at the very least; make it stop emailing me! [19:05:47] it does log to syslog if something goes wrong [19:05:57] *well; actually; everything it dumps to the console it also logs to syslog [19:08:34] mwalker: uh [19:08:50] so...if I kill it, all the other things become irrlevant :-) [19:09:08] do you want it killed or do you want to make it stop cronspamming unless there's a genuine problem? [20:50:19] 18 PHP Warning: Missing argument 3 for CentralNoticeCampaignLogPager::testBooleanChange(), called in /usr/local/apache/common-local/php-1.23wmf2/extensions/Centra [20:50:19] lNotice/CentralNoticeCampaignLogPager.php on line 251 and defined in /usr/local/apache/common-local/php-1.23wmf2/extensions/CentralNotice/CentralNoticeCampaignLogPager. [20:50:19] php on line 309 [20:50:19] 18 PHP Warning: Missing argument 3 for CentralNoticeCampaignLogPager::testBooleanChange(), called in /usr/local/apache/common-local/php-1.23wmf2/extensions/Centra [20:50:19] lNotice/CentralNoticeCampaignLogPager.php on line 250 and defined in /usr/local/apache/common-local/php-1.23wmf2/extensions/CentralNotice/CentralNoticeCampaignLogPager. [20:50:21] php on line 309 [20:50:23] 18 PHP Warning: Missing argument 3 for CentralNoticeCampaignLogPager::testBooleanChange(), called in /usr/local/apache/common-local/php-1.23wmf2/extensions/Centra [20:50:25] lNotice/CentralNoticeCampaignLogPager.php on line 249 and defined in /usr/local/apache/common-local/php-1.23wmf2/extensions/CentralNotice/CentralNoticeCampaignLogPager. [20:50:28] php on line 309 [20:50:30] 18 PHP Warning: Missing argument 3 for CentralNoticeCampaignLogPager::testBooleanChange(), called in /usr/local/apache/common-local/php-1.23wmf2/extensions/Centra [20:50:32] lNotice/CentralNoticeCampaignLogPager.php on line 247 and defined in /usr/local/apache/common-local/php-1.23wmf2/extensions/CentralNotice/CentralNoticeCampaignLogPager. [20:50:34] php on line 309 [20:50:39] Can we get my fix (or some other fix) backported and deployed please? [20:51:30] Master: [20:51:30] https://gerrit.wikimedia.org/r/93156 [20:51:38] Cherry pick to wmf-deploy: [20:51:39] https://gerrit.wikimedia.org/r/93157 [20:55:13] commit 1a03d0e014f2b01225255a751d00b1bbbb219f89 [20:56:11] https://git.wikimedia.org/log/mediawiki%2Fextensions%2FCentralNotice.git/refs%2Fheads%2Fwmf_deploy [20:56:16] Yup, head matches head [20:56:24] awight: About? [20:58:57] mwalker: ^^ [21:00:26] Reedy: sure; I have a window today; I can push that as well [21:01:19] That works [21:01:23] I think mine has just finished [21:01:24] Maybe [21:01:29] Damn time zones [21:03:17] Yes it has [21:03:32] mwalker: Would be good if you can [21:03:38] It comes, spams a lot, then disappears for a while [21:03:46] So I'm guessing it's on some cache expiry [21:03:59] actually; I'm not sure this will solve the issue -- I tried doing exactly this and PHP started throwing stricts at me [21:04:09] but maybe I'm smoking something -- downloading and testing lcoally [21:04:27] Really? [21:04:41] I couldn't find anything similar.. Or other callers and stuff [21:35:08] Reedy: sorry; I had to restart and then my git repo was corrupted... so; with your change applied I get "Strict standards: Declaration of CentralNoticeBannerLogPager::testBooleanChange() should be compatible with that of CentralNoticeCampaignLogPager::testBooleanChange() in /mnt/fr-donate/extensions/CentralNotice/CentralNoticeBannerLogPager.php on line 3 Call Stack: 0.0015 652192 1. {main}() /mnt/fr-donate/index.php:0 0.0298 4569352 2. [21:35:20] which makes no sense since its a freaking private function [21:35:36] but I cant come up with a good test case to send to php [21:35:36] Oh, I see [21:35:42] s/CentralNoticeBannerLogPager::testBooleanChange/CentralNoticeBannerLogPager::testBooleanChange2/ [21:35:43] Done [21:35:52] *nods* [21:35:54] I'll do that [21:36:15] It makes sense in a way what PHP is doing [21:36:47] not really; privates are always private to the class [21:36:53] or so says the documentation [21:37:56] Yeah [21:38:06] I'm not sure how to word it [21:39:13] class One { private function bar( $foo, $bah ) { } } class Two extends One { private function bar( $foo ) { } } [21:39:20] Isn't that the minimal replication case? [21:39:38] yep; but that works as I would expect [21:39:50] it's really bad to do that [21:39:57] sorry to jump in [21:40:14] but that totally breaks polymorphism [21:41:18] http://en.wikipedia.org/wiki/Liskov_substitution_principle whatev [21:41:34] not that we give a fuck, this is all internal [21:43:06] (PS1) Mwalker: Fix Warnings on Campaign Logger [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/93602 [21:43:14] awight: ^ [21:44:36] (CR) Adamw: [C: 2 V: 2] Fix Warnings on Campaign Logger [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/93602 (owner: Mwalker) [21:44:58] (Abandoned) Mwalker: Remove unused parameter from testBooleanChange to fix warnings [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/93157 (owner: Reedy) [21:45:08] (Abandoned) Mwalker: Remove unused parameter from testBooleanChange to fix warnings [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/93156 (owner: Reedy) [21:50:00] (PS1) Mwalker: Merge remote-tracking branch 'gerrit/master' into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/93604 [21:57:28] (CR) Mwalker: [C: 2] Merge remote-tracking branch 'gerrit/master' into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/93604 (owner: Mwalker)