| 00:34 | <gsnedders> | devsnek: the answer is basically "supporting them is an explicit non-goal". Like, if there's small, a-few-line patches that make stuff easier for you and no worse for browsers, go ahead and submit them, but we make no guarantee as a project that that won't regress. |
| 03:07 | <devsnek> | gsnedders: if a test doesn't need dom to run though |
| 03:07 | <devsnek> | like just testing the url constructor as an example |
| 03:07 | <devsnek> | couldn't wpt put the test in a js file instead and call it a day |
| 03:17 | <devsnek> | in the interest of standardising the ecosystem it seems like a pretty easy policy to adopt moving forward at least |
| 03:17 | <devsnek> | i'm sure plenty of people would be willing to rewrite old tests carefully |
| 03:17 | <devsnek> | its just a huge task for one person trying to implement something |
| 04:08 | <MikeSmith> | devsnek: seems worth raising an issue for in the wpt repo |
| 04:09 | <MikeSmith> | and wider discussion can happen there |
| 04:09 | <devsnek> | yeah I just wanted to guage it here first as 700 issues makes me nervous |
| 04:10 | <MikeSmith> | yeah |
| 04:11 | <MikeSmith> | one thing to keep in mind is that these days a lot tests are upstreamed to wpt from blink and gecko |
| 04:12 | <MikeSmith> | so I think we can’t ever expect that the devs writing those will be going out of their way to take non-browser runtimes into consideration |
| 04:16 | <devsnek> | I think of it like avoiding needless html |
| 04:16 | <devsnek> | good point though |
| 06:13 | <annevk> | devsnek: for URL in particular we keep tests in a JSON file precisely to allow reuse |
| 06:13 | <annevk> | devsnek: what gsnedders said is incorrect for a lot of stuff I work on |
| 06:13 | <annevk> | devsnek: I try to go out of my way to make tests reusable by non-browsers, by having a lot of the input/output expectations encoded in JSON |
| 10:52 | <tobie> | annevk: OK, reduced the issue on my side by serializing requests to wattsi. |
| 10:52 | <tobie> | annevk: Root cause seems to be that wattsi doesn't handle concurrent request properly and serves partially empty zip files in such cases. |
| 10:54 | <MikeSmith> | tobie: we should also investigate if we can fix that in wattsi then I guess |
| 10:55 | <MikeSmith> | if you can file an issue at https://github.com/whatwg/wattsi/issues |
| 10:55 | <annevk> | MikeSmith: I suspect that's an issue with the server setup |
| 10:56 | <MikeSmith> | oh ok |
| 10:56 | <MikeSmith> | oh this is the server wattsi? |
| 10:56 | <annevk> | Yeah |
| 10:56 | <MikeSmith> | ah OK |
| 10:56 | <annevk> | tobie: thanks |
| 10:56 | <tobie> | annevk: yes |
| 10:57 | <tobie> | annevk: where should I file it, then? |
| 10:58 | <MikeSmith> | tobie: https://github.com/whatwg/html-build/issues I reckon |
| 10:58 | <tobie> | annevk: do you know what changed that started causing this? |
| 10:58 | <annevk> | tobie: https://github.com/domenic/wattsi-server/issues/new |
| 10:58 | <tobie> | annevk: because this wasn't an issue before (though I has suspected this might be a problem when looking at how the server was designed last year) |
| 10:58 | <tobie> | annevk: thanks |
| 10:58 | <annevk> | tobie: not really, https://github.com/domenic/wattsi-server/commit/bb27268e85e9265bc84752742931cdaab99e9698 is the most recent change there |
| 10:59 | <annevk> | tobie: before that it hadn't changed for years |
| 10:59 | <annevk> | tobie: it could be that wattsi itself takes a little longer to run though so that's why you now notice it |
| 11:00 | <tobie> | annevk: yup, or some hardware changes> |
| 11:00 | <tobie> | ? |
| 11:00 | <annevk> | yeah, dunno about that |
| 11:00 | <annevk> | seems unlikely, but who knows |
| 11:00 | <tobie> | annevk: the issue look like they're about a week old |
| 11:01 | <tobie> | annevk: so probably(?) related to the above change. |
| 11:03 | <tobie> | annevk: anyway. should be working now. Hopefully the new logging stuff I added to pr-preview will make the next debugging session not take the whole night. :-/ |
| 11:04 | <annevk> | tobie: ugh, yeah let's hope not; thanks again |
| 11:19 | <tobie> | annevk, MikeSmith: issue filed: https://github.com/domenic/wattsi-server/issues/6 |
| 11:57 | <JakeA> | annevk: help settle a dispute: https://notifications.spec.whatwg.org/#concept-language "which is a DOMString representing either a valid BCP 47 language tag or the empty string". Should it be "an empty string"? |
| 11:57 | <Ms2ger> | No, we consistently use "the" |
| 11:58 | <JakeA> | whuuuuuut |
| 11:58 | <Ms2ger> | There's only one |
| 11:59 | <JakeA> | Ms2ger: but, shouldn't it then be linked to where it's defined? |
| 11:59 | <JakeA> | Should I be writing "Let whatever be the 42"? |
| 12:01 | <Ms2ger> | "the number 42" works, sure |
| 12:01 | <Ms2ger> | Much better than "a number 42", in any case |
| 12:01 | <JakeA> | But is "Let whatever be 42" wrong? |
| 12:01 | <Ms2ger> | No |
| 12:03 | <JakeA> | I guess I still don't get why we use "the empty string" unless we're referencing an actual thing defined somewhere |
| 12:04 | <zcorpan> | it's no different from the string "foo"; it doesn't need a definition |
| 12:06 | <JakeA> | Is this to stress equality, whereas "an empty list" and "an empty list" are not equal? |
| 12:07 | <Ms2ger> | Maybe more mutability? |
| 12:08 | <JakeA> | So, immutable things are "the" rather than "an" (and "the" is presumed if it's grammatical to omit it)? |
| 12:09 | <devsnek> | annevk: true but the rest of the tests are still inside html |
| 12:09 | <devsnek> | including the part that uses that html |
| 12:09 | <devsnek> | iirc it uses xhr to grab it |
| 12:09 | <devsnek> | uses that json* |
| 12:54 | <annevk> | devsnek: it should be pretty easy to write your own wrapper, no? |
| 12:54 | <annevk> | devsnek: normally the requirements for the wrapper don't change, we just add to the JSON |
| 12:55 | <gsnedders> | JakeA: don't you intern the empty string? |
| 12:56 | <annevk> | JakeA: we don't have numbers formalized, but I expect let x be 42 will be the answer there |
| 12:56 | <annevk> | JakeA: it's the empty string because there's only one empty string |
| 12:56 | <devsnek> | annevk: https://github.com/web-platform-tests/wpt/blob/8791bed/url/url-constructor.html |
| 12:56 | <annevk> | JakeA: there's multiple strings, but only one that's empty |
| 12:56 | <devsnek> | there's a fair amount of not-using-the-json here |
| 12:57 | <annevk> | JakeA: a tag or the string "foo" (which we'd shorten to a tag or "foo" in typical usage) |
| 12:57 | <annevk> | I see now zcorpan also said this |
| 12:58 | <annevk> | devsnek: hmm yeah |
| 12:59 | <devsnek> | and I can copy it into another file |
| 12:59 | <devsnek> | but then what if there's a bug or something |
| 12:59 | <devsnek> | it works if I copy a few tests but that doesn't scale |
| 12:59 | <annevk> | devsnek: sure, we could figure out how to make these more reusable |
| 13:00 | <devsnek> | anyway I was gonna open an issue about it in a few |
| 13:00 | <annevk> | devsnek: did you look at the any.js/window.js format wpt supports? Would that work? |
| 13:00 | <annevk> | devsnek: sg |
| 13:00 | <devsnek> | I haven't heard of any.js or window.js |
| 13:00 | <devsnek> | I'll take a look |
| 13:01 | <annevk> | devsnek: https://web-platform-tests.org/writing-tests/testharness.html#auto-generated-test-boilerplate |
| 13:01 | <devsnek> | oh those |
| 13:01 | <devsnek> | yeah the goal would be to have more of that |
| 13:02 | <devsnek> | I wonder how cloudflare tests their workers for spec compliance |
| 14:48 | <devsnek> | annevk & MikeSmith & gsnedders https://github.com/web-platform-tests/wpt/issues/11277 |
| 16:00 | <annevk> | ta |
| 16:22 | <devsnek> | annevk: I don't think 11277 is specific to URL, I just listed it as an example |
| 16:23 | <devsnek> | for instance EventTarget can be made almost spec compliant without a dom |
| 16:23 | <devsnek> | you just always have an empty list for bubbles and event capture |
| 22:57 | <TabAtkins> | I forget, was there any appetite for trying to get "async constructors" in WebIDL, so that `new DOMFoo()` can return a `Promise<DOMFoo>`? |
| 22:57 | <TabAtkins> | Or is the best practice intended to remain what you have to do currently - define it as having no constructor, and just expose a factory function? |
| 23:02 | <MikeSmith> | TabAtkins: about the highlighter, after the we last chatted about it here, I guess I assumed you were gonna be landing some change to the highlighter sources? |
| 23:02 | <MikeSmith> | or maybe I misunderstood |
| 23:03 | <TabAtkins> | No, I'm fixing it. Mostly done, but on my laptop which I accidentally left at home today. ^_^ |
| 23:03 | <TabAtkins> | I'll try and push it tonight. |
| 23:03 | <MikeSmith> | hah |
| 23:04 | <MikeSmith> | thanks :) |
| 23:04 | <MikeSmith> | but clearly you need to get into the cloud, man :D |
| 23:06 | <MikeSmith> | devsnek: thanks for filing that issue. It seems to have already passed the Ms2ger bar, which is a pretty high bar ー so that’s a very good sign |
| 23:07 | <devsnek> | who is that |
| 23:08 | <TabAtkins> | A mysterious person in a mask, who appears when they're most needed... |
| 23:08 | <MikeSmith> | heh |
| 23:08 | <MikeSmith> | yes Ms2ger is many things |
| 23:09 | <devsnek> | to me its just one of those people who thinks they're too cool for a github avatar |
| 23:09 | <devsnek> | :P |
| 23:09 | <MikeSmith> | haha |
| 23:10 | <devsnek> | is anyone here pretty familiar with the url spec |
| 23:10 | <devsnek> | i have a weird thing with my implementation where it doesn't handle base urls properly if the scheme is file |
| 23:11 | <MikeSmith> | devsnek: you probably need annevk |
| 23:11 | <MikeSmith> | for that |
| 23:11 | <MikeSmith> | though there may be somebody else on teh channel right now who has implemented |
| 23:12 | <MikeSmith> | anyway as far as Ms2ger wpt, he is by far one of the most active contributorsーespecially in terms of reviews of PRs and enhancement requests for the infra bits and harness |
| 23:12 | <devsnek> | ic |
| 23:12 | <devsnek> | good to know |
| 23:12 | <devsnek> | the only other implementation of url i've seen is domenic's and i never see him around |
| 23:12 | <MikeSmith> | maybe Ms2ger actually wrote the initial testharness.js, can’t remember now |
| 23:12 | <MikeSmith> | eh? |
| 23:12 | <devsnek> | technically also node's but its written in c++ |
| 23:12 | <MikeSmith> | Domenic is around here very often |
| 23:13 | <devsnek> | i'm not usually around here heh |
| 23:13 | <devsnek> | i spend more time in tc39 |
| 23:13 | <MikeSmith> | Domenic is there too :) |
| 23:13 | <devsnek> | yeah i see him pop in every once in a while |
| 23:15 | <MikeSmith> | FWIW I maintain a fork of an implementation, for use in the HTML checker |
| 23:15 | <MikeSmith> | https://github.com/validator/galimatias |
| 23:16 | <MikeSmith> | but I try to touch that as little as possible and unfortunately it’s not in full conformance with the current URL spec |
| 23:16 | <devsnek> | mfw java |
| 23:16 | <MikeSmith> | :) yeah I know |
| 23:17 | <devsnek> | you will never know my pain 😢 |
| 23:17 | <MikeSmith> | someday I am going to rewrite the entire checker in Rust |
| 23:17 | <devsnek> | i respect rust |
| 23:17 | <devsnek> | include_str ftw |
| 23:18 | <gsnedders> | MikeSmith: jgraham wrote testharness.js |
| 23:18 | <MikeSmith> | ah OK |
| 23:18 | <gsnedders> | early working names included goth.js |
| 23:18 | <MikeSmith> | gsnedders: oh he named it after you? |
| 23:19 | <gsnedders> | MikeSmith: so Opera had a department called EMO. myself and jgraham really wanted to call /something/ GOTH. |
| 23:19 | <gsnedders> | Y'know, like a Generic Opera/Open Test Harness. |
| 23:19 | <TabAtkins> | I like that I came in today with literally 9000 emails from the wpt repo, after the accidental signup. ^_^ It took gmail like ten minutes to archive all of them. |
| 23:20 | <gsnedders> | (in the end the rewrite of Opera's CI system became called GOTH) |
| 23:26 | <MikeSmith> | TabAtkins: about the #sysreq thing, I just now had github send invites for them to the w3c org |
| 23:27 | <TabAtkins> | Cool, thanks. |
| 23:29 | <jgraham> | GOTH had the nice property that OTH is Opera Test Harness, so it was easy to backronym a G |
| 23:30 | <astearns> | thanks, MikeSmith |
| 23:30 | <gsnedders> | MikeSmith: speaking of th.js, the origin story as I remember it is basically coming into work some day and jgraham being like "hey can you review this thing I wrote last night before I send it out to the HTML Testing TF?" |
| 23:30 | <jgraham> | But testharness.js is so called despite not being a harness because there was an earlier attempt with the name testrunner.js |
| 23:30 | <jgraham> | gsnedders: I don't remember that, but it could be true |
| 23:31 | <gsnedders> | jgraham: was testrunner.js zcorpan's thing? |
| 23:32 | <jgraham> | Maybe? I thought I wrote at least one version of that |
| 23:33 | <gsnedders> | I feel like my response to jgraham writing a new test harness was "*rolleyes*, another one?" |
| 23:33 | <gsnedders> | but I could be misremembering |
| 23:35 | <jgraham> | I thought that was your response to me writing code in general; "oh no, not again" |
| 23:37 | <gsnedders> | Well pretty much |
| 23:37 | <gsnedders> | "Did you write tests this time?" |
| 23:44 | <KiChjang> | question about window indexed getter https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-getownproperty |
| 23:45 | <KiChjang> | does it only go 1-layer deep on the browsing context? |
| 23:45 | <KiChjang> | i.e. does it only check the child BCs of the current window and not its grandchildren? |
| 23:45 | <gsnedders> | yes, I'm 99% sure |
| 23:48 | <KiChjang> | gsnedders: hmm, the spec text doesn't really make this explicit though |
| 23:48 | <KiChjang> | that's why i was confused |
| 23:48 | <KiChjang> | "Set value to the WindowProxy object of the indexth document-tree child browsing context of document's browsing context, sorted in the order that their browsing context container elements were most recently inserted into document, the WindowProxy object of the most recently inserted browsing context container's nested browsing context being last." |
| 23:48 | <KiChjang> | especially on the part where it says "sorted in the order that their BC container elements were most recently inserted" |
| 23:49 | <KiChjang> | that makes me believe that it should go something like [child, grandchild, sibling] |
| 23:49 | <KiChjang> | since the grandchild is inserted before the the sibling |