[09:02:08] MEETING! [09:02:10] :) [09:02:18] Hi! [09:02:36] hey [09:02:53] hi [09:03:18] hey-hey [09:03:28] sorry, a few things going on at once [09:03:34] i did update the agenda tho [09:03:45] here [09:04:19] m_gol? [09:04:23] damn, where's the agenda again? [09:04:30] https://docs.google.com/document/d/1BadwSO6Sn91RBfr05s77r81ncEi0oMBJ5mZS-k215vg/edit# [09:04:37] nice turnout today! [09:05:00] obtw, if you don't recognize the handle, arthurvr has been helping ... well just about everywhere this past moth [09:05:03] month* [09:05:06] but especially on docs [09:05:14] k [09:05:37] so we have a TON of stuff to finish before a beta [09:05:49] with priority on the things that might change behavior or add features [09:06:07] if we make a big push this week i think we can get a lot of them done [09:06:17] I don't have much time (as usual lately) but I'd like to discuss PR1996 cause I think it's the absolute wrong way to go with the whole problem [09:06:33] ok [09:06:34] le [09:06:47] let's go through the others and see if we can get them landed or push past 3.0 [09:07:15] i think the support comments are great per the proposal by gibson0421 [09:07:21] let's go with that [09:08:08] present [09:08:14] so for new prs we can use that format, older ones we can do a cleanup pass at some point [09:08:20] damn! i remember commenting extensively to https://github.com/jquery/jquery/issues/1835 :-(( [09:08:35] it seems github eat my comment [09:08:36] what I don't understand with the support comments if that I thought we arrived at something much simpler and then all the special cases re-appeared after that. Wasn't VENDOR [<=]? firstVersion [- lastVersion]? [only]? enough? [09:08:50] will do that all over again (( [09:09:24] jaubourg: that's pretty much what we got [09:09:45] gibson0421 just wanted to formalize it with a grammar [09:10:08] gibson0421: at first glance you grammar seems to handle all kind of more complex scenarios but I may have read it wrong [09:10:10] what does the only mean? [09:10:30] external bug has been fixed [09:10:43] timmywil: so we know for sure it doesn't concern further versions [09:10:51] ah [09:10:52] ty [09:10:53] basically open-ended vs closed-ended [09:11:09] ok, that's fine [09:11:29] kinda funny we've got 57 comments on this [09:11:45] hey it's bikeshed territory, gotta expect it [09:11:51] don't you love taste-oriented stuff? [09:11:53] :P [09:12:05] maybe we should have the tabs vs spaces discussion again [09:12:09] well with gibson0421 you got a good grammar and good taste [09:12:12] * jaubourg faints [09:12:16] lol [09:12:17] NOOO [09:12:25] what's the 1*support-comment syntax? [09:12:58] support-comment 1 or more times [09:13:07] DaveMethvin: the grammar is nice it's just that it seems to add alternate syntax to what we seemed to agree on so I dunno if I missed a discussion on IRC or something [09:13:25] again, I may read it wrong [09:14:06] if you look at the table at the end, i think that's basically the way you'll use it [09:14:10] do we need `"<" version " only"`? [09:14:24] i don't think it's as clear as <= [09:14:34] but using < vs <= is probably another bikeshed :) [09:14:38] ;) [09:14:40] I want to replace it with "<=m only", per https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-69456851 [09:14:45] right [09:14:51] ok, this LGTM! [09:14:59] * gibson0421 cheers [09:15:04] yay! [09:15:06] ok moving along [09:15:08] my question is this... what does the grammar handle that "VENDOR [<=]? firstVersion [- lastVersion]? [only]?" doesn't ? [09:15:11] I've exceeded bikeshedding limit for this week :P [09:15:18] lol [09:15:27] you don't have a repeat there jaubourg [09:15:46] informally it's basically the same [09:15:57] but let's move on [09:16:18] do we want the whole grammar written in contribute? ;) [09:16:27] it's quite intimidating to people not used to formal grammars [09:16:32] right, i don't think so [09:16:33] i.e. 99% of devs, I guess [09:16:36] just the table [09:16:45] maybe markelog can use the grammar in jscs :) [09:16:49] :) [09:16:59] the grammar was just for us :) [09:17:15] so given that we need to land a bunch of stuff [09:17:26] i think we need to document this somehow, otherwise if there would be a dispute we couldn't refer the docs [09:17:29] i think we should avoid geting too fancy for some of these small fixes [09:17:42] we'll make a link [09:17:47] markelog: on the grammar, we can reference it, yeah [09:17:49] we could point out in the docs link to jscs plugin [09:17:53] or put it in the wiki [09:17:58] which would have docs in the readme [09:18:30] http://contribute.jquery.org/style-guide/js/support-comment-formal-grammar or something [09:18:51] +1 to that [09:19:10] there would be a duplication i think, readme will have grammer instructions [09:19:19] and this page then will have them too [09:19:26] the table and some other discussion can be in a page on contribute.jquery.org [09:19:30] readme and http://contribute.jquery.org/style-guide/js/ can be informal [09:19:38] right [09:19:53] so the same info in the readme and on contribute? [09:20:16] the readme can reference the contribute page? [09:20:18] I guess the former just links to the latter [09:20:19] +1 [09:20:29] okay [09:20:29] since that would a plugin, should we put it on /jquery/ repo? [09:20:32] anyway, we need to land some of these things ... parseHTML i'm okay with the current fix that changes it to return an empty array [09:20:53] that's not quite what the fix is [09:21:13] for the domain of valid inputs, it is? [09:21:35] depends on your idea of valid input [09:21:43] the docs say it takes a string [09:21:57] DaveMethvin: since that would a plugin, should we put it on /jquery/ repo? [09:22:15] maybe /build? [09:22:20] or /build/plugin? [09:22:33] i meant github.com/jquery/ [09:22:39] oh [09:22:52] or i could leave on my account [09:22:54] this is for the jscs plugin? [09:22:57] yeah just leave it there for now [09:23:02] cool [09:23:03] ok, time is running out... is it possible to wait for my feedback on the Deferred PR before landing? I'll do it tonight, didn't have time for this last week. [09:23:18] oh the deferred pr ... fire away jaubourg [09:23:19] yes, but the question is whether to fail silently and provide consistent results across browsers or leave it unpredictable [09:23:28] let's push stack on that timmywil [09:23:32] 3 threads at once :) [09:23:38] jaubourg: I will not land before you have a chance to comment [09:23:58] gibson0421: ok, deal, sorry I have to go so quick :/ [09:24:01] m_gol:multitasking like boss [09:24:19] I'm terrible at multi-tasking :) [09:24:26] you have the floor jaubourg [09:24:29] oh [09:24:32] hahaha [09:24:38] he'll comment on the PR [09:24:40] he left to dance [09:24:41] ok well let's hope he comments in the PR [09:24:48] back to parseHTML [09:24:56] my main concern is that we fix the parseHTML("") case [09:25:08] i'm totally okay with the rest but it has to get done asap [09:25:27] if we're changing what it accepts and documenting that change [09:25:31] so is someone taking that? [09:25:48] if no one else does, I will [09:25:51] it's small [09:25:55] i think it is [09:26:07] the unit tests will be the hardest part, as usual [09:26:11] but I hope someone else does, because it's also low-priority [09:26:30] gibson0421: maybe ping Krinkle if he has time? [09:26:42] since he submitted the PR :) [09:26:46] timmywil: if you are short on time i'd prefer to have you work on the build and release changes [09:27:03] and yeah if Krinkle|detached could update the pr based on our input that would be great [09:27:03] yea, I should be able to get to those this week [09:27:06] spread the wealth [09:27:17] been really busy at work [09:27:31] DaveMethvin: so what did we decide on parseHTML? [09:27:55] i'm confused now [09:28:02] in the thread timmywil was proposing we do what the native method does [09:28:05] which works for me [09:28:14] but it requires some changes beyond what's there [09:28:23] for edge stuff like undefined and null [09:28:37] and in that case we will return []? [09:28:39] gibson0421 outlined what had to happen [09:28:41] but the size difference should be negligible [09:28:52] yes, for parseHTML("") we return an empty array [09:29:01] sounds good [09:29:05] that's the most important ^ [09:29:06] which is the main case to fix here, i think that one is truly broken [09:29:15] the others are technically out of the domain of inputs [09:29:20] the rest is just making things better for the sake of consistency [09:29:25] just like for $(null) or $(undefined) [09:30:24] ok [09:30:35] next is funny chars in a tag name [09:30:49] i'd say okay for this PR [09:30:54] and do everything else after [09:31:26] or we could it in that PR, but i would prefer it in two separate commits [09:31:35] and we need to add tests for namespaces with ":" [09:31:37] and issue [09:31:48] i'd like to get them both in for 3.0 if possible, but if not then this should land now [09:32:05] I agree that it should at least be separate commits [09:32:09] ":" works now but is missing tests, everything else seems like the same issue to me but I'm ok with splitting as well [09:32:10] atomicity and all [09:32:17] new regexp might have some issues [09:32:24] let's land this now, and do the wider change [09:32:42] okay, i will merge it then [09:32:52] one commit to support hyphenated, one to support namespaces [09:32:58] will commit tests for ":" too [09:33:01] ok [09:33:17] the simple ones [09:33:40] i think other regexp changes can be done by original contributor [09:33:58] if not, we can do it ourselfs [09:34:24] the last one that i think is high prio is the script insertion [09:34:33] for some reason i thought we landed a pr for this [09:34:37] but i was confused i guess [09:35:24] markelog landed one for the script data urls a while back [09:36:04] i think this one has the potential to cause issues so I'd rather have people test it in a beta [09:36:05] easy to a fix as i recall, can do this soon [09:36:08] tests for that are a little bit flakey but that doesn't block us [09:36:15] so we can switch back if needed [09:36:18] DaveMethvin: indeed [09:36:36] i really like the idea of doing this but don't know how much people depend on it being sync [09:36:38] this is not about data-uri [09:36:41] but it's such a performance killer [09:36:44] yeah, agreed [09:36:53] okay, so will do that [09:36:57] offsetParent! [09:37:04] 3d transform? [09:37:10] yeah [09:37:21] how about i will do it in separate commit [09:37:32] one is simplifing stuff, other is complicate it ) [09:37:37] that would be fine, i just figured it might change the code a lot [09:37:49] like completely mess up your simplification [09:37:53] )) [09:37:59] hope not [09:38:16] but there is some points that could be done simple either way [09:38:24] with or without support for 3d [09:38:55] alright, any other major issues? [09:39:11] I'll try do to my stuff before Thursady [09:39:15] does anyone have tickets assigned they would rather give away? [09:39:15] * Thursday [09:39:49] i'm really looking forward to landing the Deferred stuff, hope jaubourg gives feedback on that soon [09:39:58] absolutely [09:40:11] oh we needed to discuss what to do for unhandled rejections [09:40:16] gibson0421: thoughts? [09:40:26] DaveMethvin: I like your idea about catching specific type of errors [09:40:39] so for that I basically want to duckpunch .then as a plugin [09:40:57] hmmm, i'd need to see an implementation [09:41:10] yes, it's on my list ;) [09:41:17] also i think we need some reporting by default so it's gonna go into the file [09:41:28] silence is deadly [09:41:39] any console operations have to wrapped in if (console) btw [09:41:45] yep [09:41:52] even on master [09:41:58] yeah, ie9 [09:42:18] ie9 doesn't support it? [09:42:21] if it's exposed in a way that someone can override then they can shut it off [09:42:21] I _think_ the swallowed exceptions all relate to broken thenable implementations [09:42:30] ie9 only supports console when dev tools are open [09:42:35] right [09:42:48] e.g., onFulfilled called multiple times [09:43:00] throw after fullfill [09:43:04] that kind of stuff [09:43:24] the real problem is when the exception is translated into a rejection for which nothing is listening [09:43:40] right that's what i mean, unhandled rejections [09:43:42] hence unhandledRejections [09:43:45] bingo [09:44:02] sometimes i get my words mixed up [09:44:03] :) [09:44:09] fixed the agenda notes [09:44:12] do we try to use native Promise constructor btw? [09:44:16] it's not just you [09:44:18] no [09:44:25] should we? [09:44:30] ECMAScript and A+ Promise suffer huge flaws w.r.t. terminology [09:44:35] we can't depend on Promise being there [09:44:45] I think we resolved it (pun intended) on using Deferred [09:44:58] resolved, settled, fulfilled, rejected [09:45:08] pending [09:45:17] yeah, but we can workaround that [09:45:17] FACEPALM [09:45:25] byte-size? [09:45:40] dejected [09:45:44] )) [09:45:47] we might defer to native promise if Deferred are missing (we plan to do it for core/ready) but this is for AJAX only anyway [09:45:57] I mean for $.ajax [09:46:15] m_gol: isn't that an old discussion which no longer true? [09:46:24] I think it's still half-true [09:46:28] in some future setup we might be able to have something like we do with selector-native for Deferred that is just a Promise [09:46:40] but if you look at how we use Promise internally it's a lot of work for that [09:46:47] yeah [09:46:48] at least for animation [09:46:50] and ajax [09:46:59] ah, right, effects is another one [09:47:00] we don't planning to use native one? [09:47:04] we can update other modules to use spec-compliant thenables, and define a module that exposes Deferred if present and Promise otherwise [09:47:06] even if it exist? [09:47:18] in Deferred i mean [09:47:22] markelog: Deferred has a lot of different methods [09:47:29] we use them all internally [09:47:42] it's not possible AFAIK unless you can subclass native Promise [09:47:48] yeah, but native Promise is build that way so you could enchance it [09:47:52] with your impl [09:48:05] gibson0421: if that's possible, that would be best [09:48:09] some of them ... i know some of the shims are not extendable [09:48:22] well, we don't need to support shims [09:48:28] `ConstructThenable = window.PromiseĀ || function( executor ) { var dfd = jQuery.Deferred(); try { executor( dfd.resolve, dfd.reject ); } catch ( ex ) { dfd.reject( ex ); } return dfd.promise(); }` [09:48:46] (as a starting point) [09:48:57] i meant other thing [09:49:00] i think it's doable but not without a lot of internal changes, so currently it's not drop in [09:49:04] or rather, flip the || operands [09:49:05] use Promise native in jQuery.Deferred( [09:49:16] markelog: no, I don't see that happening [09:49:19] that i would not do [09:49:23] heh, you mean || instead of ||? [09:49:25] why? [09:49:29] use Promise instead of Deferred, maybe [09:49:36] and have our internal uses accept either [09:49:46] timmywil: no, `function(){ ... } || window.Promise` instead of the other way around [09:49:53] gibson0421: kidding [09:50:01] so we get progress etc. if Deferred is loaded [09:50:05] gotcha [09:50:33] why we can't use native promises inside the deferred? [09:50:35] operands is different than operators, so forget I said that [09:50:58] done ;) [09:50:58] markelog: how would you implement progress, pipe etc.? [09:50:59] what does putting Promise inside Deferred buy us? [09:51:10] it would be two code paths [09:51:28] DaveMethvin: yeah, we did that before [09:51:33] possibly performance, but I bet not [09:51:34] i can see replacing Deferred with Promise [09:51:46] me too [09:52:05] timmywil: Chrome's native Promise is not exactly fast [09:52:14] meh [09:52:14] m_gol: link? [09:52:14] timmywil: bluebird beats it hands down [09:52:30] markelog: https://github.com/petkaantonov/bluebird/tree/master/benchmark [09:52:31] at some point we could have a deferred-native and change our internal uses to basically just be thenables so it works with either [09:52:32] m_gol: yea, I suspected [09:52:41] but that's a lot of work [09:53:04] anyway, we can bikeshed on this later, yea? [09:53:11] agreed [09:53:37] yeah [09:53:40] so gibson0421 was the wrap up that you were going to propose a solution for unhandled rejections? [09:53:52] yes [09:53:55] ok :) [09:54:26] that doesn't have to block this landing, if we get jaubourg's feedback of course [09:54:43] alrighty then, any other critical items? [09:55:02] let's just get some of this landed and wrapped! [09:55:11] thanks guys