01:51:35 RRSAgent has joined #wintertc 01:51:39 logging to https://www.w3.org/2025/11/12-wintertc-irc 01:51:39 RRSAgent, do not leave 01:51:40 RRSAgent, this meeting spans midnight 01:51:40 RRSAgent, make logs public 01:51:42 Meeting: WinterTC 01:51:42 Chair: Andreu Botella 01:51:42 Agenda: https://github.com/w3c/tpac2025-breakouts/issues/72 01:51:42 Zakim has joined #wintertc 01:51:43 Zakim, clear agenda 01:51:43 agenda cleared 01:51:43 Zakim, agenda+ Pick a scribe 01:51:44 agendum 1 added 01:51:44 Zakim, agenda+ Reminders: code of conduct, health policies, recorded session policy 01:51:44 agendum 2 added 01:51:44 Zakim, agenda+ Goal of this session 01:51:45 agendum 3 added 01:51:45 Zakim, agenda+ Discussion 01:51:45 agendum 4 added 01:51:45 Zakim, agenda+ Next steps / where discussion continues 01:51:46 agendum 5 added 01:51:47 Zakim, agenda+ Adjourn / Use IRC command: Zakim, end meeting 01:51:47 agendum 6 added 01:51:48 breakout-bot has left #wintertc 02:04:44 andreubotella has joined #wintertc 02:15:29 saji has joined #wintertc 02:15:50 andreubotella has joined #wintertc 02:17:07 tidoust has joined #winterTC 02:17:09 snek has joined #wintertc 02:17:15 nicolo-ribaudo has joined #wintertc 02:17:32 jridgewell has joined #wintertc 02:17:33 JRJurman has joined #wintertc 02:17:39 watanabe has joined #wintertc 02:17:43 https://www.w3.org/Consortium/cepc/ 02:17:51 https://www.w3.org/Consortium/Legal/2017/antitrust-guidance 02:19:03 zgroza has joined #wintertc 02:20:15 present+ 02:20:17 scribe+ 02:20:23 oriol has joined #wintertc 02:20:41 kadirtopal has joined #wintertc 02:20:59 present+ 02:21:12 present+ 02:21:13 Andreu: WinterTC is the ECMA Web-interoperable Runtimes Technical Committee 02:21:19 florian has joined #wintertc 02:22:30 [Discussion on recording the breakout] 02:22:52 [Recording approved] 02:23:16 [Process rules about recordings: https://www.w3.org/policies/process/#meeting-recording] 02:23:27 aki has joined #wintertc 02:23:30 Andreu: We'll be going through what each of these things mean. 02:23:56 ... JavaScript runtimes are environments that run JavaScript and provide a way for it to do inputs/outputs. 02:24:18 greengrape3 has joined #wintertc 02:24:20 ... Browsers are JS runtimes in practice. 02:24:28 ... They give you DOM as output. 02:24:41 Andreu: Server-side. 02:24:56 ... Node.js, Deno and so on are very general-purpose OS processes. 02:25:52 ... They're often used as servers in practice. E.g., node.js gave you a huge advantage over traditional servers when it first came out as a way to handle concurrent requests more efficiently. 02:26:18 kzms2 has joined #wintertc 02:26:34 ... Other runtimes are edge runtimes such Cloudflare workers. Only meant as server usage. Deno deploy is another example. You also see this with various Node.js based solutions. 02:26:52 Andreu: Now Web interoperability. 02:26:54 ... Why care? 02:27:22 ... More code reuse is a good thing. Being able to run the same code on the client and on the server. 02:27:56 ... If there's alignment, there's less need for polyfills, e.g. node-fetch, isomorphic-fetch that are no longer needed in Node.js now that it supports fetch directly. 02:28:12 ... But also same documentation (e.g., on MDN). 02:28:17 ... In general, it reduces lock-in. 02:28:33 ... The web platform is the largets dev platform in the world, it makes sense to use it. 02:28:57 ... Many server-side runtimes are web-interoperable but in some cases, there are differences due to the nature of the runtime. 02:29:22 ... One example is how relative URL are resolved in fetch in such runtimes. 02:29:40 ... The runtime may simply throw, because there's no good base URL. 02:30:06 ... In some other cases, the server runtime may extent the specs in subtle ways because they have different requirements. 02:30:16 ... This creates potential compatibility issues. 02:30:44 ... Some common needs are different compared to browsers, e.g., HTTP server API. 02:31:07 ... or networking protocols that cannot be exposed to web runtimes. 02:31:23 ... We need a venue to extend the base functionality in web specifications. 02:31:55 .... In May 2022, some engineers started the WinterCG. We did it to allow open collaboration without membership requirements. 02:32:36 ... As we could not publish technical specs, we considered moving to a standardization venue. 02:32:46 ... We considered a W3C WG or an ECMA TC. 02:32:59 ... We had good discussions with both. 02:33:14 ... A number of the members of the WinterTC were not members of W3C but were members of ECMA. 02:33:40 ... In the end, we decided to shut down the Winter CG and create a TC at ECMA. 02:33:51 ... This is how ECma TC55 was formed. 02:34:15 ... Moving things once from a CG to ECMA worked fine, but cannot be done on an ongoing basis. 02:34:34 Andreu: What are we working on? 02:35:04 ... A minimum common web API, a WinterTC test suite, and then a Sockets API and a CLI API to have access to env variables, files/directories, and so on. 02:35:44 ... We are also contributing to upstream specs, typically Fetch (to remove cross-origin restrictions that do not apply to server runtimes) and the WebCrypto API. 02:36:35 Andreu: For the Minimum common web API, we're shooting as a superset of [Exposed=*] APIs. Goal is to publish yearly snapshots. 02:37:23 q+ to ask what is the process for contributing to web specs 02:37:23 ... In the future, we're planning to have conformance levels, e.g., to have levels such as Graphics, CLI/File Systems, and also possibly Servers with advanced networking APIs. 02:37:34 Andreu: I've hinted on differences for Fetch. 02:37:51 ... There is no current page, no cookie jar, no referrer, while the spec assumes these exist. 02:38:06 ... There's also no need to protect against cross-site requests. 02:38:42 q- 02:38:49 ... Goal is to standardize these differences. The plan is to upstream these changes to the Fetch spec. We have no interest in duplicating the spec or creating a separate one. 02:39:08 ... We're discussing that with Anne, Fetch editor. 02:39:29 tantek-projector has joined #wintertc 02:39:31 RRSAgent, pointer 02:39:31 See https://www.w3.org/2025/11/12-wintertc-irc#T02-39-31 02:39:37 Andreu: The WinterTC test suite is a subset of Web platform Tests for the minimum common web API. 02:40:12 ... Changes that may be needed will be upstreamed too. 02:40:37 Andreu: We want to collaborate with W3C and WHATWG. For WHATWG in particular, there's a strong focus on browser user cases. 02:40:52 ... Does it make sense to have conformance levels for server-side runtimes? 02:41:14 ... Sometimes, it's useful for editors and contributors to think about additional runtimes. E.g., during reviews. 02:41:36 ... It would be good to think about considerations for these runtimes during TAG review, etc. 02:41:55 ... Are there any barriers to this collaboration? E.g., IPR considerations? 02:42:27 ... People making significant contributions in ECMA WinterTC also need to sign the contributor agreement of WHATWG. 02:42:58 Andreu: https://wintertc.org and GitHub https://github.com/WinterTC55. Note we also have a Matrix room. 02:42:58 q+ 02:43:09 q+ 02:43:28 nicolo-ribaudo: Regarding tests, do you plan a separate test suite for additional APIs? 02:43:42 Andreu: The CLI API is still very much work in progress. 02:43:57 ... The common API is taking priority for now. 02:44:07 ... It's hard to know what will happen for sure. 02:44:25 ... If we need a specific test suite, we would very likely copy the same test harness in any case. 02:44:39 ... It would seem better to contribute things to WPT in any case if that's possible. 02:44:42 ack nicolo-ribaudo 02:44:48 ack kadirtopal 02:45:00 michaelficarra has joined #wintertc 02:45:04 q+ 02:45:11 kadirtopal: I'm from the WebDX CG. The minimum common API is prescriptive. How do you keep track of compliance? 02:45:25 Andreu: This will be prescriptive. 02:45:43 ... We started by looking at existing runtimes and what they currently support. 02:46:32 ... Once we have identified a test suite, plan is that these runtimes will follow them. 02:46:37 ... We cannot force them to, of course. 02:47:11 ... Example of having window be an EventTarget, we may allow exceptions for contexts where it would be impractical to do so. 02:47:43 ... Node.js is very likely to adopt these standard events for instance. 02:47:52 s/likely/unlikely 02:48:07 ... We allow that as an exception as a result. 02:48:35 aki: We acknowledge the environments in which the APIs got implemented. 02:48:53 q+ 02:49:00 Andreu: I'm looking at the spec that has wording around "legacy reasons" to behave differently. 02:49:23 ... Such exceptions should not happen with newer runtimes. 02:49:32 ack michaelficarra 02:49:42 gorohash has joined #wintertc 02:50:02 michaelficarra: I like that you have conformance levels. Have you considered even more restricted ones such as compute-only? 02:50:16 Andreu: At some point, that might overlap with TC33. 02:50:28 ... Targeted at embed use cases (e.g., no event loop). 02:50:42 s/TC33/TC53 02:50:58 ... It's possible that there may be environments where it does not make sense to have fetch or setTimeout. 02:51:27 michaelficarra: I personally disagree but maybe we can sort this out later on. 02:52:13 Andreu: It's possible that the minimum Common API is too large for what should be the minimum. 02:52:28 ... There might be good arguments to reducing that. 02:52:32 ack kadirtopal 02:52:57 kadirtopal: Can we talk a bit about the audience? Implementors? Dev? 02:53:20 Andreu: So far we've been working with implementers mostly. 02:53:32 ... TypeScript definitions that would contain the minimum common API is something that we've been discussing too. 02:53:36 ... So both. 02:53:53 ... We haven't looked too much into this but it's definitely in scope. 02:54:24 kadirtopal: In the WebDX CG, we have created a hierarchy of web-features, with implementation support in browsers, leading to the Baseline statuses. 02:54:36 ... Have you considered leveraging the web-features catalog? 02:54:52 Andreu: I started to look into it. Something that we can discuss. 02:55:07 q+ we also track in browser compat data 02:55:09 kadirtopal: That would be my proposal, that you reuse the same feature IDs to communicate to developers. 02:55:50 ... We have mapped ~500 features in WPT. Goal is to have all features mapped to WPT soon, so you would be able to extract all the tests related to a feature. 02:56:28 michaelficarra: browser compat data also comes to mind as a source of support data 02:56:49 Michael: Wondering about the adopting modern features breakouts. 02:57:02 kadirtopal: Idea is to create a mapping from features to polyfills. 02:57:14 Michael: [missed] 02:57:48 Andreu: So far, we have been working with implementers to make sure that when we publish a yearly snapshot, that will work for them. 02:57:58 ... Polyfills will be useful for older versions. 02:58:33 q? 02:58:56 kadirtopal: Why is it called "Winter"? 02:59:27 Andreu: Acronym for Web-INTEroperable Runtimes. 02:59:38 ... Now snowflake logo. 03:01:13 Michael: Wondering about interoperability for Bun 03:01:31 Andreu: Bun joined one session in WinterCG when we were talking about changes to the Fetch spec. 03:01:50 ... My understanding is that the sessions are at a time when they can join. 03:02:06 Michael: I'm wondering whether they are moving in a direction that could cause interoperability risks. 03:02:23 Andreu: I don't know how much they match the common API. 03:02:47 ... They also do a lot of things that are not web-like. They're probably not too conformant with it but they do have a subset. 03:02:55 ... I haven't looked at this. 03:03:40 ... Ideally, we'd like to have them and work together with them. 03:04:32 Michal: Wondering about JS that can run in both server and client runtimes. More and more, developers span the boundary. Have you discussed that? 03:04:39 Andreu: We have discussed that. 03:05:25 ... My understanding is that there are some minor things in the [missed] that are not compatible with the server use cases, but that is something that we hope we can fix in the future so that we can adopt it. 03:06:16 ... Re. Socket API, there have been attempts in WICG for TCP/UDP API that wouldn't be exposed to web runtimes directly. We're trying to align and collaborate. 03:06:48 Michal: One specific point is serialization when calling server functions. That's happening at the application layer. Wondering whether that's in scope? 03:07:06 Andreu: Not something that we're focusing on but interesting use case. I do want to move in that general direction. 03:07:29 Michal: Some client APIs that only make sense in the context of communicating with servers. 03:07:39 Andreu: So far, we haven't been looking into that. 03:07:46 ... But interesting. 03:08:06 ... We haven't looked at the communication between client and server. 03:08:32 Andreu: Thanks everyone for joining! 03:08:49 [session adjourned] 03:08:53 RRSAgent, draft minutes 03:08:55 I have made the request to generate https://www.w3.org/2025/11/12-wintertc-minutes.html tidoust 03:09:49 RRSAgent, bye 03:09:49 I see no action items