Skip to content

Pushing this toward completion #25

@domenic

Description

@domenic

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions