-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Session Proposal: Support Cancellation (AbortController) in Node.js core #273
Comments
Note: @littledan pointed out that it would be very useful to have some DOM people in the meeting to provide feedback from that perspective and I agree. If anyone can invite some relvant parties that would be helpful. I forgot to ping a bunch of people who are really smart and have a lot to contribute on the topic - as usual - I hope I am forgiven and they still show up for the session :] |
I'm not sure this project makes sense for season of docs... The focus is
supposed to be technical writing.
…On Sun, May 3, 2020, 10:36 AM Benjamin Gruenbaum ***@***.***> wrote:
Proposal
*Topic of the session* Landing AbortController and probably also
EventTarget in Node Core.
Related to the fetch in core topic from last year (cc @MylesBorins
<https://github.com/MylesBorins> @mcollina <https://github.com/mcollina>)
Related to other parties interested in cancellation or that I recall
having said interesting things to me about it (cc @benlesh
<https://github.com/benlesh> @littledan <https://github.com/littledan>
@jakearchibald <https://github.com/jakearchibald> @devsnek
<https://github.com/devsnek> @ljharb <https://github.com/ljharb> @BridgeAR
<https://github.com/BridgeAR> @nodejs/open-standards @felixfbecker
<https://github.com/felixfbecker> )
*Type of the session*
- Collaborate
- Workshop
- Talk
*Timezone of facilitator* GMT+2 but I will make myself flexible to other
participants.
*Estimated duration of the session* 2 hours
*Follow-up / Set-up sessions (if any)* probably background in
nodejs/node#19393 <nodejs/node#19393>
https://docs.google.com/document/d/1tn_-0S_FG_sla81wFohi8Sc8YI5PJiTopEzSA7UaLKM/edit
and others.
Participants will be able to contribute and we want opinions even if you
were not involved at all until this point.
*Level*
- Beginner
- Intermediate
- Advanced
*Pre-requisite knowledge*
To best collaborate people should be familiar with AbortController
<https://developer.mozilla.org/en-US/docs/Web/API/AbortController>
EventTarget <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget>
and EventEmitter <https://nodejs.org/api/events.html>.
*Describe the session*
Do we want to include AbortController in core? Does that mean we also have
to include EventTarget?
How should core handle cancellation? What should the user stories be?
*Session facilitator(s), Github handle(s) and timezone(s)*
Benjamin Gruenbaum - @benjamingr <https://github.com/benjamingr> - GMT + 2
I am fine with anyone else facilitating this although I am also fine with
facilitating this myself.
I would be happy to attend the promises session
<#272> as well.
*Additional context (optional)*
This section is for contributors handling Collaborator Summit logistics
*Track*
- New Contributor Orientation Track (see #251
<#251>)
- Regular Track
- Cross-Project Track
*Triage*
- Track chosen
- Scheduled
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#273>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADZYVZD7O37JWSAMH3GQYLRPV6QBANCNFSM4MYE2FPA>
.
|
@MylesBorins the focus of the entire collab summit is technical writing? |
I'm a bit confused, the collab summit is the one space we get together and discuss these issues. If there is another more appropriate space or if in particular this year this session isn't a good fit that's fine. Of course: this is a session proposal, I promise to still collaborate in good faith in the project if this session proposal gets rejected though this is like... the one time a year we take part of these |
I think it would be a very bad idea for language-level cancellation (there remains a proposal) if there was further proliferation of cancellation mechanisms in platforms, beyond fetch in browsers. |
Apologies, I looked at this right after waking up and read the repo wrong.
Please ignore my comment
…On Sun, May 3, 2020, 10:46 AM Jordan Harband ***@***.***> wrote:
I think it would be a very bad idea for language-level cancellation (there
remains a proposal) if there was further proliferation of cancellation
mechanisms in platforms, beyond fetch in browsers.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#273 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADZYVYFGK2R74XTDNL22N3RPV7STANCNFSM4MYE2FPA>
.
|
I'll also be there and I'm happy to wear my delegate hat if we can't get one of the champions of that proposal. |
Hi, lately I have been working on a proof of concept of what it would look like for various core APIs to support AbortSignal, over in nodejs/node#31971. I'd be interested in participating in this session. |
@ptomato that's really cool and having you participate would be awesome. Also cc @martinheidegger |
I started making a list (this is a group effort) of differences between EventEmitter and EventTarget :] https://docs.google.com/document/d/1NFARs04-4U_2y6Ssw9Lqu1GMXBUM981-NO9PLJWifTI/edit# Edit: Turns out there was a ton I didn't know about EventTarget that I learned. Super happy with the result and with the contributions. I'm sure there are a lot of things missing so anyone who feels like taking a look that would be appreciated. |
FWIW @jasnell opened nodejs/node#33527 :] |
Hey, just a status update:
The idea is to land a close-to-spec AbortController in core as experimental and play with it. What can you do to help in the meantime?:
This is a good opportunity for people who want to contribute to Node but are not experienced with the code base. EventTarget/Event is one fine (internal/event_target.js), it's entirely in JavaScript and it's isolated (you just |
I propose we rename this to "Support Cancellation (AbortController) in Node.js core". |
@mcollina that sounds good to me, can I go ahead and rename this (governance wise) or since this is already a session proposal is there some other process I should follow? |
Go for it. |
AbortController
in core
Hi @benjamingr - tentatively looking to schedule this session for 10 a.m. GMT-5 on June 25 (8 a.m. GMT-7 for @ptomato, midnight for @martinheidegger, and 5 p.m. GMT+2 for yourself). Can you confirm this works with your availability? Also let me know if there is any other information you'd like to share with participants beyond what you've shared in this issue. |
That time works for me, thanks. I have nothing to add at the moment but I hope to post more progress on this thread and nodejs/node#31971 by the time the session occurs. |
@jorydotcom works for me. Would be great to get a calendar invite so I'm sure I don't mix up timezones with daylight savings time. |
definitely... will send something out after we get the rest of the schedule set. thanks @benjamingr @ptomato |
I will try to attend, midnight bears always the chance of me falling unintentionally asleep. (thanks @jorydotcom for thinking of me) |
Per @benjamingr 's request this session now starts at 10:30 CST - the agenda has been updated as well! |
In preparation for Thursday, I wrote up some thoughts on how cancellation could work with Node.js APIs here: https://gist.github.com/ptomato/10f3d35e6692a7febf917f4ec905dc58 (Other existing reading material is @benjamingr's list of APIs that could use AbortController, from nodejs/node#33528 (comment)) |
Suggested agenda (just a suggestion, I don't feel strongly about this being the only things to discuss). Major themes:
|
can someone elaborate on this comment? AbortController was a reason given to block Promise cancellation in the past, so I'm not confident there's a way to make them compatible - I'm very concerned that spreading AbortController will prevent Promise cancellation from ever becoming a thing. |
@ljharb first of all - take the notes with a grain of salt :] I didn't make an attempt to make an accurate summary since the talks are recorded (I think they will be made available soon'ish), so it makes sense the notes aren't great (sorry!) Basically I raised compatibility with future TC39 work as a concern and I think @littledan mentioned that when the current proposal was discussed in TC39 and compatibility with AbortController cancellation was a requirement. I mentioned the fact that a future proposal might be incompatible with AbortController even though TC39 made it a prerequisite for the current proposal and asked if anyone is concerned by that and the people in the meeting were not since AbortController is already a DOM API (so we are not inventing new problems).
I thought TC39 shut down promise cancellation because of "action at a distance" concerns ~3-4 years ago. I would be very interested in knowing if that decision has changed since I am personally in favor of exploring that direction again and seeing if it can be done safely. The reason |
As far as I recall, Promise cancellation wasn't "shut down" in TC39 at all, the proposal was withdrawn, and fetch got AbortController instead. |
@ljharb that comment was about the cancellation protocol proposal, not promise cancellation. |
@benjamingr do you recall if this session was recorded? |
@jorydotcom this session was recorded through Zoom (cloud). I think you sent the wrong notes (these are the CI stability room notes), the right document is likely this one ? |
ah thank you @benjamingr, sorry about that. fixed. |
Closing this issue as no further action is needed. |
Proposal
Topic of the session Landing AbortController and probably also EventTarget in Node Core.
Related to the fetch in core topic from last year (cc @MylesBorins @mcollina)
Related to other parties interested in cancellation or that I recall having said interesting things to me about it (cc @benlesh @littledan @jakearchibald @devsnek @ljharb @BridgeAR @nodejs/open-standards @felixfbecker )
Type of the session
Timezone of facilitator GMT+2 but I will make myself flexible to other participants.
Estimated duration of the session 2 hours
Follow-up / Set-up sessions (if any) probably background in nodejs/node#19393 https://docs.google.com/document/d/1tn_-0S_FG_sla81wFohi8Sc8YI5PJiTopEzSA7UaLKM/edit and others.
Participants will be able to contribute and we want opinions even if you were not involved at all until this point.
Level
Pre-requisite knowledge
To best collaborate people should be familiar with AbortController EventTarget and EventEmitter.
Describe the session
Do we want to include AbortController in core? Does that mean we also have to include EventTarget?
How should core handle cancellation? What should the user stories be?
Session facilitator(s), Github handle(s) and timezone(s)
Benjamin Gruenbaum - @benjamingr - GMT + 2
I am fine with anyone else facilitating this although I am also fine with facilitating this myself.
I would be happy to attend the promises session as well.
Additional context (optional)
This section is for contributors handling Collaborator Summit logistics
Track
Triage
The text was updated successfully, but these errors were encountered: