[00:45:38] (PS2) Awight: WIP more DonationQueue work [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 [00:46:29] (CR) jenkins-bot: [V: -1] WIP more DonationQueue work [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 (owner: Awight) [00:58:49] (Abandoned) Awight: WIP Use DonationQueue in orphan slayer [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203225 (https://phabricator.wikimedia.org/T92922) (owner: Awight) [01:27:52] (PS3) Awight: WIP more DonationQueue work [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 [01:28:06] (Abandoned) Awight: WIP Remove unused code from the orphans script [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203226 (owner: Awight) [01:28:21] (CR) jenkins-bot: [V: -1] WIP more DonationQueue work [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 (owner: Awight) [01:38:04] (PS4) Awight: WIP more DonationQueue work [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 [02:25:14] Fundraising Tech Backlog, MediaWiki-Vagrant: Write vagrant role for donatewiki - https://phabricator.wikimedia.org/T95641#1196620 (awight) NEW [02:26:27] Fundraising Tech Backlog, MediaWiki-Vagrant: Write vagrant role for fundraisingwiki - https://phabricator.wikimedia.org/T95642#1196628 (awight) NEW [03:29:33] (PS5) Awight: WIP more DonationQueue work [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 [03:54:47] (PS6) Awight: Remove legacy ActiveMQ code [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 [03:54:49] (PS8) Awight: Use DonationQueue for non-orphan queuing [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/200793 (https://phabricator.wikimedia.org/T92921) [03:54:51] (PS1) Awight: Write DonationQueue shim around PHPQueue [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203280 (https://phabricator.wikimedia.org/T92916) [03:54:53] (PS1) Awight: comments and fixup [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203281 [03:54:55] (PS1) Awight: Use DonationQueue in the orphan slayer [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203282 (https://phabricator.wikimedia.org/T92922) [03:56:12] (CR) jenkins-bot: [V: -1] Use DonationQueue for non-orphan queuing [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/200793 (https://phabricator.wikimedia.org/T92921) (owner: Awight) [03:56:23] (CR) jenkins-bot: [V: -1] comments and fixup [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203281 (owner: Awight) [04:01:20] (PS9) Awight: Use DonationQueue for non-orphan queuing [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/200793 (https://phabricator.wikimedia.org/T92921) [04:01:29] (PS2) Awight: comments and fixup [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203281 [04:03:20] (PS2) Awight: Use DonationQueue in the orphan slayer [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203282 (https://phabricator.wikimedia.org/T92922) [04:03:30] (PS3) Awight: WIP Use DonationQueue in the orphan slayer [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203282 (https://phabricator.wikimedia.org/T92922) [04:03:38] (PS7) Awight: Remove legacy ActiveMQ code [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/203000 [04:05:56] Fundraising Tech Backlog, Wikimedia-Fundraising-CiviCRM, MediaWiki-extensions-DonationInterface, Technical-Debt: Merge CRM and DonationInterface queue wrappers - https://phabricator.wikimedia.org/T95647#1196764 (awight) NEW [17:28:25] question: is this https://phabricator.wikimedia.org/T91673 going to be the same solution as this http://www.mediawiki.org/wiki/Requests_for_comment/HTML_templating_library ? [17:29:17] cwdent: Hi! [17:29:26] Yeah, we're reusing as much as possible. [17:30:10] We're currently using an older branch of MediaWiki core, unfortunately, but we can simply use the lightncandy Mustache engine directly for our first iteration. [17:30:26] cwdent: That sounds like something you want to mess with, or is this just curiosity? [17:31:00] well i was just browsing bugs and that one seems to be the end point for some blockers [17:31:19] is it decided that the mustache templates are the best approach? [17:31:29] Yeah, and we just recently unblocked a bunch of stuff to allow that task to happen! [17:31:32] Hmm... [17:31:43] Personally, I've been really disappointed with mustache. [17:32:05] But this was an org-wide compromise, so I think we're stuck with the decision for now. [17:32:10] it doesn't look like it has any performance gains [17:32:21] i've used some home rolled templates, and smarty [17:33:20] this is what we built at sparkfun https://github.com/sparkfun/SparkLib/blob/master/lib/SparkLib/Template.php [17:33:31] not that i would advocate its use in any way [17:33:41] Correction: We're using Handlebars, which is a superset of mustache AFAIK [17:34:11] It fixes the main thing I ran into with mustache, that you can't address variables from the outer context from inside loops. [17:34:20] ah right. i have used handlebars in node [17:35:08] Whoa. The SF lib allows raw PHP? [17:35:50] Quick, hide that before the next round of interviews :p [17:36:19] Certainly gets the job done, though! [17:36:52] hehe, yeah it's not very good [17:39:32] Looks like it will work as long as you can keep template authors from cheating and using PHP funcs, etc... [17:41:49] much time was spent convincing devs to put business logic elsewhere [17:42:18] Seriously. It's a big deal when you make across that finish line, though... [17:43:18] I've sort abandoned MVC or other guidelines on this particular project (DonationInterface), and all I'm fighting for now is to exorcise the view layer of logic. [17:43:28] push the controlling stuff into the model, what me worry... [17:44:46] heh, this was all done in the name of migrating to a sort of mvc application structure, rather than a bunch of 5k line php files littered with markup [17:45:08] but we had to keep the latter working while we built out the former [17:45:21] so we'd just stuff the old stuff in a template until we could get around to rewriting [17:51:13] there was a substantial amount of tech debt to deal with [17:51:38] my net contributions on github when i left were something like negative 40k lines [17:56:05] cwdent: awight: hi! I guess you've seen http://www.mediawiki.org/wiki/Manual:HTML_templates, which just arrived in Mediawiki core (but not the version that runs DonationInterface) [17:57:13] The docs are somewhat off, though... I had to futz around and look at the source code to make it work [17:58:00] is this one of the templates that would need attention? https://github.com/wikimedia/mediawiki-extensions-DonationInterface/blob/master/amazon_gateway/forms/html/amazon.html [17:58:55] awight: I found a mistake, or maybe a "misunderstanding", in the currenct soon-to-be-legacy banner allocation code... [18:01:36] (cwdent: it's really funny how often I end up say or thinking "not my department" around here... Sorry I don't know the answer to your question ^ , awight would, though, I think.) [18:01:37] cwdent: woot! Hopefully you bring your machete with you. [18:02:20] the only thing i like better than writing code is deleting it [18:02:38] cwdent: Yep, that's one of the templates. Currently we have dozens of separate templates for anything that might be rendered slightly differently. It's horrific. [18:03:23] AndyRussG: I'm curious! What was it? [18:03:27] hehe, i'm familiar with this paradigm [18:04:20] Most atrocious is that we're switching partials based on the "country" parameter. That's the only flexibility we have. [18:11:07] awight: if you have two simultaneous campaigns at the same priority, and one is throttled at 50%, and the other is unthrottled, what allocation would you expect? [18:11:11] no cheating! [18:11:19] err, 50-50 [18:11:31] (Thanks for making the numbers easy :p) [18:11:43] w00t! Correct, your are a human, not CentralNotice :) [18:11:55] What does HAL say? [18:12:44] 33 - 66 [18:12:50] Noooo [18:12:59] It's better if you have three though [18:13:05] I thought... tests... [18:13:20] Yeah we didn't test that _exact_ scenario... ever... [18:13:32] It's actually not a bug [18:13:38] Well, luckily we aren't telling admins how many impressions their banners get, and the allocations pages are broken :) [18:14:23] Let's say now you have 3 simultaneous campaigns at the same priority. Two are unthrottled and one is at 50% [18:14:50] You'll get 0.4 - 0.4 - 0.2 [18:15:16] awight: I think the allocation page will say the same, lemme check [18:16:01] this seems to be the main interface for managing the donation queue? https://github.com/wikimedia/mediawiki-extensions-DonationInterface/blob/master/activemq_stomp/activemq_stomp.php [18:16:24] subquestion: it's normal practice to have extensions include/depend on other extensions? [18:17:19] cwdent: That library gets killed in https://gerrit.wikimedia.org/r/203000 , don't worry :) [18:17:54] oh, nice [18:18:09] No dependency management yet--but we need it. I think legoktm is working on that as part of his configuration work, though. [18:18:26] Through composer, no? [18:18:28] i heard about a wrapper class so that activemq could be swapped out. is this related to that? [18:18:42] cwdent: A lot of extensions do depend on others, though [18:18:44] https://www.mediawiki.org/wiki/Requests_for_comment/Improving_extension_management [18:19:01] haven't had much time lately to work on it, aiming for 1.26 [18:19:12] cwdent: Yeah, I'm in the middle of that business right now. It's all under https://phabricator.wikimedia.org/T92915 [18:19:19] legoktm: thanks! [18:19:47] cwdent: Here you can see the versions of most stuff, including extensions, on production: https://en.wikipedia.org/wiki/Special:Version [18:19:56] AndyRussG: I think the composer thing has issues though, cos your extension has to be loaded via composer in the first place if you want its composer.json to have any effect. [18:20:06] Ah hmmm [18:20:52] legoktm: Your RFC looks great! [18:21:19] cwdent: also if you download the core repository I think you can see by the submodules in the extensions directory all the extensions [18:21:31] :) [18:21:39] Normally on my local install I just usualy have a few that I'm actually working on or ned [18:21:40] need [18:22:11] cwdent: a lot of devs use this: http://www.mediawiki.org/wiki/MediaWiki-Vagrant [18:22:42] oh awesome [18:23:02] AndyRussG: on that note, do you feel like overheating your laptop by trying out my paymentswiki role? [18:23:11] Yeah! It can be pretty handy [18:23:12] awight: sure! [18:23:23] i got mw running on hhvm and nginx [18:23:39] AndyRussG: should just be, https://gerrit.wikimedia.org/r/#/c/135326/ then "vagrant enable-role fundraising" [18:24:03] cwdent: That's quite an achievement! Did you notice some undocumented steps? :D [18:24:21] hehe [18:24:23] cwdent: you're ahead of me on that, then! I'm all standard apache... [18:24:27] there was some futzing required [18:24:32] and haven't gotten to hhvm [18:25:02] AndyRussG: hey, are you interested in the Ed+Gather meeting in at 11:30? [18:25:05] erp [18:25:13] in 5 minutes [18:25:25] awight: yeah I was just gonna go reposess my headphones [18:25:35] are u going? [18:25:46] yep! [18:25:55] K cool [18:27:52] cwdent: I ran into a big gotcha with hhvm, the default settings (for wheezy) didn't specify a session data directory... [18:28:20] yep i ran across that too [18:28:39] Feel free to update our installation docs :) [18:28:41] the default wheezy mysql install also had the wrong socket name [18:28:48] unrelated to hhvm [18:28:52] ha [18:29:00] awight: are u OK with my "fixing" the allocation algorithm while I'm at it? The root issue is, what does "limit traffic" mean? You'd think it means, don't let the campaign ever exceed that percentage of the total allocation avaialble in the targetted block. However, the algorithm interprets it to mean "scale back by this percentage whatever the campaign's allocation would normally have been given existing [18:29:00] campaign overlaps, etc." [18:29:06] AndyRussG: yes! [18:29:31] AndyRussG: oh, that's totally broken. The intention was just as you say. I swear it worked like that at least once. [18:30:48] hrmphs [18:49:27] ops-fundraising, operations, ops-eqiad: barium has a failed HDD - https://phabricator.wikimedia.org/T93899#1199143 (Cmjohnson) This will be replaced 4/14 at 10am EST. [18:52:55] ops-fundraising, operations, ops-eqiad: barium has a failed HDD - https://phabricator.wikimedia.org/T93899#1199180 (Cmjohnson) Updated icinga with the downtime 4/14 1400 -1415 [19:10:28] ops-fundraising, operations, ops-eqiad: barium has a failed HDD - https://phabricator.wikimedia.org/T93899#1199243 (Cmjohnson) returned the disk Dell sent me. Tracking numbers FEDEX 9611918 2393026 47861526 [19:43:44] here is mw on hiphop/nginx http://wiki.sadbastard.org/index.php/Special:FundraiserLandingPage [19:44:05] but i understand DonationInterface won't work on there, or the most recent wiki [19:44:21] do you all typically develop locally with vagrant/puppet? [19:44:57] i'm guessing that's the easiest way wrt versioning... [19:46:43] cwdent: I don't currently, though I might start again [19:47:18] I didn't for a while 'cause I was constantly running qemu VMs which fight with VirtualBox, which our vagrant system uses [19:48:04] However I'm not using those VMs now so I could switch back [19:48:28] Haven't run into much versionning issues WRT tools, once in a blue moon some PHP version differences tho [19:49:08] For CentralNotice work I need two wiki instances, not sure if MW vagrant currently supports that... It might... [19:58:12] Mmm I meant wrt dependencies, or mmm, stuff that MW needs... Now we have external dependencies with Composer, which is nice! It's quite new [19:59:12] yep, we started using composer at sparkfun after many failed attempts at dep control [20:00:14] how old is the mw core version that fundraising uses? [20:02:09] i got as far as https://github.com/wikimedia/mediawiki-vagrant/blob/master/puppet/modules/role/manifests/fundraising_wiki.pp [20:04:03] Hmmm I was gonna say look her https://donate.wikimedia.org/w/index.php?title=Special:Version [20:04:10] But that can't be right! [20:04:47] (CentralNotice runs on the production wikis, it's DonationInterface that needs the older stuff) [20:05:01] 9 April 2015 <-- too new i'm guessing? [20:05:58] AndyRussG: we are late! coming! [20:06:16] atgo: yeah one sec :) [20:06:29] atgo: I mean, I'm late tooo 8p [20:06:44] cwdent: yeah this is another "not my department" answer from me, I'm afraid 8p [20:07:25] np! do let me know if my badgering gets excessive [20:20:57] cwdent: ah no problem at all, actually it's great that you haven't run away from our odoriferous codebase :) Just sorry I didn't know the answer there... [20:28:26] cwdent: https://github.com/wikimedia/mediawiki-vagrant/blob/master/puppet/hieradata/common.yaml#L194 , the core branch is fundraising/REL1_23. Well hunted--this feature was only merged last week! [20:29:42] cwdent: Yeah fr-tech is not using vagrant yet, I've been blocked on writing those puppet modules until... last week :) [20:32:09] howdy cwdent [20:32:10] ! [20:32:31] hello! [20:34:19] awight: cool! so up until now if you were going to set up a dev env for fr would you just clone from a particular sha? [20:34:57] or maybe there's just a snapshot... [20:35:52] * awight furtively glances at existing documentation, https://wikitech.wikimedia.org/wiki/Fundraising/tech -- it does not explain [20:36:05] We would cd to mediawiki-core, then git checkout fundraising/REL1_23 [20:36:21] aah, gotcha [20:36:23] or uh the first time, git checkout -t origin/fundraising/REL1_23 [20:36:37] then update submodules [20:36:53] * cwdent shudders [20:36:55] submodules [20:36:58] yes [20:37:05] i've had some Bad Times [20:37:15] They say, Torvalds hates them therefore has not supported much [20:37:51] yeah [20:37:59] people seem to like subtrees ok, but i have not had the pleasure [20:38:12] If you want DonationInterface to do anything useful, you would also need to muck around in LocalSettings.php, a la https://gerrit.wikimedia.org/r/#/c/135326/10/puppet/modules/role/manifests/payments.pp,unified line 55 [20:38:35] That should be enough to get you a working install. [20:38:36] i should say, submodules were fine for keep up to date 3rd party libs, but we had a hell of a time coordinating upstream [20:38:46] awesome, thank you [20:38:52] Yeah, we end up forking anything we'll be modifying [20:39:06] no idea how many commits i pushed to "no branch" [20:39:13] * cwdent facepalm [20:39:25] Also: composer's vendor directory severely messed up our heads, until we blew away the vendor submodule everywhere but in deployment. [20:39:31] yeah.. no branch == no fun [20:40:01] Something about my git workflow causes me to end up there all the time. I donno how to stay on a branch as I attempt rebase trickery. [20:41:35] had that exact experience with vendor. where did all my files go? [20:42:52] and i think it is a perennial effect of git that you will from time to time waste 3 hours and lose a bunch of code [20:43:21] and find a mailing list where linus chastises someone for doing what you just did [20:44:29] Some time last year... ma peers gave me an amazing gift: git reflog [20:44:39] but yeah, it won't help if you overwrote untracked stuff [20:51:27] well i'm speaking to lisa gruwell in a few minutes, but i'll be back later and mess with a dev environment [20:51:33] thanks for all your help! [20:51:42] Have fun, she's great! [21:05:19] awight: out of curiosity, why does https://donate.wikimedia.org/w/index.php?title=Special:Version show the version that it does? [21:05:24] AndyRussG: donatewiki is on the train... [21:05:24] paymentswiki is the one with DonationInterface & the antique core version [21:05:24] aaah right OK [21:05:25] cwdent: have good luck, have fun! [21:22:53] Fundraising-Backlog: Need query to track GC recurring failures - https://phabricator.wikimedia.org/T95765#1199784 (CCogdill_WMF) NEW a:atgo [21:37:17] Fundraising-Backlog: Need query to track GC recurring failures - https://phabricator.wikimedia.org/T95765#1199860 (awight) Interesting. This query was finding PayPal subscriptions which had failed to recur, but it's much less likely that GC subscriptions will fail in this way, cos we charge them explicitly.... [21:46:40] AndyRussG: Hi! I'm trying to fill out the appendix to https://docs.google.com/a/wikimedia.org/presentation/d/1_7nl7o5u7bI6uKMwD7_fg2ycJI671ktv0dKKTEZs93I/edit#slide=id.g769be2df0_2_6 and wondering where I should link for information about CentralNotice banner history. https://www.mediawiki.org/wiki/Extension:CentralNotice/Notes/Campaign-associated_mixins_and_banner_history ? [21:49:15] Fundraising-Backlog: Need query to track GC recurring failures - https://phabricator.wikimedia.org/T95765#1199881 (CCogdill_WMF) Thanks @awight, this definitely looks better! My one concern about this query is we have no interest in seeing the recurring subscriptions DS cancels manually. We do these every d... [21:59:56] Fundraising-Backlog: Need query to track GC recurring failures - https://phabricator.wikimedia.org/T95765#1199901 (awight) @CCogdill_WMF: Sure, you can also filter on the r.contribution_status_id, with something like "not in (4)". We get some clues about the failure in a response to our API request, but tho... [22:01:26] AndyRussG: well, I'm linking that page in our quarterly report appendix, cos I think it's great. Please lmk if you'd rather leave it in the \shadows! [22:01:37] s/\\// hmm [22:10:06] the answer to this may very well be "don't ask" but, https://payments.wikimedia.org/ ? [22:10:20] LOL. We need a cowsay for that. [22:10:43] cwdent: We've whitelisted access there... For a good time, try https://payments.wikimedia.org/index.php?title=Special:GlobalCollectGateway&appeal=JimmyQuote&ffname=cc-vmad&recurring=&uselang=en&language=en¤cy=EUR&country=US&amount=2 [22:16:03] gotcha [22:20:37] this is a great diagram https://wikitech.wikimedia.org/w/images/8/81/DonationPipeline_201302.png [22:21:11] cwdent: KHorn is the genius behind that one. There's even a sweatshirt. [22:21:40] awesome [22:22:15] awight: sorry I didn't reply sooner (we had an early family supper) [22:22:35] Of course, please go ahead! and thanks :) [22:24:27] It makes us look deadly serious. [22:25:18] Maybe if you go too far off the scale of seriousness you re-appear on the opposite end in very funnyland [22:25:49] awight: I was gonna ask you more about the context of that report so I could know what to say or how to help out... but I kinda have to run right now! [22:26:08] AndyRussG: you don't want to know :p [22:26:30] It'll still be relevant on Monday? Or if you have time, LMK via e-mail and I'll look later this eve or over the weekend... [22:26:44] Ahhh but I _do_ want to know buaahahahahaha [22:27:08] AndyRussG: Long story short, the management is being trained in how to make goals and eat them. [22:27:26] There'll be plenty of time on Monday, if you're interested in doing stuff! [22:28:14] awight: ah K sounds good [22:29:52] Yeah it says Q3 but I thought we're still on Q3 right now [22:30:08] Who traiend the trainer? [22:31:34] AndyRussG: it's the report for the end of the quarter. Nothing very exciting, this is a scorecard to demonstrate whether we hit or missed the goals that were already set in January. [22:33:50] So the quarter ends/ended... in March? [22:33:59] I guess! [22:34:22] http://en.wikipedia.org/wiki/Fiscal_year#United_States [22:34:34] Other piece of context, the point is to bludgeon ourselves and report that we missed goals if the wording or deadline were off... [22:34:40] awight: but isn't that Q2 then? [22:34:44] thx:) [22:35:01] Hmmmm [22:35:02] I... don't know. Aaaaaaah [22:35:24] but yes, this is the report on the past quarter [22:36:41] OK ... ending March 31 I guess then... K that makes more sense :) [22:37:13] I'm not saying this other part right, either, but an interesting detail is that we aren't supposed to focus on what actually happened. Just say whether we hit the exact goal as stated. [22:42:35] Wow that's deep! [22:42:56] Hopefully it's a temporary condition. [22:49:24] I'm off! cya around awight cwdent :) [22:51:40] me too, hope you all have a great weekend! [23:14:22] awight: cute alert [23:15:59] also awight i think wearlier you said git reflog (as in ref-log), but i keep reading it as re-flog