[00:00:17] K! [00:10:04] AndyRussG: ejegg: fwiw, I just learned I can work tomorrow :) see you in the mines! [00:10:41] aww, we're stealing you from your family... [00:10:46] Heh the coal mines are the best for ur lungs [00:10:54] awight: yeah what ejegg said :( [00:11:07] nah I'm swapping for Friday. Don't work too hard, suckas! [00:12:11] what you don't know is tha actually my kids to all my programming for me [00:12:36] yes, I have a similar system. Sometimes I have to remove a few hundred random characters, but what's left seems to work [00:12:38] They also work the teleprompters telling me what to say during video calls [00:12:42] :) [00:12:58] It's a convincing act [00:13:17] In exchange I do their homework for them [00:15:11] AndyRussG: oops, in BannerChoiceDataProvider.php, wfGetDB( DB_SLAVE, $wikiId ), I think wikiId is actually supposed to be the third parameter. [00:15:23] the second param defaults to $groups = array() [00:16:40] awight: nice catch! [00:16:55] still scratching my head about how to test... [00:18:50] automated or smoke? [00:19:33] Yea may have to do some refactoring to unit test that bit (?) [00:19:35] either, really [00:19:42] yeah I'll get it [00:21:03] we may want to rework Special:BannerAllocations display once buckets are per-campaign-ized [00:21:43] yeah, that will definitely make sense [00:22:52] (PS4) Ejegg: WIP: start using BannerChoiceDataProvider for allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [00:23:18] OK, moved the new allocation calculations out of the special page [00:23:36] cool! [00:23:55] yesss [00:24:02] awight is this one in a different status than backlog? https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/2151 [00:24:32] ejegg: my only nitpick so far is the underscore vs camelCase for var names.. [00:24:47] atgo: thanks! [00:25:50] Oh yeah, the special page was all underscores but the provider has camels. Will adapt the code to its new surroundings [00:26:05] (PS5) Awight: WIP BannerChoicesResourceLoaderModule test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 [00:26:37] ejegg: thx :) [00:26:37] (CR) jenkins-bot: [V: -1] WIP BannerChoicesResourceLoaderModule test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 (owner: Awight) [00:27:29] ejegg: I think allocations thing is actually a separate responsibility... [00:27:47] -v: calculateAllocations [00:28:08] k, will bust it out entirely [00:28:13] yes pls [00:35:40] (PS5) Ejegg: WIP: start using BannerChoiceDataProvider for allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [00:39:02] (CR) Awight: WIP bannerChoiceData and bannerController.lib modules (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [00:40:10] (PS6) Awight: BannerChoicesResourceLoaderModule test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 [00:40:34] AndyRussG: ok, not sure if I'm cheating or not, but the RL module tests pass, using wgInfrastructureWikiId = wfWikiID() [00:40:41] (CR) jenkins-bot: [V: -1] BannerChoicesResourceLoaderModule test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 (owner: Awight) [00:41:19] hehe they really do pass. there's just a typo, see here: https://gerrit.wikimedia.org/r/#/c/172299/8/CentralNotice.php,unified [00:41:24] awight: sounds good enough for a unit test! Anything more would be integraiton testing, really [00:43:12] awight: bllrrg, and the var should be neither of those [00:43:26] :) [00:55:04] (CR) Awight: "An aside--let's disable Special:GlobalAllocations as part of this commit..." [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [00:55:41] awight: disabling that sounds [00:55:46] good [00:55:56] songbirds [00:56:17] just gonna rebase on top of AndyRussG's patch that adds the chooseOnClient switch [00:57:03] ejegg: if u wait 30 seconds there's an update coming [00:57:23] cool [00:58:00] (PS9) AndyRussG: WIP bannerChoiceData and bannerController.lib modules [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 [00:58:10] Hmm that was 57 seconds [00:58:19] twice as long! [00:58:20] close enough! [00:58:35] * awight shows up to the test an hour late [01:00:43] just don't tear out the page about power and discourse [01:01:12] aaaargh [01:01:17] * awight drops out for the fourth time [01:03:30] nooo [01:09:21] (CR) Awight: WIP: start using BannerChoiceDataProvider for allocations (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [01:11:12] I'm thinking the fixtures should be in json, so we can use them from QUnit... [01:11:55] separating data from logic, i love it [01:13:15] iiiiiiiinteresting [01:13:42] well. yeah cos you two are now working on parallel reimplementations of the twitchiest piece of CN [01:14:13] we just have to... make sure the new special:allocations page and client-side banner chooser are exactthefuckingly the same. [01:14:22] matching the old chooser is a bonus [01:14:24] I'm so fried [01:14:44] So we're throttling per priority level - given a 50% emergency campaign, a 50% high pri campaign, and a 100% normal pri campaign, does the normal campaign show up 0% or 25% of the time? [01:14:57] 0 [01:15:00] cool [01:15:11] thanks! [01:15:26] I'm fried and going for re-frying [01:15:28] we're not exactly throttling per level. it's more like, portions of the 100% are dished out in turn to each prio level [01:16:29] ok, makes sense. per level would be the 25% scenario [01:16:58] one more thought about how to make this sane--is one of you going to take the lead on writing the new alloc algorithm? or will u collaborate and somehow have convergent evolution? [01:17:02] either answer is fine :) [01:17:23] we can also just wait until the tests are available, then thwack at every edge case until they match :) [01:18:06] ejegg: I think I understand whatchu mean. yeah it's always "this campaign wants 50% of total allocations", not 50% of remaining [01:19:04] ejegg: I do have the tingling sensation that perhaps I should just slightly refactor BannerChooser, so it can do the job of BannerAllocationCalculator [01:19:22] We've found so many fucking bugs in the alloc code... [01:19:29] they are all guaranteed to be subtle... [01:19:44] Hmm. client alloc algorithm will choose a single banner, while server wants the percentages for each [01:20:11] but the client alloc algorithm has to construct the percentages, first [01:20:20] right, then just choose a float between 0-1 and see which one it hits [01:20:22] yeah [01:20:24] awight: ejegg is in the lead right now so for now I'm gonna review and nitpick, steal and rebrand [01:20:42] AndyRussG: don't steal it yet :D [01:21:01] OK, gonna need some severe recalibration to fix the priorities [01:21:27] ejegg: I donno if this helps, https://www.mediawiki.org/wiki/Extension:CentralNotice/Allocation_system [01:21:54] ignore "moderation by priority" [01:22:06] awight: thanks, that does help! [01:23:02] ejegg: you really could just port over BannerChooser... [01:23:20] no, we gotta kill those slots! [01:23:31] slots are the very last thing that happens. [01:23:38] Oh, let me see then [01:23:41] it takes a clean float matrix, then quantizes into another column [01:23:54] ah, might as well reuse then [01:24:43] yeah all the slots stuff is encapsulated in quantizeAllocationToSlots [01:25:14] there could just be a boolean attribute that tells it to not generate slots [01:25:33] pls note that the quantization backfeeds the rounding, and adjusts all the float allocations [01:26:17] ah, and that's how we get everything rounded to the nearest 30th [01:26:29] yup [01:26:31] yeah [01:28:51] whew, just created a filter for puppetrun static [01:31:58] (CR) Awight: WIP: start using BannerChoiceDataProvider for allocations (2 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [01:34:04] hey waitaminute. you Easterners haven't had dinner yet... [01:34:11] get outta here! [01:34:32] heh, i've snacked plenty [01:34:48] but thanks for the concern! [01:36:13] hmmm I'm multitasking on that point but counting the minutes until I can re-focus on this (soon) [01:37:12] yeah I also snack all day! [01:39:39] family excuse just arrived! [01:39:43] See you in tha morning [01:39:51] g'night! [01:40:02] afaik, any patches I have not marked WIP are fair game for CR [01:58:57] whew, back, multitasktime is over... ejegg is https://gerrit.wikimedia.org/r/#/c/172914/ still where I should continue? [01:59:08] (on the latest patchset)? [01:59:36] I'm still redoing the allocation algorithm [01:59:51] will be quite different once the priority thing is right [02:05:38] K I should just continue w/ the JS version I guess? pls let me know NEtime you think I should look at something, thx :) [02:06:55] OK. Were you just translating the bannerchooser logic into JS? [02:08:16] I was sort of doing that, but the flow is a little different due to the data structure [02:08:37] derp, i mean reusing it in php, not translating to js [02:11:20] more or less, kinda more less than more [02:13:02] hmm, guess I could flatten the ds into a banner list first, then just wholesale rip off the allocate function. [02:20:35] (PS1) Ssmith: Push working changes to github [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/172937 [02:20:37] (PS1) Ssmith: Reset form when modal is reopened [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/172938 [02:20:41] (CR) jenkins-bot: [V: -1] Push working changes to github [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/172937 (owner: Ssmith) [02:20:47] (CR) jenkins-bot: [V: -1] Reset form when modal is reopened [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/172938 (owner: Ssmith) [02:21:17] (Abandoned) Ssmith: Push working changes to github [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/172937 (owner: Ssmith) [02:28:14] ejegg: nice that you added the country logic onto the provider [02:39:51] (PS6) Ejegg: WIP: start using BannerChoiceDataProvider for allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [02:41:18] AndyRussG: You think that's the right place for it? I wasn't so sure [02:41:41] OK, that latest patch set just copies the BannerChooser logic [02:41:53] Ah cool :) [02:42:28] Well, it's a start. the logic should just live in one place eventaully [02:42:34] *tually [02:42:47] re: where to put stuff, really the original patch could have much more elegant OO layout [02:43:14] Though we will kill bannerchooser once the new stuff is activated, right? [02:43:44] I think for now it's acceptable to be pretty bare-bones on the OO design [02:43:55] Maaaaaybe [02:44:02] hrmmm [02:45:37] It's also used in an API [03:12:32] (PS7) Ejegg: WIP: start using BannerChoiceDataProvider for allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [03:12:59] OK, got BannerChooser calling the allocation calculator. [03:14:14] But there's a wonky little filter/transform function in the allocation calculator now. Maybe i'll add another class for that and the country filter [03:15:53] ehh, that would be a job for tomorrow. Have a good night! [07:42:26] (PS1) Awight: satisfy ruby lint [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172947 [07:55:33] (CR) Awight: "Looks solid." (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [07:55:45] (PS8) Awight: WIP: start using BannerChoiceDataProvider for allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [09:12:36] (PS1) Awight: minor fixups to WIP [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172957 [09:12:38] (PS1) Awight: Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 [09:13:13] (CR) jenkins-bot: [V: -1] Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 (owner: Awight) [09:14:23] (CR) Awight: "I noticed some typos, but fixed them in order to debug my tests :)" (3 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [09:19:39] (PS2) Awight: Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 [09:44:35] (CR) Hashar: [C: 1] Basic QUnit tests [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172665 (owner: Awight) [15:26:37] (PS1) Cmcmahon: QA target beta labs for Jenkins builds [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173008 [15:27:52] (CR) Zfilipin: [C: 2] QA target beta labs for Jenkins builds [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173008 (owner: Cmcmahon) [15:28:30] (Merged) jenkins-bot: QA target beta labs for Jenkins builds [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173008 (owner: Cmcmahon) [15:44:00] (PS9) Ejegg: Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [15:44:02] (CR) jenkins-bot: [V: -1] Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [15:57:16] morning ejegg :) [15:57:26] I felt I had to start writing stuff down: https://www.mediawiki.org/wiki/Extension:CentralNotice/Allocation_system/Notes [16:01:23] Hi AndyRussG [16:01:30] :) [16:02:21] Good to have that documented! [16:04:14] Ah thanks!! Not finished yet, sorry if I'm repeating something u already did 8p [16:04:46] Yeah I find I get lost easily in this code, and writing stuff down helps [16:05:16] Just sending you and awight an e-mail w/ some thoughts... [16:08:54] going to semi-here mode while I get breakfast... [16:57:08] Hi AndyRussG [16:57:22] CN banner cookies expire after two weeks, correct? [17:03:06] Hi Glaisher [17:03:22] Mmm which cookies exactly? [17:03:26] hidebanner [17:03:29] (there are a few) [17:03:50] Hmm lemme check... I think it depends on the reason for the hide [17:05:53] So, we are going to re-use a banner every year for an annual event instead of recreating one every year. And if a user hides a banner on 2014, will it appear next year? [17:06:41] If they click on the hide button... I think so. [17:07:10] hideBanner() specifically [17:11:23] Glaisher: yes I think two weeks. Look at $wgNoticeCookieDurations in wmf-config/CommonSettings.php, in the wikimedia-config repository [17:11:35] That's what it sayz anyway :) [17:12:06] yep [17:12:08] two weeks [17:12:09] $wgNoticeCookieDurations = array( [17:12:10] 'close' => 1209600, // 2 weeks [17:12:10] 'donate' => 21600000, // 250 days [17:12:24] it's mediawiki-config repo, not wikimedia-config. :) [17:12:37] Thanks a lot [17:16:03] ah right [17:16:06] np :) [17:16:32] Glaisher: BTW there's a chrome extension for editing cookies that you can use to test this stuff... [17:17:11] Hm. Do you know its name? [17:17:46] Glaisher: EditThisCookie https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=en [17:18:08] ah cool [17:18:11] thanks again :) [17:19:03] np! [17:36:08] Jeff_Green: lmk if/when you want to do the triggers thing, cos I want to schedule a CentralNotice deployment to take advantage of the banner downtime. [17:36:33] AndyRussG: If you had a chance to read me email... what did u think of that idea, deploying the CN noops? [17:36:53] awight: I dunno... isn't it extra work? [17:37:15] not much work, I just have to make sure we didn't break obvious things [17:37:23] Ah hmm [17:37:29] Right I see [17:37:38] the benefits it gives us, is to consolidate the risk of the actual feature deployment [17:38:15] I guess if we have to go back and change stuff once all the pieces are in place all the changes can be deployed at once later [17:38:21] I mean [17:38:27] yes [17:38:36] If when we're smoke testing the whole system and we find we have to change the earlier bits [17:38:43] We can still go back and do that [17:38:56] it could eat two hours of my time, but I was going to lose one of those hours anyway :) [17:39:12] Hummm [17:39:32] If u think it's worth it... [17:39:50] Right now I'm stuck on L190-199 of BannerChooser [17:40:04] looking... [17:40:13] trying to figure out this $scaling variable [17:40:14] AndyRussG: you are porting to js? [17:40:23] I should be [17:40:28] Or something of the sort [17:40:52] But I decided to read the code and write down my understanding of it first [17:40:55] I was head-scratching over this $scaling as well [17:41:11] Yeah WTF [17:41:16] sorry [17:41:35] okay, it's to fairly divide the allocations as we descend in priority [17:41:45] so, if an emergency banner is taking 50% of allocations, [17:41:51] Ummm looks like it has no effect actually [17:42:01] if ( $priorityTotalAllocations[$z_index] > $remainingAllocation ) { [17:42:03] two normal-prio banners that wanted to have 50% allocations will be given 25% each, instead [17:42:20] what's wrong with that? [17:42:28] Nothing, just figuring [17:42:40] that would be, $prioTotal[NORMAL] > .5 [17:42:50] and priototal[normal] would have been 1.0, in my example [17:42:52] So the first term will never be less than 1, except for low-prioiryt [17:42:54] priority [17:43:00] Ah no [17:43:02] no, it could be < 1 [17:43:04] I'm misunderstanding... [17:43:21] K sorry about that....... [17:43:23] I think this only kicks in when we use throttling [17:45:04] Somehow I was thinking we were adding the const values, bah [17:45:27] So rather, the first term wil never be greater than 1 [17:46:16] it's weird. if there are two campaigns, that number will be 2.0 [17:46:20] K I see, $scaling is just to fully use up whatever allocation is left over [17:46:35] yes, to contract or expand [17:47:22] I'm definitely in fear mode, fwiw, and adhering as closely as possible to this structure will have a soothing effect on my nerves :) [17:47:59] yea.. K I'll try not to startle you :) [17:48:27] Yea that's why I decided to take it slow and careful, as well as I am able [17:49:08] lol thanks [17:49:43] likewise! Even if we don't get this out in time, it'll be time well spent [17:51:30] awight: ok. i didn't get to run the db dump because I spent half the night and part of this AM unbreaking puppet, so let me run that now [17:51:44] Can you describe the desired behaviour of the allocations function, first without throttling, then with? [17:51:46] want to schedule the outage for like 2H from now? [17:52:13] Jeff_Green: sure. sooner the better, from my perspective. [17:52:28] awight is pestered by Greens [17:52:33] :p [17:52:59] (sorry Jeff_Green didn't mean to say you were pestering ;p ) [17:53:00] AndyRussG: I'll plan to deploy CN noops like we were discussing, but you can restrain me from it at any point. [17:53:25] ha [17:53:29] AndyRussG: don't worry, Jeff_Green's got skin like an armadillo :) [17:53:41] awight: maybe it makes sense to do in a first deploy all the noops that create new globals [17:53:55] ok [17:54:02] maybe [17:54:14] I definitely want to get that RL module... [17:54:54] AndyRussG: we'll set up the cross-db config var. [17:55:20] right [17:55:34] Have to fix that bug too [17:56:35] awight: database is dumping.... [17:59:52] awight: OK I think sending up the patch w/ the RL module makes sense... Like u said, we can be sure nothing is breaking with $wgCentralNoticeChooseBannerOnClient set to false [18:00:07] Lemme un WIP the commit message--or is there anything else there? [18:00:21] to fix in that commit, I mean [18:01:23] Jeff_Green: ok, we have a window 11:00-13:00 PST today [18:01:49] Jeff_Green: I'm starting early cos my plan is to push and test some CentralNotice things while the banners are down. [18:03:05] AndyRussG: explaining allocations... hrm. Have you seen https://www.mediawiki.org/wiki/Extension:CentralNotice/Allocation_system#Campaign_maximum_allocation [18:03:15] That's the only real trick. [18:03:49] Yeah... I keep thinking some of this calculation can be done on the server, but it cannot. Let me bury that thought. [18:04:07] awight: right... Yes I had seen it but not remembered it at the right time...thanks [18:04:49] awight: also is this section correct? https://www.mediawiki.org/wiki/Extension:CentralNotice/Allocation_system#Moderation_by_priority [18:06:32] AndyRussG: no, that was never implemented (status=rfc) [18:06:49] awight: ah right thanks! [18:07:00] awight: interwiki Db call smoak tested! [18:07:22] works following fix on that param error [18:10:53] (CR) AndyRussG: WIP bannerChoiceData and bannerController.lib modules (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [18:11:06] (PS10) Ejegg: Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [18:11:08] (CR) jenkins-bot: [V: -1] Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [18:13:26] hey awight AndyRussG - megan and jessica have been seeing CN slowness particularly around cloning/saving banners recently. Just wanted to check and see if there was some change that went out in the last few days (started this week)? [18:13:40] Hi awight [18:13:47] not yet, no! [18:14:01] sorry I meant hi atgo [18:14:08] hi :) [18:14:09] and also hi again awight [18:14:32] (I press "a" and hit tab, it autocompletes nicknames but doesn't read my mind... yet...) [18:14:52] atgo: not yet, no deploys I know of [18:15:16] Maybe we should ask ops about any strains currently on the system? [18:17:33] atgo: awight: ejegg: is 5 min a reasonable default for the memcache expiry for banner data? I think that would give us 5 minutes or 10 minutes lag following updating camapigns, depending on whether or not our RL module gets Varnish-cached [18:18:07] AndyRussG: hell yeah. That is much tighter than the current banner caching, and we can tune as needed. [18:18:19] K sounds good [18:18:27] RL will/must be :) cached [18:18:39] (PS10) AndyRussG: bannerChoiceData and bannerController.lib modules [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 [18:20:25] pizzzacat: hi! and thanks. https://gerrit.wikimedia.org/r/172947 [18:20:42] pizzzacat: also... if you want, https://gerrit.wikimedia.org/r/#/c/172665/ [18:22:37] (CR) Ssmith: [C: 2] satisfy ruby lint [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172947 (owner: Awight) [18:22:44] (PS1) AndyRussG: Fix interwiki DB call in BannerChoiceDataProvider [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173061 [18:22:51] ejegg: whatchu think about my UI porcelain thought for Special:BannerAlloocation? [18:23:13] I can implement that, if you agree, and yr hands are full of other things. [18:23:29] awight ok [18:23:41] i'm going to grab chow, will be back in about ~20 [18:23:51] Jeff_Green: aright [18:24:52] awight: the css would be fine, if there's no concern about doing the allocation calculations twice [18:24:59] I can do that [18:25:26] just trying to figure out why gerrit says the thing is unmergeable [18:25:30] ejegg: nah, it's a minimal resource drain [18:25:56] ejegg: I was thinking, we show the new numbers, but there's a checkbox which unhides old rows, with some background color. [18:26:31] ejegg: clicking "rebase" doesn't work? [18:27:15] no rebase button - it's based on the latest PS of AndyRussG's commit [18:27:34] it's not the latest PS... [18:27:43] isn't the Depends On row red? [18:27:58] ejegg: you can rebase manually on your machine and submit the rebased version as new patchset [18:28:07] ejegg: oh hehe he uploaded that PS 10 minutes ago, that's why [18:28:15] (PS11) Awight: Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [18:28:16] oh, gotcha [18:28:17] (CR) jenkins-bot: [V: -1] Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [18:28:30] ejegg: sorry, I clicked Rebase out of curiosity [18:28:39] same result... [18:28:43] yah... [18:29:02] ah well, I'll worry about that again when the parent is merged [18:29:14] ejegg: I'm removing Jenkins so it tries again [18:30:29] pizzzacat: u have a chance to look at the QUnit patch? [18:30:54] Oh, if I'm just using a checkbox to switch the display, I don't need to depend on that change anyway. Was only using the new global from there [18:30:58] do you have a link awight? [18:31:07] pizzzacat: https://gerrit.wikimedia.org/r/#/c/172665/ [18:31:17] fun! I can show u how to run those if you're interested. [18:33:15] (CR) Awight: [C: 2] bannerChoiceData and bannerController.lib modules (2 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [18:33:24] weee [18:33:35] awight not sure if I'm the best/fastest for reviewing that but will get deeper in it when I've pushed this thing I'm trying to finish [18:33:48] (Merged) jenkins-bot: bannerChoiceData and bannerController.lib modules [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [18:33:56] ejegg: I had a thought--you could invert the display logic based on AndyRussG's global. Was that what you were just saying? [18:34:02] pizzzacat: no worries! [18:34:23] (CR) Awight: [C: 2] Fix interwiki DB call in BannerChoiceDataProvider [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173061 (owner: AndyRussG) [18:34:28] awight: Could use that for the initial state of the checkbox [18:34:34] (PS2) Awight: Fix interwiki DB call in BannerChoiceDataProvider [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173061 (owner: AndyRussG) [18:35:06] That global can vary between the consumer projects though [18:35:12] ejegg: well... I don't want to show the new allocs by default until we're actually using them [18:35:27] ejegg: wat. wait, which global now? [18:35:39] the chooseBannerOnClient global [18:35:46] I'm thinking of... yeah. [18:36:09] * awight is boggled by your correctness [18:36:28] So, just a checkbox, no reference to the global [18:36:30] * awight looks at mediawiki-config repo [18:36:58] It could vary by projects but do we ever want it to? We could just decide to have it not... [18:37:15] RL modules... switched by project... wow. So we can actually enable this thing for testwiki [18:37:16] Though maybe we will want it to... ? [18:43:58] AndyRussG: want to take a peek at origin/master and confirm whether these patches can be deployed? [18:44:17] awight: K [18:45:15] AndyRussG: just merged one more [18:46:03] ejegg: you saw my note about https://gerrit.wikimedia.org/r/#/c/172957/ ? [18:46:04] (PS1) Ssmith: Fix range values [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173064 [18:46:15] (CR) jenkins-bot: [V: -1] Fix range values [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173064 (owner: Ssmith) [18:46:16] awight: the last one in my log is Fix interwiki DB call in BannerChoiceDataProvider [18:46:22] on master [18:46:24] AndyRussG: yes, that sounds right [18:46:30] K [18:47:10] Testing w/ the defaults on the new globals (inc. false for choosing on the client) [18:47:29] awight: yep, saw it. Those fixes are in the last patch set [18:47:45] will submit another as soon as I get the css / checkbox in [18:48:59] ejegg: no rush! [18:49:43] ejegg: this first deploy is mostly for smoke-testing major breakage, and the Special page is less critical [18:50:34] awight: ejegg: on the lastest CN master, smoke testing I see no issuz. Global variables are default so choosing on client is false. [18:50:41] awesome. [18:50:46] OK. That last PS should be fine if you just want to deploy. It uses the global but only displays that one algorithm [18:51:00] AndyRussG: I'm thinking I'll try to set test.wikipedia.org to use the client-choice and shared db [18:51:29] The new RL module is sent in but is a no-op with it set to false, as expected [18:51:34] ejegg: ok, sure. If you can hide by css, with no checkbox, then we could reveal via browser debugger [18:51:42] eithe rway! [18:51:46] awight: won't work yet as we're still missing the actual choosing code in js [18:52:07] AndyRussG: delivering the RL will be exciting enough :) [18:52:11] OK [18:52:32] You can set it to true and actually get the banner choices too, you can see 'em in the browser debugga [18:53:03] AndyRussG: I'll do this for just test.wp [18:53:22] awight: sounds rad! [18:53:33] hehe, you Cali kids [18:54:00] rad is an old foggie word, no? [18:54:08] awight: back [18:54:16] * awight has been dated forever [18:54:29] Jeff_Green: ok, I'm ready to disable campaigns any time... [18:54:36] ok. go for it [18:55:30] !log disabling CentralNotice campaigns [18:55:36] Logged the message, Master [18:57:36] awight: we need to put payments maintenance mode too right? [18:57:56] stopping replication on db1008 [18:59:43] Jeff_Green: yep [18:59:56] Jeff_Green: ok, disabled. now I'm waiting for payments to settle down [19:00:03] awight: have you tested the schema change sql on dev_drupal? [19:00:50] Jeff_Green: no, only locally [19:00:54] the deploy slot is calling... [19:00:57] Jeff_Green: yeah, let's do that. [19:01:07] let "'s" do that :) [19:01:11] ok [19:02:04] alter table running [19:02:12] Jeff_Green: we have to abort the deploy... I just got email from ccogdill that they sent an email a second ago. [19:02:16] tage: 1 of 2 'copy to tmp table' 0.005% of stage done [19:02:37] sorry awight I didn’t realize this was happening today [19:02:38] it's been reading exactly that ^^ for almost a minute :-P [19:02:56] Jeff_Green: yeah... it's never a good time to screw with contribution_tracking :( [19:03:06] just jumped to 8.8% [19:03:15] (PS12) Ejegg: Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [19:03:21] (CR) jenkins-bot: [V: -1] Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [19:03:43] ejegg: AndyRussG: ok, well we still have the CN deploy, since banners are already down. [19:04:05] Jeff_Green: maybe you can schedule this with other fr-techsen and fr-onlinesen next week? [19:04:06] fun coincidence! [19:04:09] I'll be out... [19:04:49] ejegg: you still want deployment of yer noop? [19:04:57] awight: if this is the only long query, we might be ok? [19:05:03] it's at 22% now [19:05:05] ccogdill: not all all. thanks for your quick response! [19:05:21] or we can schedule, I'm around all next week [19:05:31] Jeff_Green: nah, no payments can happen during the alter, which will just kill the major gifts shout-out [19:05:38] (PS13) Ejegg: Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 [19:05:45] oh [19:05:52] ok cool [19:06:09] Jeff_Green: I'm... very interested in this happening, though. It's gonna make a whole lot more sane for analytics queries [19:06:23] currently, they have no indexes on that table. [19:06:38] ya [19:06:40] Maybe I'll take another approach, and trigger into a second table. yep. [19:06:53] not today, though. [19:06:57] we really REALLY really REALLY need to kill the payments dependency on the master db [19:06:58] it's insane [19:07:13] it's the most horrific SPOF [19:07:13] awight: latest PS should be good. It just hides the stuff with css [19:07:19] ejegg: wicked [19:07:51] Jeff_Green: I'm pushing to replace that table with a Redis cluster, next year... [19:07:59] Jeff_Green: we should be able to actually failover and shit. [19:08:02] nice [19:08:20] 44% done [19:09:04] ejegg: is one of PS 9 or 10 a manual rebase? [19:09:19] hmm, let me check [19:09:20] ejegg: awight: I finished the explanation of allocate(): https://www.mediawiki.org/wiki/Extension:CentralNotice/Allocation_system/Notes#BannerChooser::allocate.28.29 [19:09:36] ejegg: nvm, it's a small enough patch, I don't care [19:09:38] Should I be doing something other than going on to quantization? [19:09:54] AndyRussG: wat? [19:09:59] definitely don't quantize [19:10:06] No I mean explaining it [19:10:11] oh. yeah screw that. [19:10:19] that was a huge dead-end [19:10:37] awight: I know, but I thought I should read the code in case there were unknown monsters there [19:10:45] ejegg: yeah, totally easier to review from Base rather than incrementally, sorry [19:11:04] I could forget it for now and just write the JS then, heh :) [19:11:07] AndyRussG: up to you, but I could be happy never seeing that code again :) [19:11:18] awight: K... [19:11:25] ah, 9 was def rebase - that's when i added the dep on the new global [19:11:34] then 10 just fixed the stuff you suggested [19:12:01] I guess nothing I need to do w/ the deploy? [19:12:12] ejegg: so ah, the $wgCentralNoticeChooseBannerOnClient is indeed odd. [19:12:15] AndyRussG: nope! [19:12:23] K fantastic! [19:12:33] ejegg: I guess the idea is just, we'll enable it for meta along with everything else? [19:12:44] awight: sure, I guess so... [19:13:10] So, that will only matter for actually browsing meta, right? [19:14:45] hey awight AndyRussG will the CN deployment later pause campaigns? [19:15:12] !log campaigns reenabled [19:15:17] Logged the message, Master [19:15:25] atgo: nah. We'll run this train straight through the station walls :) [19:15:42] atgo: but it will reset everyone's buckets [19:16:00] AndyRussG: will it? [19:16:06] oh. right the actual deploy, sorry [19:16:43] ejegg: yeah I think so [19:17:03] dev_drupal alter is done...except...I accidentally did 'drupal' on lutetium [19:17:06] crap [19:17:43] double crap. [19:17:44] Jeff_Green: oooh hehe join the club [19:17:47] yeah [19:18:03] Jeff_Green: what was the elapsed time? [19:18:11] (when you recover sanity) [19:18:21] ejegg: I don't see the parallel display, any more [19:18:33] just under 15 min [19:18:37] not bad! [19:18:50] maybe we should go ahead and kill our SPOF, then [19:19:01] ... next week, when I'm cooindentally not around [19:19:02] atgo: the exact timing of the global bucket reset is not yet clear. We have a configuration switch for turning on the new system of serving banners, which gives us a lot of flexibility, but it's not yet determined how that will work with the bucket rset that'll come in when buckets become per-campaign [19:19:20] awight: there's a css rule hiding the new algorithm's allocations [19:19:36] ejegg: but, I see an if/else $banners =, now [19:20:03] anyway, it's a noop so I can deploy if you want. [19:20:07] err, crap [19:20:12] PS13? [19:20:22] errgh no 12. ok. [19:20:52] so now I've got to take lutetium down for maintenance [19:20:55] snuck that one in while you were distracted [19:21:01] hehe [19:21:16] ewulczyn_: ccogdill ^^ [19:21:22] lutetium down for a bit [19:21:27] thanks AndyRussG awight [19:21:33] mmkay, is there an eta for when it’ll be back up? [19:21:39] atgo: np :) [19:22:34] ccogdill: I'll need to take it down for probably an hour or so when I get to that point, right now it can stay up [19:23:07] okay great, I’ll try to get my work with it done now :) [19:23:11] thanks Jeff_Green! [19:23:23] ok [19:23:44] (CR) Awight: [C: -1] "one glitch!" (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [19:23:56] ejegg: I'm gonna skip that patch for this deploy... [19:24:07] ok [19:26:18] (PS1) Awight: Merge remote-tracking branch 'origin/master' into HEAD [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173070 [19:26:39] yeah, I was hiding the checkbox with css too till I add the toggle [19:26:49] i want a redo for this week... [19:27:01] ejegg: ooh sorry. ok we can deploy, then [19:27:22] Jeff_Green: please include last week. Actually throw in the whole year, for Katie. [19:27:30] (PS2) Awight: Merge master branch into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173070 [19:27:37] (CR) Awight: [C: 2] Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [19:28:09] (Merged) jenkins-bot: Use BannerChoiceDataProvider in allocation display [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172914 (owner: Ejegg) [19:29:04] (PS1) Awight: Merge master branch into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173072 [19:29:22] (CR) Awight: [C: 2] Merge master branch into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173072 (owner: Awight) [19:29:28] (CR) Awight: [V: 2] Merge master branch into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173072 (owner: Awight) [19:30:06] yo pizzzacat [19:30:46] yess [19:30:53] ready when u are atgo [19:31:02] let's go :D [19:44:33] AndyRussG: ejegg: fyi, https://gerrit.wikimedia.org/r/173076 [19:46:30] looks good [19:46:32] gulp [19:47:16] crapsauce. there's a sekret deploy happening, that I have to wait for. don't hold yr breath! [19:47:24] another 30 min delay... [19:48:29] awight: ah OK no wunder I wasn't seeing it... [19:48:34] * AndyRussG inhales [19:52:33] awight: ejegg: we have to make ejegg change to BannerChooser switch on the global, can't change this->allocate() [19:52:43] without it [19:52:59] hmm? [19:53:08] BannerChooser L40 [19:53:29] that's also used in displaying banners to people [19:53:29] Don't think that needs a switch [19:54:00] It's the same logic as before - just moved the allocate method into the new class [19:54:10] yeah it's only called from legacy Special:BannerRandom [19:54:15] The switch should be total, run everything on the new code vs. run it on the old, I think [19:54:42] AndyRussG: no, we need to serve per-slot still, for clients which have cached the old controller [19:55:25] Special:BannerRandom?slot= should not change behavior [19:56:04] awight: correct... but are we totally sure? I'd be more comfortable having it a total kill switch... [19:56:25] AndyRussG: how would that work? [19:56:39] let's say a client is still requesting BannerRandom... [19:56:46] right [19:57:13] I agree we want the cutover to be as hard as possible, but there's rarely a 100% thing... [19:57:20] hmmm [19:57:37] I want the hard-ish cutover in order to keep allocations sort of reliable [19:57:48] so even when the switch is off clients will still be running thru BannerChoiceDataProvider? [19:58:06] I mean, we do have the option of breaking legacy client code, and not serving banners, but I don't see any benefit there. [19:58:18] Ah no maybe I'm not being clear [19:58:19] AndyRussG: BannerChooser is still getting its data from the old logic, and calling basically the same allocation calculation algorithm [19:58:21] yeah. good point, that code needs to handle that case. Maybe we need two globals. [19:58:30] video call? [19:58:35] ok [19:58:40] /audio :) [19:58:57] K one sec [20:00:32] awight: ejegg: K NEtime [20:00:37] https://plus.google.com/hangouts/_/wikimedia.org/cn-open-mic?authuser=0 [20:08:06] ejegg: mind CR'ing some of my testing patches? [20:09:01] AndyRussG: does it make sense if I start writing tests for your JS chooser, strictly from my imagination? :) [20:09:33] uuuh probably not... [20:09:40] hmm ok [20:10:43] I was thinking, I could assume * fixture data like will be returned by RL module, * some function will map (allocs, random, country_etc_context) -> (banner_name), * URL params will be able to override random=, banner= [20:10:57] hehe /me insubordinates [20:12:10] jfyi, I have to leave around 5:15 today... [20:12:42] I'll CR the calculator tests [20:12:57] cool [20:13:04] just gonna rebase on top of the merged patch set [20:13:09] yep [20:13:14] awight: no please actually I have less than 0 right to say anything on that [20:13:27] wat [20:13:40] we'll think of it as TDD :p [20:13:56] Ah also could be! [20:14:59] we could define methods, inputs and outputs [20:15:38] just ignore me.. I'm looking for a problem to solve, at this point :) [20:15:39] In 10 minutes I have to take a short (20-miute) break I'm afraid BTW [20:15:46] please do! [20:16:01] (Just to fetch my kids from school...) [20:16:01] gotta pace ourselves, it's a loooong winter [20:17:14] awight: do we have a test instance on labs or anything like that? that might also be calming [20:17:43] Like 4 a dedicated CN intance(s) to play with and try to break [20:18:09] yes, Beta is updated whenever we merge to master. [20:18:21] K cool :) [20:18:23] http://en.wikipedia.beta.wmflabs.org/wiki/Main_Page [20:18:38] AndyRussG: I'll poke around [20:19:11] awight: ejegg: after studying the details of BannerChooser, I wonder should I just translate to JS or re-write? [20:19:52] I don't understand what the difference would be [20:20:06] I think we should be as close as possible to this code, if that's whatchu mean... [20:20:24] it's not ideal, but it's a bit of a tricky algorithm and we should save improvements for next year [20:20:31] seconded [20:20:45] awight: ejegg: OK [20:21:31] I think ejegg's Special page work demonstrated that it's compatible with the new workflow... [20:21:38] true! [20:21:50] ejegg: awight: another thing would be thinking about the actual per-campaign bucket JS code, and/or the sending a snippet of pre-banner JS in with the RL data, and adding a field in the UI for that... [20:21:54] 1) get choices for context 2) filter further 3) calculate alloc [20:22:03] yah, just gotta do the filtering and flattening into the banner list first [20:22:08] AndyRussG: can we wait for that? [20:22:19] that's a much smaller change... [20:22:23] awight: yep and yep [20:22:36] and ejegg also yep [20:22:52] yeah, sorry again I'm just here to wrassle scope creep [20:23:11] ok, I'm unblocked on deployment. Don't watch :) [20:24:09] so the allocation page's 'view' button seems to be busted in the current meta deployment... Gotta put the params on the QS manually [20:24:26] really... [20:24:32] maybe that's just my browser being dumb. lemme try another [20:25:21] awight lunch? [20:25:34] K thanks again... going to get kids, back soon! [20:25:49] nope, busted in chromium too. Well, my thing won't break it further. [20:25:54] will try to fix that [20:26:17] the problem is it replaces all the qs params with the filter, even the title param [20:26:28] so we get to the main page [20:27:55] ok no js or net errors on testwiki... [20:28:02] woohoo! [20:29:14] actually. we may have frozen my browser [20:35:56] ccogdill: heads-up, I'm doing a deploy that might cause a lot of phone calls about banner weirdness [20:36:07] how so? [20:36:16] we wouldn't know yet :) [20:36:20] but I'm tampering with CentralNotice [20:36:31] should we get the cn infrastucture tables created on testwiki? NoticeInfrastructure seems to be configured as true in wmf-config [20:36:43] for testwiki [20:37:09] !log CentralNotice noops deployed to all wikis [20:37:11] Logged the message, Master [20:37:43] ejegg: good point. sigh [20:37:49] ok maybe that's the fail [20:40:14] hidden allocation rows on meta match shown ones for fr-FR and en-US [20:40:31] not that either has anything complicated going on [20:43:11] ejegg: ok I've patched the testwiki schema a bit [20:43:17] lemme know if you run into other missing fields [20:43:25] thanks! [20:44:11] so far so good [20:44:12] crud. I don't have cn-admin there [20:44:26] what I didn't see was, RL data module responses [20:44:30] but no error [20:50:59] AndyRussG: good news is, the noops are deployed and nobody is knocking on our door [20:51:08] Banners work, no js or net errors. [20:51:09] Hehehe nice!! :) [20:51:14] weee [20:51:35] Not sure what the bad news is. I can't get anything out of the banner choice RL module on testwiki, but still working on that. [20:53:10] ccogdill: ok, looks like we're out of the woods. More excitement coming later in the day, though! [20:53:25] haha weeeee [20:53:27] so lutetium is back? [20:53:35] ah no, not yet [20:53:41] ah okay [20:53:45] I’m good without it for now anyway [20:53:46] ccogdill: well, it's still here, Jeff_Green hasn't taken it down yet [20:53:54] ohh haha okay [20:54:13] on testwiki I see bannerController.lib and we're getting at least the no-op version of the RL [20:54:18] RL module [20:54:42] yes, but we should be getting the data, AFAICT [20:54:54] no banners, but an empty response !== '' [20:59:48] maybe something wrong with the config patch? [21:00:37] Hopefully! [21:03:51] awight: ejegg: for the JS, if you'd like to TDD, how about these method signatures: [21:04:55] filterChoiceData() which would do what in PHP in ejegg's patch is done by getChoicesForCountry _and_ filterAndTransformBanners [21:05:31] calculateBannerAllocations() w/ the translation of the BannerChooser allocations code [21:06:11] And then chooseBanner() to actually choose a banner based on the switch-out-able random value [21:06:29] would that make sense? [21:09:54] AndyRussG: Sounds good! [21:10:52] yep! [21:12:43] hey pihey ejegg [21:12:53] well hello weird typing [21:12:58] hi atgo-lunch [21:13:23] did you see the email with amir? and do you know where he should be looking? [21:13:41] For RTL stuff, not specifically [21:13:45] ok thanks :) [21:14:22] just not sure exactly what he wants to change [21:14:25] yeah [21:14:26] no worries [21:16:06] it's this one: https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/1680?referrer%5Bq%5D=rtl&referrer%5Bq_type%5D=&referrer%5Bquery_id%5D=q_30b3ff804da8013268bb22000ae904d0&referrer%5Brank%5D=1&referrer%5Bsize%5D=5&referrer%5Bts%5D=11%2F13%2F14+21%3A16%3A00 [21:16:45] AndyRussG: fyi, it was indeed a bad config patch. Fixing... [21:16:47] oh, so the form elements just need flipping [21:17:31] atgo: sounds like we can do that next week? [21:17:44] awight yep! that's what i'm telling him :) [21:17:48] thanks! [21:18:10] * awight scowls and looks around for anything else that can be time-traveled to the future [21:19:02] hehe [21:20:49] (Abandoned) Awight: DO NOT MERGE merge commit to gather feature branches together [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172900 (owner: Awight) [21:21:49] ejegg: fyi, these are the outstanding testing patches, https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/CentralNotice,n,z [21:22:35] (Abandoned) Awight: Merge master branch into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173070 (owner: Awight) [21:22:41] cool! Trying to get my localsettings correct for those test again. must have mangled it since the last tests I looked at [21:23:13] ino. which tests, the phpunit ones? [21:23:17] also, i think the setup code is adding new 'desktop' device profiles each run [21:23:22] rrrgh yep [21:23:54] yeah, my phpunit output is all E / got no banners, expected some banners [21:24:44] maybe it's cos you have existing banners :( [21:24:49] try disabling all campaings [21:24:55] ooh, let me see if that's it [21:25:07] unfortunately, local unit tests don't run in a new db [21:25:14] there should be a rollback though, lemme see... [21:25:37] yeah, @group Database should be preventing the new 'desktop' entries from multiplying. strange. [21:25:49] at least, I thought so... [21:26:17] nope, no rollback. http://www.mediawiki.org/wiki/Manual:PHP_unit_testing/Writing_unit_tests#Databases [21:26:46] explains why my allocation page got so long! [21:26:59] ah [21:27:01] hmm, let me set aside a new db just for the test checkout [21:27:18] been sharing it with my trunk / infrastructure messing around instance [21:29:19] (PS3) Awight: Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 [21:29:23] (CR) jenkins-bot: [V: -1] Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 (owner: Awight) [21:29:27] ejegg: I think I can remove that addDevice thing entirely. or not. [21:29:52] devices should be set up with the extension, i think [21:30:16] exactly [21:33:05] (PS4) Awight: Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 [21:33:17] (CR) Awight: "PS 4: rebase" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 (owner: Awight) [21:33:39] (CR) jenkins-bot: [V: -1] Tests for BannerAllocationCalculator [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172958 (owner: Awight) [21:33:40] oops, i never checked in my rebase [21:34:29] blah, guess the test dbs don't have any devices [21:35:06] aww. something about sqlite [21:35:35] oh? How did you know that? [21:36:08] hunch [21:36:21] you confirmed that? [21:36:49] I really don't see why this line is not working, though: [21:36:49] INSERT INTO /*_*/cn_known_devices VALUES (1, 'desktop', '{{int:centralnotice-devicetype-desktop}}'); [21:36:52] just saw the test failures in jenkins. no idea if its sqlite [21:36:57] in CentralNotice.sql [21:37:07] definitely using sqlite, no idea if that's the problem [21:37:17] I used to have a string u could use to install and test locally, on sqlite... [21:39:00] sqlite is made of lentils [21:39:07] and MySQL is lima beans [21:39:17] postgres is a complete protein... [21:39:48] Oracle is a frankenstein GMO [21:40:08] I was about to say the same for MS SQL Server [21:40:25] and its mutant TSQL syntax [21:41:53] though partition by / over / row_number can come in handy [21:44:38] (CR) Jdlrobson: "This broke mobile... https://bugzilla.wikimedia.org/show_bug.cgi?id=73389" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [21:45:43] eek [21:46:21] aaaaaah shit [21:47:36] I'm on it [21:47:45] awight: ejegg: talking to jdrobson on wikimedia-mobile [21:47:58] It's only labs and mediawiki [21:50:09] (PS1) Awight: mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 [21:50:45] (PS2) Awight: (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 [21:50:54] (CR) jenkins-bot: [V: -1] (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 (owner: Awight) [21:51:53] (PS3) Awight: mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 [21:53:52] CR? [21:54:07] hehe /me breathes for the first time today [21:54:50] (CR) Florianschmidtwelzow: [C: 1] mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 (owner: Awight) [21:56:03] (PS4) Awight: (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 [21:56:49] (PS1) Robmoen: Register mobile modules in SkinMinervaDefaultModules hook [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 [22:01:03] (PS2) Awight: Register mobile modules in SkinMinervaDefaultModules hook [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:01:22] (CR) Awight: "rmoen: thanks!" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:01:38] ejegg: AndyRussG: can someone CR https://gerrit.wikimedia.org/r/173107 pls? [22:02:07] awight: did u test it? [22:02:20] AndyRussG: good idea :) [22:02:46] awight: remove the line 135 [22:02:57] it's already taken care of by the class [22:04:45] AndyRussG: thx [22:04:51] (PS5) Awight: (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 [22:06:49] AndyRussG: ok I'm reverting, instead. [22:07:02] Ok go ahead thanks [22:07:39] awight: should I do anything? [22:08:01] (PS1) Awight: (bug 73389) rollback new controller modules due to mobile fail [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173135 [22:08:05] AndyRussG: CR ^ pls [22:08:16] (CR) AndyRussG: [C: 2] (bug 73389) rollback new controller modules due to mobile fail [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173135 (owner: Awight) [22:08:27] (Abandoned) Awight: (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 (owner: Awight) [22:08:45] (CR) Awight: [C: -2] "needs a change" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:08:50] (Merged) jenkins-bot: (bug 73389) rollback new controller modules due to mobile fail [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173135 (owner: Awight) [22:09:58] (PS1) Awight: (bug 73389) rollback new controller modules due to mobile fail [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173149 [22:10:10] (CR) Awight: [C: 2] (bug 73389) rollback new controller modules due to mobile fail [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173149 (owner: Awight) [22:10:43] (Merged) jenkins-bot: (bug 73389) rollback new controller modules due to mobile fail [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173149 (owner: Awight) [22:12:24] (PS3) Robmoen: Register mobile modules in SkinMinervaDefaultModules hook [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 [22:12:40] (CR) Robmoen: "What change? You mean a rebase ?" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:18:20] (PS4) Awight: Register mobile modules in SkinMinervaDefaultModules hook [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:18:55] (CR) Awight: "rmoen: I had to remove the lines I added in PS3:" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:19:03] (CR) Awight: [C: 2] "Thanks!" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:19:08] (PS5) Awight: Register mobile modules in SkinMinervaDefaultModules hook [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173110 (owner: Robmoen) [22:20:14] awight: no worries :) [22:20:31] rmoen: that isn't breaking anything, is it? [22:20:50] awight: we are trying to deprecate that hook [22:21:00] rmoen: also... CN is currently disabled on Zero. That's what this affects, right? [22:21:09] maybe we should take those modules out entirely? [22:21:21] awight: no we are disabling CN on beta [22:22:32] why? We want to test there [22:27:08] rmoen: yah I still don't see how this disables CN on beta. or why we would want to do that :) [22:27:25] awight: ejegg: now I'm just... dizzy... [22:27:42] awight: this doesn't exactly disable it in beta [22:27:50] it registers it correctly so we can disable it in beta [22:27:53] See: https://gerrit.wikimedia.org/r/#/c/173119/ [22:29:38] rmoen: hah. ok. but why again? [22:29:48] awight: because we are running an a/b test in beta [22:29:58] this only affects mobile, right? [22:30:03] and we don't want the CN to overlap [22:30:09] ah sure [22:30:12] awight: yes, beta->mobile [22:30:16] rmoen: I've heard that one before [22:30:18] brb coffee [22:30:21] rmoen: you can also remove the siteNotice div. [22:30:38] but this is cleaner [22:30:40] awight: yes there are many ways [22:30:43] this is definitely cleaner [22:30:47] plus i'm helping you ;) [22:30:52] brb coffee for reals [22:31:45] awight: I'm gonna test https://gerrit.wikimedia.org/r/#/c/173107/ with mobilefrontend then I guess... [22:33:02] hey AndyRussG how long do buckets stick around in our new world? campaign + 1 month? [22:33:46] atgo: yes, unless we decide on a different duration [22:33:52] ok [22:34:06] atgo: you missed me breaking WP on mobile [22:34:25] yeah i just heard about that [22:34:27] fixed now, hah :) [22:34:53] Ah are people talking about IRL all around the planet? [22:37:32] * AndyRussG looks for places to hide [22:39:11] haha awight told me :P [22:41:00] hehehee [22:42:11] sounds like it all worked out though [22:46:33] well apparently some caching magic made the broken bit not get through to so many users, including me when I tried it [22:46:54] But I'm sure it did get thru to some [22:47:14] number of hundreds of thousands of users [22:54:21] AndyRussG: ejegg: atgo and I were talking about the risks. We need to poll Katie, but I'm ready to say, the drop-dead date can move to Monday. We will all drop a little bit dead in the process, but not all the way dead. [22:54:46] ok [22:54:49] and, i emphasize, that katie has every right to stop us all in our tracks on this [22:54:52] Rushing this is not making me feel cozy. [22:54:54] yep. [22:55:10] I personally don't even want her to have to do that. [22:55:36] But maybe if we present the risks, she'll drop only a little dead. [22:55:56] I'm thinking, we will know immediately if we're serving fewer impressions, or click% is down. [22:55:57] you guys are way farther on knowing what's going on here than i am. i leave it to your expertise [22:56:19] awight: atgo: ejegg: I also would be happy to defer to everyone else's decision... [22:56:24] me too :) [22:56:50] I trust noone but my astrologer [22:57:04] :) that con [22:57:24] * AndyRussG stares nervously at his blank teleprompter [22:57:25] she's telling me to bomb russia... [22:57:37] nooo! [22:57:38] well, perhaps we should ask ejegg's astrologer [22:57:45] that's right out [22:58:19] I think I've heard of that astrologer before [22:58:39] Why don't we go on but very carefully, and make sure we have mobile tests [22:58:42] preferably automated [22:58:47] +1 to mobile tests [22:59:32] also I'm thinking maybe let's not continue if something else urgent comes up, does that make sense? [22:59:45] yes [22:59:47] because we're working on something that we're not sure we'll be able to deploy anytime soon [23:00:57] only actual urgent, though [23:01:15] word [23:01:57] I'd personally be fine running halfback on any semi-urgent stuff... [23:02:11] halfback? [23:02:39] * AndyRussG tries wikipedia... awww, it's down :( [23:02:46] the loser who doesn't have an actual place on the field, and just scrambles back and forth, trying to get in people's way [23:03:24] * atgo lol's at AndyRussG [23:03:44] * awight pretends to be hard to amuse [23:04:49] ejegg: were we still looking at the phpunit tests for the AllocationsCalculator? [23:05:36] Yeah, i'm back to that [23:05:47] just got the new db set up [23:05:49] awesome. I'll fix that device fixture thing, then? [23:05:58] ah, that would be great. [23:06:00] k [23:06:12] was also trying to figure out what scripts jenkins is running to set up the test db [23:06:21] hah [23:06:30] 21:33:12 + php maintenance/install.php --confpath /srv/ssd/jenkins-slave/workspace/mwext-CentralNotice-testextension/src --dbtype=sqlite --dbname=build136 --dbpath=/var/lib/jenkins-slave/tmpfs/mwext-CentralNotice-testextension --pass testpass sqlitetest WikiAdmin [23:06:33] seems to recreate a cn_notices table after loading up the sqlite [23:06:38] wat [23:06:53] that's bad. [23:07:04] the patches should not only run under mysql [23:07:28] 21:33:13 Creating cn_notices table ...done. [23:07:42] wtf [23:07:52] though that's the only cn_ table mentioned in the log [23:07:58] yeah I see it in patches/CNDatabasePatcher, line 147 [23:08:09] you might want to git blame that [23:08:22] oic. it's the whole hog. [23:09:28] wait, why do those only apply in mysql? [23:09:47] cos the alters were too squirrely to port to sqlite [23:09:56] oh, there's the whole other script for sqlite [23:09:57] also, there's no reason to upgrade a sqlitedb [23:10:06] should be the same script [23:10:26] but there's a thin layer in mw-core which translates a few common incompatible dialect things, like "auto increment" [23:11:00] ahh, but the patch-add_devices is also in the mysql-only block [23:12:02] but it's also in Centralnotice.sql [23:13:22] well huh [23:13:47] right? anyway, I'm just writing an add/remove stanza [23:13:55] cool [23:14:27] (PS2) Ssmith: Fix range values [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173064 [23:14:29] (PS1) Ssmith: Extend ChartJS and make selection chart dynamic [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173190 [23:14:33] (CR) jenkins-bot: [V: -1] Fix range values [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173064 (owner: Ssmith) [23:14:42] (CR) jenkins-bot: [V: -1] Extend ChartJS and make selection chart dynamic [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173190 (owner: Ssmith) [23:16:54] (PS2) Ssmith: Extend ChartJS and make selection chart dynamic [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173190 [23:16:56] (CR) jenkins-bot: [V: -1] Extend ChartJS and make selection chart dynamic [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/173190 (owner: Ssmith) [23:17:14] awight to be honest, i'm not so sure i have enough info to write this email [23:17:50] atgo: I figured--filling you in was definitely part of the plan [23:17:54] RL? [23:17:59] sure [23:18:02] whenever's good [23:18:03] no hurry [23:24:05] atgo: https://www.mediawiki.org/wiki/Extension:CentralNotice/Slots [23:24:47] awight: d'oh... it's this DB_PREFIX = 'unittest_' been messing me up [23:27:29] ejegg: hehehe [23:27:35] why is it messing you up, though? [23:28:27] inserts go into the existing cn_ tables, but the choice provider's selects try to get data from unittest_cn_* [23:29:03] looking into wfGetDB logic [23:29:04] ejegg: that is wrong [23:29:10] bad and wrong [23:29:15] (PS1) Awight: test fixtures do not pollute cn_known_devices table [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173193 [23:29:48] (CR) jenkins-bot: [V: -1] test fixtures do not pollute cn_known_devices table [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173193 (owner: Awight) [23:30:47] (PS1) Awight: Tests for BannerAllocationCalculator [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173194 [23:31:18] atgo: no I'm sorry I think I misunderstood or wasn't clear [23:31:19] (CR) jenkins-bot: [V: -1] Tests for BannerAllocationCalculator [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173194 (owner: Awight) [23:31:32] the bucket change is... what the plan is, but it's not what got deployed [23:31:49] oh ok [23:31:52] what got deployed was a preliminary small piece of the puzzle [23:32:07] That we put out there to check that it didn't cause problems (which in fact it did) [23:32:12] well, we can send the email when the rest is done? or if you guys want to send something that describes an intermediate step we can do that [23:32:14] very unexpectedly [23:32:36] ehehe AndyRussG is broken [23:32:44] revert!!! [23:33:10] For the next attempt we'll make sure we have mobile tests and more before doing such a thing [23:33:18] sure... so what's the confusion? [23:33:47] well just that there is no change [23:33:52] to announce today [23:33:53] i just drafted that for you guys to send out whenever you're ready. if nothing is out, then no need to send [23:33:57] that's all good :) [23:34:13] AndyRussG: is it true that the bucket thing will not change even if we make it to deploy #2? [23:34:26] awight: correct [23:34:36] well no [23:34:41] Which numbers are we talking about [23:34:42] ? [23:34:58] Steps 1-3 did include the bucket duration change, sorry [23:35:20] (PS2) Awight: test fixtures do not pollute cn_known_devices table [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173193 [23:35:22] (PS2) Awight: Tests for BannerAllocationCalculator [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173194 [23:35:35] ejegg: ok, that stuff is ready to go ^ [23:35:53] (CR) jenkins-bot: [V: -1] test fixtures do not pollute cn_known_devices table [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173193 (owner: Awight) [23:35:57] (CR) jenkins-bot: [V: -1] Tests for BannerAllocationCalculator [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173194 (owner: Awight) [23:36:05] (Restored) Awight: (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 (owner: Awight) [23:36:14] (PS6) Awight: (bug 73389) mark new banner controller dependencies as mobile-ready [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173107 [23:36:27] so AndyRussG... feel free to edit/butcher as you'd like when we're ready. awight just asked me to help write some notes to offload that piece from you guys [23:36:51] atgo: sound good!! yeah mostly was fine [23:36:57] thanks much!! :) [23:39:43] awight: I had to unset wgCentralDBName to make CNDatabase::getDb (used for insert) act the same as wfGetDB (used for read) [23:41:01] awight: where are u using CNDatabase::getDb? [23:41:05] sorry I meant ejegg [23:41:08] ^ [23:41:48] what the. [23:41:51] oh dear [23:42:05] ok lemme fix that... [23:42:05] it's used when adding new campaigns, and always uses the unprefixed db as set in wgCentralDBName [23:42:22] but only the infrastructure wiki should be adding campaigns [23:42:40] and shouldn't need a wgCentralDBName, since it is the central db [23:42:44] right? [23:43:09] ejegg: wait, I don't see ehere the error is happening. What's the calling function? [23:43:47] with wgCentralDBName set, adding the fixtures uses the un-prefixed tables [23:43:59] (PS1) Awight: WIP restore new banner choice modules [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173198 [23:44:03] oooh [23:44:09] (CR) jenkins-bot: [V: -1] WIP restore new banner choice modules [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173198 (owner: Awight) [23:46:23] that might be an issue for BannerChoiceDataProvider [23:46:43] ejegg: but I still don't see where else we call wfGetDB directly [23:47:00] r u saying that CNDatabase is inconsistent? [23:47:04] internally, I mean? [23:48:19] BannerChoiceDataProvider is asking for the slave connection with $wiki = false. So getDB ends up figuring it out, including the prefix [23:48:46] ejegg: ah that is a bug then wooo [23:49:06] CNDatabase uses the wgCentralDBName and calls getDB with the centralDBName, overriding any logic that would add a prefix [23:49:07] it should use a global var set somewhere there then, no? [23:50:12] Maybe BannerChoiceDataProvider should use CNDatabase::getDb? [23:50:44] You can't force SLAVE with that [23:50:45] it will automatically get the slave unless the user is a cn-admin [23:50:49] unless u change it [23:51:00] right but for this I think we always want slave [23:51:03] We can gloss it for now, I think--there are no prefixes in the WMF dbs AFAIK [23:51:46] wrt: slave, why is that? [23:51:58] I mean, it's polite, but not a DoS thing, right? [23:52:13] mmmm like mobile? [23:52:22] * AndyRussG is still broken [23:54:29] baahaha [23:55:11] yes, you're in the gang now that you've killed a cluster. [23:56:12] cluster may fight back... 8p