[00:24:46] spagewmf: haven't looked at either code recently, but I recall there is now a javascript module for HTMLForm in core that does something similar [00:25:07] module mediawiki.htmlform [00:25:33] might be a possible migration path for phasing out prefswitch [00:31:02] Krinkle indeed, but seems AFT could just copy that one .js file into AFT and break the dependency. [00:35:20] Sure, that'd work too [00:39:50] Krinkle I see HTMLForm on MediaWiki, but nothing about a JS module for it. Hmm, mediawiki.htmlform.js is just a few animation routines. [00:40:04] you said show/hide :) [00:50:46] Hey Krinkle, is HTMLForm a better basis for an improved Special:UserLogin than includes/templates ? Seems like the latter was never widely adopted. [00:51:01] includes/templates? [00:51:06] I don't even know what that is [00:51:40] uh, we that directory's been there all that time [00:52:54] spagewmf: yeah, they're somewhat different things do [00:53:13] spagewmf: It seems for many things we have SpecialPage now (which has a lot of built-in methods that QuickTemplate has as well) [00:53:25] For forms, definitely use HTMLForm [09:54:34] I wish I knew what stuff like this was: wikibooks/en/graphs/197925/completeness/ on uploads [13:52:01] New patchset: Stefan.petrea; "Adapted udpfilters for automatic versioning" [analytics/udp-filters] (master) - https://gerrit.wikimedia.org/r/26793 [14:06:44] New patchset: Stefan.petrea; "Adapted udpfilters for automatic versioning" [analytics/udp-filters] (master) - https://gerrit.wikimedia.org/r/26793 [14:08:40] New review: Diederik; "Ok." [analytics/udp-filters] (master); V: 1 C: 2; - https://gerrit.wikimedia.org/r/26793 [14:08:40] Change merged: Diederik; [analytics/udp-filters] (master) - https://gerrit.wikimedia.org/r/26793 [17:08:25] Nikerabbit: Ping [17:52:15] StevenW: so, I see there's going to be a new signup page.... [17:52:32] what's the chances of that new form breaking all authentication plugins? [17:52:41] Eventually. Just a test for now. [17:53:03] which authentication plugins? [17:53:08] any of them? [17:53:17] any auth plugin that modifies the login form [17:53:35] Are any of them in use on English Wikipedia ATM? [17:53:40] -_- [17:53:51] * Ryan_Lane sighs [17:53:58] I don't understand your term [17:54:16] every single time someone screws with the auth interfaces, it breaks every auth plugin [17:54:19] if you're talking about the current validation of username, pswd, and email, everything works as normal [17:55:08] is this set to replace the login form in core? [17:55:20] No. Not yet. [17:55:33] Lots of steps before that, including a security review by Chris. [17:55:43] so, when it does, please add me as a reviewer [17:55:52] Ok. [17:55:55] :) [17:56:20] I spend too much time fixing these things over and over again ;) [17:57:01] really we need tests for this stuff [17:57:15] chrismcmahon, zeljkof ^ :) [17:57:16] Yeah that would be better [17:57:33] (because you two don't have enough to do already) [17:57:36] If you can give S Page and I shortlist of things you would look for/particularly want to avoid breaking, that would be super helpful [17:57:50] The documentation on account creation really sucks. [17:58:08] a shortlist* [18:04:45] it needs to have hooks for adding fields [18:04:53] and it needs to call out to the authentication plugin [18:04:56] that's basically it [18:06:37] spagewmf: is this login form going to use htmlform? [18:06:46] or is it yet another custom form? [18:12:00] Ryan_Lane all TBD. Firstly, we're only experimenting with account creation, not login (but I assume auth plugins fire on both). Secondly to give 50% of new users the new form, I change nothing on the back-end, it's all client-side BBJM ("brown-belt jQuery munging"). [18:12:31] ah. it just changes the normal form? [18:12:37] Or as I like to call it, use and abuse of JavaScript for fun [18:12:41] Yes [18:12:45] For now [18:12:49] ah. that's easy, then [18:12:59] last time someone tried to change the form, it died in a branch [18:13:03] it's not terribly easy [18:14:15] Ryan_Lane, assuming testing shows improvements then someone productizes. Right now the Special:UserLogin login/signup form is the only consumer of an old incomplete abandoned(?) attempt to reimplement PHPTAL (template attribute language), in includes/templates/ , so it's an opportunity. [18:14:35] yes [18:14:36] I know [18:14:41] it should be HTMLForm'd [18:14:48] someone tried to do so [18:14:55] and it broke all auth plugins, centralauth included [18:22:24] Ryan_Lane: was it one of these … https://www.mediawiki.org/wiki/ACUX#Related_software_projects [18:22:26] ? [18:22:29] or something else [18:22:37] no [18:22:45] a volunteer wanted to fix it [18:22:49] maybe it was happy-melon? [18:22:49] Ryan_Lane can you point me to that branch, I'd like to learn from previous wrecks :) . And I will definitely try auth plugins when/if we productize. ConfirmEdit, FancyCaptcha, AntiSpoof, various special messages, language links, [By Email] all jump in to mess with the form, join the party ;-) [18:23:28] spagewmf: OATHAuth, OpenStackManager, LdapAuthentication [18:23:45] all three of those add things to the authentication forms. [18:23:54] OATH doesn't add something to the creation page, though [18:24:03] OSM and Ldap do, though [18:25:44] spagewmf: it would be a branch in svn [18:25:51] no clue which one [18:29:32] Ryan_Lane, great stuff, thanks, all added to Engineering subpage. [18:30:20] thanks [18:32:29] Somewhat related, Tyler Romeo has a patch set on gerrit to provide an account creation API, which Terry likes conceptually. But it seems hard to hook in CAPTCHA and auth extensions to an API. More challenges. [18:34:30] spagewmf: Respond to signup API request with {"error": "signup-api-need-captcha"}, the client can then query action=getCaptcha, send back a completed captcha, and be signed up [18:35:00] Or at least, get a token for signing up [18:35:05] Then complete the request [18:35:31] Ryan_Lane, marktraceur: the first browser test should be created next week [18:38:23] Exciting! [18:38:53] marktraceur, seems plausible, but with auth there are an open-ended set of additional key-values to provide to the API. With a form an extension can stick its own form field HTML in and on a hook look for its parameters. ... ... ... "Math is hard, let's go shopping!" [18:41:47] spagewmf: This is what the API docs are for, plus, I doubt someone would be writing an auth api for an arbitrary MW instance...well, even if they did, they would probably support a few specific ones. [19:21:39] PHP Warning: pack() [function.pack]: Type H: illegal hex digit N in /usr/local/apache/common-local/php-1.20wmf12/includes/api/ApiQueryCategoryMembers.php on line 121 [19:21:52] ^ quite a lot of those appearing in the apache logs [19:23:23] / pack( "H*", $foo ) is used to convert hex back to binary [19:23:23] $escSortkey = $this->getDB()->addQuotes( pack( "H*", $cont[1] ) ); [19:53:10] mwalker: yes I'm using table prefixes and I had the global turned on :) [19:59:36] Nikerabbit: damnit [19:59:57] I guess I'll have to spin up an instance that uses prefixes [22:29:49] Ryan_Lane: So, about your question re "why don't we cache JS in localStorage?" [22:29:52] RoanKattouw: so, loading from local storage is a fallback in case everything else fails [22:30:02] The practical reason is that localStorage wasn't really around when RL was written [22:30:07] * Ryan_Lane nods [22:30:24] Oh, you're using it as a fallback, not as an optimization? [22:30:27] yes [22:30:28] but... [22:30:31] I thought it would be fine-grained selective caching [22:30:40] the optimisation is that we don't wait long for timeouts [22:30:55] so, if it takes 5 seconds to load bits, fail and load from local storage [22:31:11] Hmm, OK, although that seems like a bit of an edge case optimization [22:31:14] so, if bits goes down, the entire site may not for most people [22:31:38] right now if bits goes down, the site is basically dead [22:31:43] That's true [22:31:55] I suppose you would have to use it for everything on bits, and serve the JS that does the localStorage stuff from somewhere else [22:32:01] this isn't necessarily an optimization more than it's a compartmentilization [22:32:04] Right [22:32:08] with proper spelling :) [22:32:32] yeah. could do it that way [22:32:49] could load the local storage stuff with site content [22:32:53] You'd have to [22:33:01] no reason not to, really [22:33:43] It could be done, and there is some benefit re bits being down [22:33:59] I'm more skeptical about trying to use it as a caching mechanism beyond that [22:34:04] agreed [22:34:25] I'd just want it for increased compartmentalization [22:34:28] such a long fucking word [22:34:59] I'd like upload to fail faster too [22:35:00] c18n! [22:35:19] if bits or upload fail, it shoudln't cause the entire site to die [22:35:36] we can also do this in multiple levels [22:36:09] we can have the backend fail quick, telling the caches to serve stale data [22:36:22] That would be good too [22:36:37] Most of the resources on bits actually have 30-day cache timeouts and aren't affected by backend outages [22:36:42] c19n, marktraceur. [22:36:42] could do that with bits, upload and text [22:36:50] ah. cool [22:36:52] But the startup module (plus a few others) have 5-minute cache timeouts [22:37:01] *has [22:37:06] and it's included on every page view [22:37:10] * pgehres wonders how many people were counting the letters in compartmentalization  [22:37:17] we can serve that stale [22:37:21] and can stick it in local storage [22:37:26] Yeah [22:37:28] two levels of fallback [22:37:30] Amgine: Python says 18 [22:37:45] But really usually when bits goes down, it's Varnish, not the backends [22:37:54] yep [22:38:02] Although of course backend outages can happen [22:38:28] comp artm enta liza tion [22:38:36] Just sayin' it's pretty unlikely for the bits backends to be overloaded while the text backends are doing fine. But it's totally something we can and should defend against [22:38:41] c18n you're right. [22:38:43] 5 * 4 = 20, minus 2 for 'c' and 'n' [22:39:05] heh [22:39:14] Useless conversation of the day [22:39:20] [22:39:32] marktraceur: this is your first useless conversation of the day? [22:39:50] pgehres: ....probably not [22:39:50] Ryan_Lane: Anyway the localStorage stuff is something you could pitch to Krinkle|detached . I'm not sure offhand how we'd capture certain things, /especially/ the startup module (which matters most) [22:40:35] * Ryan_Lane nods [23:50:37] mlitn, you around?