Skip to content
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

Pushing this toward completion #25

Open
1 of 10 tasks
domenic opened this issue Oct 20, 2013 · 6 comments
Open
1 of 10 tasks

Pushing this toward completion #25

domenic opened this issue Oct 20, 2013 · 6 comments

Comments

@domenic
Copy link
Member

domenic commented Oct 20, 2013

I'd love to push this spec to completion, and make it our second official A+ spec. But I am caught up in working on the ES6 promises spec, and other things, so I thought I'd outline what we need to do, and see if anyone else wants to take up the effort.

Why We Want to Publish This

  • On a practical level: there are many use cases, e.g. when building utility libraries, where you want to take in a promise but then produce a new promise of the same type. Standardizing a constructor that can be accessed via promiseInstance.constructor will help such libraries. See e.g. discovery of resolver #5 (comment)
  • Multiple competing promise implementations, which interoperate in small key ways, is still a worthy goal IMO, even with native promises coming.
  • The A+ style of giving requirements, not algorithmic steps, is a nice way of allowing innovation while also giving a level of interoperability. I would like to continue the A+ experiment of creating such specs and unleashing them on the promise implementer community.
  • The test suites accompanying this effort would help bring harmony to various implementations, and would be a useful contribution to the ES6 test-262 suite.
  • It will allow promises-tests to be revised to use the constructor pattern, instead of the deferred adapter pattern it currently uses, and will provide a basis for future test suites.

To Do

  • Start with Strawman: Promise Creation API/D #18, but it probably needs some updates, e.g. read the comments
  • Check against the ES6 promises spec's constructor to see if there's any further restrictions or tricks you want to borrow.
  • Move the text into README.md
  • Close all old issues to allow the issues board to be used for ones relating to the spec text under discussion
  • Rename this repo to constructor-spec
  • Create a test suite (as a constructor-tests repo)
  • Add CC0 COPYING.txt and public domain stamp
  • Add an intro paragraph and all other appropriate trappings
  • Create a gh-pages branch that is pretty like promisesaplus.com
  • Make constructor.promisesaplus.com point to that gh-pages

Who Will Do This?

I talked with @stefanpenner offline about working on this. I think @briancavalier has expressed interest. I know @ForbesLindesay has been active in discussions in this repo. It could be anyone, though! It could be a team effort, but probably one person will need to feel "responsible"; any volunteers?

I can contribute by commenting, discussing over IM, and code-reviewing/spec reviewing. I can't commit to spending actual spec-writing time though, which is why I'm putting out this call.

@juandopazo
Copy link

Shouldn't we just follow ES6? At least that's my plan.

@domenic
Copy link
Member Author

domenic commented Oct 20, 2013

ES6 contains semantics which are not possible in ES5, e.g. @@create. And I think I listed a few reasons under "Why We Want to Publish This" that explain why it'd be worthwhile to drive this effort forward in parallel with ES6.

We certainly would want the ES6 Promise constructor to be A+ compliant, though. Or, stated another way, we would not want to add requirements to A+ that are incompatible with the ES6 Promise constructor.

@briancavalier
Copy link
Member

As you've probably guessed, I've been up to my eyeballs with other things for a while now, and haven't been able to contribute as much. That trend seems likely to continue, at least for the near future. So, like @domenic, I can probably comment on issues, review, etc, but I can't commit to more than that right now.

@edef1c
Copy link

edef1c commented Jul 13, 2014

…can we get this to finally happen? @domenic

@domenic
Copy link
Member Author

domenic commented Jul 14, 2014

@nathan7 we're waiting for a volunteer. Is that you?

@edef1c
Copy link

edef1c commented Jul 16, 2014

@domenic Sure thing, I'm not very experienced with writing spec-style stuff. I might put some work into this coming week.

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

No branches or pull requests

4 participants