Skip to content
This repository has been archived by the owner on Mar 31, 2018. It is now read-only.

Promises Working Group, Call For Contributors #1

Closed
benjamingr opened this issue Feb 15, 2016 · 40 comments
Closed

Promises Working Group, Call For Contributors #1

benjamingr opened this issue Feb 15, 2016 · 40 comments

Comments

@benjamingr
Copy link
Member

The recent issues raised in nodejs/node#5020 nodejs/post-mortem#16 groundwater/nodejs-symposiums#5 and groundwater/nodejs-symposiums#6 have shown that we still have a lot of ground to cover in terms of how promises interact with NodeJS.

Currently discussion is a little disorganized, a lot of discussion is happening and a lot of discussion should still happen.

There are a lot of open issues that would be in scope like:

  • How can debugging be made easier in Node for promise users.
  • Post mortem debugging with promises.
  • Promise cancellation and how APIs would interact with it when it lands.
  • How async/await support would look like.
  • How promise APIs would look like in core.
  • Documentation of V8's implementation, what hooks it provides and how to work with it.
  • How to make sure promises don't get in the way of callback users with core support.
  • How/if to get AsyncWrap to work with promises.
  • General group to deal with promise related bugs.

These issues all need to be discussed at depth. We need to document them, create a knowledge base and seek good solutions. The WG would operate under the TSC.

I'd love to see people step up and participate. In particular I'd love to see the following people in the WG. I'm looking for more community involvement so please feel free to suggest yourself for the WG:

@benjamingr benjamingr changed the title Promises Working Group, call for contributors Promises Working Group, Call For Contributors Feb 15, 2016
@jasnell
Copy link
Member

jasnell commented Feb 15, 2016

Operating under the TSC seems unnecessary. I would make this a normal WG under core (CTC).

@benjamingr
Copy link
Member Author

Noted, makes sense.

@bnoordhuis
Copy link
Member

I'm happy to provide input every now and again but I don't really have time to sit on another WG. Feel free to pull me into (online) technical discussions.

@vkurchatkin
Copy link

I'm in!

@trevnorris
Copy link

sure

@chrisdickinson
Copy link
Contributor

I would be happy to facilitate this group.

I would recommend that we define the lifecycle of this WG: the first stage should be focused on the nodejs/node#5020 PR, and making sure it's in a shape that we're comfortable landing it flagged. This means that we'll be doing some triage — seeking consensus on which issues to defer resolving until the PR is landed, and which need addressed immediately.

The second stage of this WG's lifecycle should be making sure that all issues that come up during flagging (and all issues deferred to flagging) are addressed. The second stage should be focused on developing a "go / no go" check that is acceptable to all involved, so that we know whether or not the feature is ready to be unflagged.

The third stage of this WG will be advisory — once the the Promises API is unflagged, this WG should serve in an advisory capacity for Promise-related issues and features for Node core.

Does this sound acceptable?

@chrisdickinson
Copy link
Contributor

/cc'ing @misterdjules on this.

@petkaantonov
Copy link
Contributor

Chris, sounds good to me

@benjamingr
Copy link
Member Author

@trevnorris @vkurchatkin that's great news, thanks!


That sounds good to me @chrisdickinson 👍

I just want to make sure that we do not neglect issues related to async/await in Node, cancellation when it comes in v8, how to deal with asyncwrap and other issues.

What do you think about moving the issues regarding the recovery object API to this repo? (I don't have a strong opinion about it).

@misterdjules @groundwater please do come by and participate.

@kriskowal
Copy link

I am available to answer questions, share opinions, and review code. I may be able to attend a face to face very occasionally. I can commit to turn-around times on the order of a week, but not on the order of a day. I do not wish to impede progress, so I would ask this WG not to block on my contributions.

It may be good to include @Raynos to keep this WG honest about ensuring that promises are an opt-in affordance.

@benjamingr
Copy link
Member Author

@kriskowal working groups do not block on the contributions of a single member. I would love to have you around as the author of one of the fathers of JS promises and a very insightful individual on the topic.

Being a part of the WG means you will get pinged occasionally on issues related to promises and invited to participate in conversations. It does not require you to make any long term time commitment but you are expected to be available every now and then.

@Raynos has not shown an interest in the past and I'm afraid he would not be interested in looking for ways to improve promises support. I'll be sure to ping him on issues though. (Of course, if he comes by and expresses direct interest to contribute time and effort it changes everything).

@phpnode
Copy link

phpnode commented Feb 15, 2016

Agree about including @Raynos if he has the desire/availability, it is better to consider the kinds of concerns he has now rather than agreeing something here, only to have it cause problems later.

@kriskowal
Copy link

@benjamingr As such, consider me a participant. Hope to help.

@chrisdickinson
Copy link
Contributor

As a heads up for participants, I do not expect that this WG will hold regular face-to-face meetings. I will instead focus on setting up an IRC channel for ad-hoc communication that doesn't need to be recorded in-issue.

@chrisdickinson
Copy link
Contributor

/cc @DonutEspresso

@benjamingr
Copy link
Member Author

Yes +1 for no regular face-to-face meetings at least until we have a very convinging reason to hold them. IRC (or slack) sounds entirely reasonable.

@MadaraUchiha
Copy link

Count me in (should you take me), I'm probably not half as knowledgeable as most people in this group, but I think I might know enough to not make a complete fool of myself.

@omsmith
Copy link

omsmith commented Feb 15, 2016

@benjamingr Would like to throw my hat in the ring here - will follow the discussion either way.

@thefourtheye
Copy link

I would love to be a part of this. Thanks @benjamingr for the mention :-)

@balupton
Copy link

I would recommend that we define the lifecycle of this WG: the first stage should be focused on the nodejs/node#5020 PR, and making sure it's in a shape that we're comfortable landing it flagged.

I'm not sure what this actually means. The discussions within 5020 has become a conglomeration of various proposals and concerns, all of which seems to be in a state of flux. So either there exists some hidden consensus of what is going to be merged, or there is no consensus yet. Either way it needs to actually be defined what this first stage is, and what the proposed changes or various proposals with their differing support, actually and currently, are - as otherwise it is impossible to follow for someone without the ability to keep up to date daily.

For instance, just with the concern "How promise APIs would look like in core", even inside the PR there seems to be no consensus. I've created #16 to create some refuge in trying to keep up to date with that topic alone.

The ideal for dealing with this seems to be breaking out each different issue/concern that was raised into its own thread on this repo, then perhaps with sub/linked threads for each of the proposals for each concern, so one can adequately mark the support for each proposal and concern, along with each stage it is for. As otherwise, the knowledge of what is actually going on, could remain inaccessible to those not keeping up to date every day.

I also get that this confusion is also exactly what this WG is meant to fix 👍 so sorry if this post is just some noise, but seems like it had not yet been raised publicly yet. If this is the aim, perfect.


Participation We are currently looking for more participants in the working group - see #1

For the WG, is it necessary to be part of the WG before adding to the discussion? Who is the WG open to? Are long-term or prominent module authors also possible candidates, or is it limited to node core contributors?

@tjwebb
Copy link

tjwebb commented Feb 16, 2016

Hey guys, I'm interested in helping out. Any guidance on how much time per week I should expect to devote to the group?

@chrisdickinson
Copy link
Contributor

@balupton: While the conversation has gone on for a bit, for the most part the strategy and implementation proposed have not changed. We may nix the commit introducing the recovery object, but otherwise what's proposed has been stable for a week or two. The parts in flux are the conversations around how to address the concerns of users that wish to avoid exceptional error handling in async/await programs, and how to address the concerns of post-mortem users. The proposal right now is in line with what's described in this post.

@chrisdickinson
Copy link
Contributor

@balupton: I've updated #16 to reflect the current status of the proposal, and will keep that updated as time goes on.

@chrisdickinson
Copy link
Contributor

Re: Joining the discussion — no need to be an official part of the WG. Once the WG reaches stage 2, members may begin to receive emails about issues @-mentioning the Promises WG, but until that point the WG mostly exists to curate, advocate, and facilitate the promises discussion in this repo (and in the pull request on GitHub.)

@jorgebay
Copy link

I would be glad to join as community member of the WG!

@phpnode
Copy link

phpnode commented Feb 16, 2016

I'm happy to participate. It would be good to get a slack, gitter or IRC room set up.

@balupton
Copy link

but until that point the WG mostly exists to curate, advocate, and facilitate the promises discussion in this repo (and in the pull request on GitHub.)

I'm happy to participate. My usage of node necessitates my understanding of this. So happy to help with those tasks.

@jasnell
Copy link
Member

jasnell commented Feb 16, 2016

I'm not putting my name in for the WG but I do intend on participating in the discussion as time allows.

@rkotangoor
Copy link

Looking forward to participate, I recently started using promises and want to learn more in depth.

@vramana
Copy link

vramana commented Feb 16, 2016

I am also looking forward to participate here.

@Fishrock123
Copy link

I'll have input from time to time but I simply don't have the time/energy to fully participate.

@DonutEspresso
Copy link

I'm happy to be a peripheral observer - will provide feedback and perspective as needed.

@misterdjules
Copy link

@benjamingr @chrisdickinson

Thank you for the mention. What participation is required from a member of this WG? For instance, will there be periodic meetings?

I'm currently focused on trying to help the project better understand the impact of https://github.com/nodejs/node#5020 on post-mortem debugging users, and find a technical solution if some problems are identified.

I won't have time to be involved in anything that does not involve post-mortem debugging, so I'm not sure if I need to be formally part of this working group. I will however be happy to provide feedback and help whenever requested.

@williamkapke
Copy link

Great to see all of this discussion. I definitely want to contribute! I have a ton of experience working with Promises in large scale production environments.

Curious, how does this relate to: nodejs/NG#25 ? There seem to be so many places to discuss this topic.

@petkaantonov
Copy link
Contributor

Those threads were created before this WG existed, all promise discussion should happen here now on appropriate issue

@stephenhuh
Copy link

stephenhuh commented Apr 19, 2017

@benjamingr I'd love to help contribute and believe I could help quite a bit. Worked pretty extensively and taught internal teams on Q, Bluebird, and now Axios.

@benjamingr
Copy link
Member Author

@stephenhuh hey, the current work is at nodejs/node#12442 - you're welcome to take a look and review the code. Also, nodejs/CTC#12

@refack
Copy link

refack commented Apr 20, 2017

@stephenhuh hey, the current work is at nodejs/node#12442 - you're welcome to take a look and review the code. Also, nodejs/CTC#12

So are you saying that this WG has concluded it's work?
(cause I'd love to help. I re-wrote and still maintain https://github.com/aheckmann/mpromise, one of the earlier A+ compliant libraries, an unfortunately because of mongoose still one of the most used ones https://npm-stat.com/charts.html?package=mpromise&from=2015-01-01&to=2017-04-20)

@benjamingr
Copy link
Member Author

@refack it is stalled, I don't think it concluded its work until we have promises in core.

It's mostly stalled on v8 work though, you're welcome to participate!

@refack
Copy link

refack commented Apr 20, 2017

It's mostly stalled on v8 work though, you're welcome to participate!

Point me in the right direction, ain't afraid of V8 code ;)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests