[00:06:51] halfak: can you give me push rights to the halfak/MW-Utilities repo? [00:07:41] YuviPanda, {{done}} [00:07:54] so both in anticipation of moving this to prod sooner than latter [00:08:00] and because pip has been a bitch [00:08:07] I think we should move to using debian packages to do dependencies [00:08:11] and I'm starting work on that now [00:08:36] halfak: see body of https://phabricator.wikimedia.org/T107493 I edited it [00:09:15] What does this move entail? [00:09:24] I'm not sure I'm ready to stop working with pip [00:09:28] Can we support both? [00:10:06] I don't know what this move entails yet [00:10:12] https://github.com/halfak/Mediawiki-Utilities/pull/38 for the debian packaging of mw-utils [00:10:48] halfak: I think this will mean that version requirements on requirements.txt will get more strict (using jessie packages where available), and we should stop specifying transient dependencies [00:11:05] So, why did you remove the install requirements from setup.py? [00:11:07] YuviPanda: are you suggesting we hand roll a deb package for scipy? [00:11:08] halfak: you can still use pip for local development and what not, as long as the versions match we can just use debs for deployment [00:11:16] awight: there's already a scipy package [00:11:19] we're already usign it [00:11:32] oh, I thought it was the wrong version... /me goes cross-eyed [00:11:51] halfak: because then running setup.py attempts to download them from the internet and that becomes a big no-no in debianland. I can clarify in commit message if needed [00:12:05] awight: we version pinned it to jessie but the latest change might have broken it [00:12:41] YuviPanda, can we not re-write the setup.py file and still do this? [00:12:46] not sure [00:12:50] I'm a little distraught about the Travis situation... Looks like we can't use miniconda to accelerate the build, cos of more version hell [00:12:55] A LOT of people are using mw from pip right now [00:13:08] oh right we can't break it for pip users I agree [00:13:13] will this break it for pip users? [00:13:17] Yes [00:13:18] Terribly [00:13:29] oh yeah then that's fine I'll find a way to not break it for pip users [00:13:40] halfak: it's py3 only right? [00:13:46] Yes [00:13:51] cool [00:13:54] :) [00:15:08] * halfak maxes out ores-compute with new model building. [00:22:42] halfak: fixed [00:22:51] The PR? [00:23:06] yeah [00:23:11] Thanks for pulling out argparse. [00:23:18] :D yw [00:23:25] halfak: apparently debuild doesn't like the spaces? [00:23:39] Spaces? [00:23:49] around the >= [00:23:54] Oh. Weird. [00:23:59] Goddamn regex [00:24:04] yeah [00:24:15] anyway this shouldn't cause problems for pep people [00:24:30] Agreed. Seems that I can still install [00:24:34] {{merged}} [00:24:50] halfak: cool [00:25:03] halfak: so I saw commits go by that were dropping yamlconf. is that going to happen or are you going to keep using it? [00:25:30] Keep using it. revscoring doesn't need it. [00:25:37] ok [00:25:39] You don't like yaml config files? [00:25:57] I should really clean up the yamlconf package. [00:26:16] halfak: no I love them, I'm just wondering if you need the extra package vs just using the yaml module :) [00:26:21] since now I've to create another package [00:26:37] I'm not going to offload *this* into anyone else yet, since it's brutal getting started on this [00:28:09] halfak: is 'deltas' your library? [00:28:34] Yup [00:30:04] YuviPanda: I'm happy to help package if u need [00:31:22] awight: w00t! https://phabricator.wikimedia.org/T107493 and subtasks [00:33:11] halfak: what are we using pylru for? [00:33:28] It's an optional in-memory cache that replicates the interface of redis. [00:33:33] For a smaller installation [00:33:33] YuviPanda: can do. [00:33:35] hmm [00:33:42] Yeah. Best LRU option I found. [00:33:57] I use it when doing localdev. [00:34:02] halfak: was https://docs.python.org/3/library/functools.html#functools.lru_cache not good enough? [00:34:26] awight: I can cajol some members of the ops team into uploading some of the packages I think :D stopit, pylru definitely, yamlconf maybe [00:34:30] Regretfully not. I just wanted the cache and the decorator wasn't going to work. [00:34:34] halfak: ok [00:34:36] that's fine [00:34:47] YuviPanda, I promise that I really tried to use the stdlib stuff. [00:34:51] halfak: :D [00:34:56] * halfak hates new dependencies on under-maintained projects [00:35:02] :D yeah, they all seem ok [00:36:49] awight: assign the ones you want to yourself? :) [00:38:27] that works. [00:38:52] awight: sweet :) [00:38:55] awight: thanks a lot [00:39:12] awight: we'll also want to try to pin the versions in requirements.txt to the ones that already exist in jessie+backports [00:39:19] wait 'til I actually do anything useful ;) Sorry to be short, I'm trying to kill some CR on my way out the door for the day [00:39:31] awight: 'tis ok! thanks for helping :D [00:39:47] ok, and I'll let you know if I get anywhere with the stupid Travis py module versions [00:39:51] +1 [00:39:59] AHhH! [00:40:01] Spam! [00:40:06] haha [00:40:10] :) beams at my pet monster [00:43:50] halfak: can I get push access to yamlconf and deltas too? [00:47:30] YuviPanda, how come you want push access? [00:47:51] halfak: I just want to push to a branch and then do a PR [00:47:53] instead of forking [00:47:56] if that's ok [00:48:02] ? [00:48:02] Sure. It's fine. [00:48:07] cool :) [00:48:10] Just wasn't sure you knew you could fork :P [00:48:12] halfak: and I've a package for yamlconf already now [00:48:19] * halfak gets stats love for more forks [00:48:20] :D I do, gerrit hasn't corrupted me that much no [00:48:26] yeah but my fork list is a mess :D [00:48:34] so I try not to fork unless I'm contributing code :D [00:48:43] :P [00:49:28] halfak: done [00:49:32] halfak: https://github.com/halfak/yamlconf/pull/1 [00:54:36] First pull request! [00:57:16] halfak: indeed! [00:58:01] * YuviPanda is standing in line at security [00:58:22] halfak: for a country that has produced some amazing things the USA also seems to have produced the TSA :) [00:58:35] * YuviPanda offers his shoes to the TSA gods [00:58:55] They don't want them. They just want you to take them off and step in wet things with your socks. [00:59:52] Heh [06:04:55] okay. [06:05:05] YuviPanda, halfak: http://i.imgur.com/fafJqvg.png [06:08:04] legoktm: haha [06:08:13] Should probably not run on non mainspaxe edits [06:08:31] oh no, I faked the data [06:08:41] Oh [06:08:54] that's the MW extension I just wrote [06:09:00] legoktm: wow nice!nn [06:09:20] Is this with or without the rc_id joined table? [06:10:05] it's joining with a "ores_scores" table that I populated with fake data [06:10:25] the table is just ores_rc (rc_id) and ores_score (the actual score) [06:10:44] and I'll probably add a column to mark an edit as reverted [06:11:07] Nice! [06:11:28] legoktm: in ores_scores? I thought there is already a place for it somewhere else [06:12:13] I don't think there is... [06:12:40] where were you thinking of putting that column? [06:12:45] in ores_scores [06:12:55] just a tinyint 0 or 1 [06:12:58] Krinkle was talking about there being a flag for 'patrolled' that you can mark [06:13:07] yes, patrolled is different [06:13:09] And is shareable across tools [06:13:14] actually, we can just use that [06:13:17] Shouldn't ores just book into that [06:13:19] Hook [06:13:20] Yes [06:13:22] We should [06:14:49] ok, it'll already "just work" [06:15:00] because RC already has a filter for "Hide patrolled edits" (my local wiki doesn't) [06:19:10] legoktm: ah nice. [06:19:23] legoktm: so we add another checkbox to show only ores predicted ones? [06:22:13] yeah, I'm not sure about that [06:23:08] we should just replace the silly "Hide ORES" thing I have right now with "Only show ORES-predicted bad edits" or something [06:23:39] YuviPanda: also, what's the best way to store floats in mysql? right now I'm using varchar :P [06:28:16] legoktm: ha-ha not sure [06:28:29] Doesn't mysql have a float type? [06:32:35] yes but the docs weren't obvious so I just use varchar [06:32:36] https://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html [06:32:40] used* [06:32:41] Ha-ha ok [06:34:55] legoktm: we can ask in #wikimedia-databases [06:35:50] we could, but I'm now wondering if it makes sense to store the full float value [06:35:53] is that useful? [06:36:04] can we just store the percentage we show to users? (3 digits max) [06:36:51] we could even use tinyint then [06:39:51] legoktm: hmm, idk - why not store the full float? [06:40:00] is there a use for it? [06:40:07] static $thresholds = array( [06:40:07] 'low' => 0.8, [06:40:07] 'medium' => 0.87, [06:40:07] 'high' => 0.94, [06:40:07] ); [06:40:18] I just copied those from helder's script [06:40:21] hmm [06:40:35] I don't anticipate we'll have more granular thresholds...will we? [06:40:36] you can store 0.87 but this feels like one of those things that is going to bite you in the ass later on [06:40:40] yeah. [06:40:43] so unless there are actual problems storing float we should no [06:40:56] does laziness count as a real problem? :P [06:41:32] I'll look into it tomorrow, I also need to fix enhanced RC [06:41:59] ah ok [06:42:04] legoktm: I asked springle anyway [06:42:09] thanks [06:42:38] fun fact: the frontend rendering of watchlist/RC happens in 4 different classes, all with different hooks! [06:43:33] MatmaRex fixed the backend stuff last year so there's only one hook for the db query, but frontend is a mess >.< [06:43:46] :( [06:43:46] boo [13:09:35] \o/ Just saw the screenshot from vagrant [13:09:54] Also, ORES should run on all namespace edits. [16:03:41] o/ aetilley [16:03:43] sorry fopr late [16:03:47] Will be there in a minute [16:31:18] halfak: all namespaces? Including js edits? [17:00:48] YuviPanda, yes. Then again, I expect those to be rare [17:03:04] aetilley`, add_badwords_ratio [17:22:00] halfak: you're probably in a meeting but the email you sent sounds awesome [17:29:52] https://gerrit.wikimedia.org/r/229423 [17:31:12] \o/ [17:31:36] legoktm: I think we should use decimal or double, whichever is faster? [17:58:53] YuviPanda, :D Woot! I'm glad to have you onboard. Do you want to help us write up the proposal? This stuff gets filed in academic repositories and therefor counts towards your academic cred. [17:58:56] Not sure if you care. [17:59:15] We can also just pull you in for the discussions of what technology to set up for the workshop [17:59:27] YuviPanda: yep [18:15:17] YuviPanda: uuf, so I charged into the shallow end, worked on a couple of deb packages, and ended the night by reading the full task description, where it says the two I did are probably optional. [18:15:32] awight: yeah but that's ok - we probably need them for now anyway [18:15:36] awight: I did the yamlconf tho :( [18:17:02] halfak if not busy I did a bit of work on meta [18:17:04] https://meta.wikimedia.org/wiki/Category:Revision_scoring_as_a_service/Word_lists [18:17:17] I tiraged problems in a category structure [18:18:20] YuviPanda: hey, unassign yourself from the other deb subtasks unless you're actually working on them! [18:18:30] I couldn't tell whether you were squatting... [18:18:46] awight: I'm not squatting any of them now [18:18:53] k! [18:18:55] I'll leave them all to you for now [18:18:59] d'oh [18:31:11] :d [18:31:29] awight: wait, I shouldn't be assigned to any of them now [18:31:46] halfak: I don't know how I can help (re: workshop). Never been to any of these before [18:35:20] halfak: so not sure what I can do. maybe help with adding datasets to quarry? [18:37:07] +1. We'll need to write-up a plan for the day and some justification for the systems we want to test out with participants. [18:38:03] right [20:06:37] halfak: can i move our 2pm thing to 3? [20:06:48] Yes [20:06:49] YuviPanda seems to be caught up with something [20:06:59] thanks [21:20:42] YuviPanda, where do I find mwapi's code? [21:20:56] halfak: python-mwapi? [21:20:58] Oh! python-! [21:21:02] https://github.com/yuvipanda/python-mwapi [21:21:05] :) [21:21:07] https://github.com/yuvipanda/python-mwapi [21:21:08] yes [21:22:51] Cool. I've got some time, so I'm digging into the minimalistic API proposal [21:24:35] YuviPanda, how would you feel if I submitted a PR with a special 'query()' method that supports continuation? [21:24:50] halfak: quite happy! [21:25:00] Cool. I'll look into it. :) [21:44:45] YuviPanda, I just filled out some feature requests. Please review to see if there's anything you don't like. https://github.com/yuvipanda/python-mwapi/issues [21:45:04] halfak: all seem good to me [21:45:24] Cool. I'll get to work at my first opportunity :) [21:45:48] * halfak is working towards an 'mw' revolution [21:46:01] mwreverts, mwxml, mwapi, mwpersistence, mwoauth, etc. [21:46:42] nice [21:47:49] madhuvishy: the thing I was helping just finished :( looks like I'll have to do this remote and then come in [21:52:40] do the wikilabels thing remote? [21:53:07] YuviPanda: why come in after? Would tomorrow work better? I'm gonna be here [21:53:18] madhuvishy: I need to get a bag from office :) [21:53:41] madhuvishy: we can do tomorrow too. I just feel bad for dragging you and halfak around [21:54:05] I'm here, and it doesn't make a difference. poor halfak though [21:54:10] No worries. [21:54:13] sorry [21:54:16] * halfak is a rich man [21:54:19] I just got pulled into supporting a deploy somewhere [21:54:20] ha ha [21:54:22] In the things that matter [21:54:27] :) [21:54:34] and then it turned out I wasn't needed at all, but I was around till the end of it anyway [21:55:21] Darn people pulling you into deploys WAIT A SECOND.... other people ... yeah those other people ;) [21:55:29] haha :) [21:55:37] halfak: well I wouldn't mind if I actually ended up doing things :) [21:55:45] * halfak wants to do things [21:55:50] But I can wait. [21:55:59] No trouble. [22:01:00] YuviPanda, madhuvishy, just to check. Are we meeting now? [22:01:09] No? [22:02:38] we can if you guys are ok with doing it remotely. [22:02:45] but ok if not and can do it tomorrow [22:03:05] Remotely is all I ever do [22:03:13] madhuvishy, ? [22:03:49] halfak: since YuviPanda is in SF I'd prefer to do it in person [22:04:04] ok then! [22:04:30] OK. Tomorrow it is. [22:04:43] madhuvishy, I'll leave it to you to find the slot. ;) [22:04:55] halfak: okay :) [22:06:21] YuviPanda: will it take an hour? [22:06:26] or 30 minutes will do? [22:06:42] madhuvishy: let's schedule an hour and hope for 30mins? :D [22:07:33] halfak: are you playing Squash at 1.30? [22:12:23] :C [22:12:28] Was planning on it. [22:12:48] Nettrom is offline or I'd ask him if he would be able to tomorrow. [22:12:56] YuviPanda I moved it to 1-2 tomorrow. halfak we will hopefully be done early, even if not you should go play squash :) [22:13:04] ok [22:13:06] I could move it to an hour earlier if that works. [22:13:15] 12:30 - 2PM [22:13:28] sure! [22:13:58] Done [22:14:04] halfak: okay now it's at 2. [22:14:18] Looks good. Except for your PDT-centricness :P [22:14:29] halfak: sorry :) [22:15:28] It's OK. I usually assume PDT when WMF people don't specify. [22:15:32] UTC for everyone else. [22:15:49] The members of this channel cover a lot of timezones. [22:15:55] :) [22:16:06] * YuviPanda wonders what TZ he's in now [22:16:13] anyway, off to office now for real [23:23:23] YuviPanda: Hey uh, you ever have a problem where pybuild creates empty .debs as soon as you configure it to build both a python2 and a python3 package? I'm seeing this in two different repos... [23:25:24] awight: huh, no... although I'll admit to not having built multisupport ones [23:25:25] Scary. It seems to be the debian/control file that determines whether I see this glitch or not. Without the python3 build dependencies and package block, the python2 deb is normal [23:25:29] k [23:28:12] gah. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=761028 [23:49:38] YuviPanda: python3 setup.py --command-packages=stdeb.command debianize [23:50:09] Yeah that's what I used to use before pybuild [23:50:26] wow. I was building these stupid things by hand [23:50:27] Imo pybuild is simpler in the long run and maybe easier to get into Debian [23:50:57] Ah i see, it doesn't use dh_pybuild rules [23:51:27] Does pybuild create packaging files, too? [23:51:42] As in? [23:51:47] The Debian/ folder? [23:51:51] No I just copy them around [23:51:55] k