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

Add stage 0 proposals #371

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion stage-0-proposals.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@ Stage 0 proposals are either
| [`Symbol.thenable`][symbol-thenable] | Gus Caplan | Jordan Harband<br />Myles Borins | [May 2018][symbol-thenable-notes] |
| [Async Context][async-context] | Chengzhong Wu | Chengzhong Wu | [July 2020][async-context-notes] |
| [String trim characters][string-trim-characters] | Wenlu Wang | Wenlu Wang | |

| [`Array.asyncFrom`][array-async-from] | J. S. Choi | J. S. Choi | |
| [Explicit `this` parameter][explicit-this-param] | Gilbert | HE Shi-Jun | [Feb 2020][explicit-this-param-notes] |
| [`this` argument reflection][this-arg-reflection] | HE Shi-Jun | HE Shi-Jun | [Feb 2020][this-arg-reflection-notes] |
| [Index from end syntax][index-from-end] | HE Shi-Jun | HE Shi-Jun | [Jan 2021][index-from-end-notes] |
| [JSON `\//` hint][json-slashes-hint] | HE Shi-Jun | HE Shi-Jun | |
| [Serializer][serializer] | Jack Works | Jack Works | |
| [Maybe][maybe] | Jiming Yang | Jiming Yang | |

See also the [active proposals](README.md), [stage 1 proposals](stage-1-proposals.md), [finished proposals](finished-proposals.md), and [inactive proposals](inactive-proposals.md) documents.

Expand Down Expand Up @@ -53,3 +59,13 @@ See also the [active proposals](README.md), [stage 1 proposals](stage-1-proposal
[async-context]: https://github.com/legendecas/proposal-async-context
[async-context-notes]: https://github.com/tc39/notes/blob/HEAD/meetings/2020-07/july-23.md#async-context-updates--for-stage-1
[string-trim-characters]: https://github.com/Kingwl/proposal-string-trim-characters
[array-async-from]: https://github.com/js-choi/proposal-array-async-from
[explicit-this-param]: https://github.com/gilbert/es-explicit-this
[explicit-this-param-notes]: https://github.com/tc39/notes/blob/master/meetings/2020-02/february-6.md#syntax-for-explicitly-this-argument-for-stage-1
[this-arg-reflection]: https://github.com/hax/proposal-function-this
[this-arg-reflection-notes]: https://github.com/tc39/notes/blob/master/meetings/2020-02/february-6.md#function-thisargumentexpected-property
[index-from-end]: https://github.com/hax/proposal-index-from-end
[index-from-end-notes]: https://github.com/tc39/notes/blob/master/meetings/2021-01/jan-28.md#index-from-end-syntax
ljharb marked this conversation as resolved.
Show resolved Hide resolved
Comment on lines +63 to +68
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hax, are any/all of these proposals still active?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, at least they are not inactive. :)

And I believe it's helpful to list them here, especially those had been presented but not yet advanced to stage 1 proposals, so others who interest in similar topics could find the precedences and join the work.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If they're planned to come back to committee at some point, it's definitely good to list them here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember previously we use 🚀 to denote whether the champion want to present it in recent meetings, why not use that?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was never for that, it was for “ready to advance”, and we removed that a long time ago.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For stage 0, "ready to advance" seems same as "ready for present". And I found the first commit of this page had it!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure why we remove the "ready" tag. It's useful to know the status, especially now we have tc39/dataset which require more information of proposals.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consensus was that it was often inaccurate, and largely useless since if it’s ready to advance, it would be on an agenda.

[json-slashes-hint]: https://gist.github.com/hax/5691ca8acdf9179e63043857cdc3616b
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has never been placed on an agenda, and isn't a repo.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some other proposals in the table also never on the agenda and no repo?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only proposals that should meet that criteria are the ones that predate the new stage process; if there's any in the last 6 years, please let me know.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems at least URL, deprecated and as proposals are added after new stage process and never on the agenda?

And if repo is required, I'd like to create a repo and copy the gist to it. :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of those were in fact presented.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, you may be right on url and deprecated - i thought at least we’d discussed them, but i can’t find it in the notes. @jasnell?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe they actually came up on the agenda. I'm happy to jump in on the next call to discuss and see if there's interest in moving it forward. I don't have high hopes for deprecated moving forward as it's definitely very nebulous, but I would like to have a good conversation around URL.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, maybe we should move deprecated to inactive and url can go on the next agenda?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good to me

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deprecated moved in 6c6d3ab; i'll leave it to you to add URL to the agenda :-)

[serializer]: https://github.com/Jack-Works/proposal-serializer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has never been placed on an agenda - @Jack-Works, is this something you plan to present?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not yet, because I didn't found a proper way to design this

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in that case, @pd4d10, please remove this one; @Jack-Works can PR it in when they're ready to present it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure presentation plan is the hard requirement. There are some proposals in the table never be presented and obviously have no presentation plan (actually I think some of them are more close to inactive, and it's a separate issue).

One important benefit to list a proposal which already have champion (even the champion may not ready to present) is to increase the visibility of the proposals and could help to collect the feedback.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no hard requirement; as far as I'm aware every single proposal in the table was presented at some point, although some were discussed prior to ES6.

There's not much benefit to collecting feedback from this list on something that hasn't even been presented to the committee - if TC39 doesn't want to spend further time on it, then all feedback is irrelevant. That's what the discourse is for.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps, but if it's never been presented, I'm not sure it matters - and again, that's what the discourse is for.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Collecting feedback is important to the author/champion of the proposals. For example, Jack may meet some problem on some issues of the proposal, but feedback might help to solve the problem.

It's vague to predict whether TC39 want to "spend further time" on anything before presenting or even after presenting, actually many stage 1 proposal (and also the stage 0 proposals already in the page) also have serious issues which seems hard to advance. So IMO the only important criteria is whether it have a champion.

And I don't think discourse is a good place to do continuous work, to me discourse is just a place to gather the ideas and it's very hard to keep watching it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There has to be some filter, or else the stage zero list becomes too long to be useful and maintainable. The criteria we’ve always applied, and I’ll continue to apply, is “presented or on an agenda”.

Copy link
Member

@hax hax Aug 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's definitely useful. Many times I remember I have seen someone wrote the proposal but can't find it, not mention those who never know them. And if we only use a simple criteria (whether it have a champion) there will be no much maintaining work. We could also add action in agenda repo so when new proposal was put in the agenda it could automatically mark it as "ready to present for stage 1" in this page.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a simple criteria that helps filter out all the unpresented ideas that champions have.

[maybe]: https://github.com/futurist/proposal-maybe
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which delegate is the champion of this proposal?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I know, the author himself is the delegate of ByteDance.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@futurist can you confirm if this is something you plan to present?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This proposal had been presented and discussed in previous JSCIG meetings (which have many chinese TC39 delegates and other people in chinese js community), I remember people in the meeting raised some issues which need to do further research and I don't think this proposal is ready to present in TC39 plenary meeting, but it will be very helpful to list it here so more people could see it and give feedbacks.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those meetings aren’t TC39 meetings, however. If you want feedback beyond the discourse and other unofficial mediums, the TC39 plenary is the best place to seek it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How could we collect feedback on TC39 plenary before "ready for present in plenary"?? And not every delegates will participant the plenary, and there are big community never can attend the plenary.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry i wasn’t clear. What i mean is, the most important feedback to get first is consensus for stage 1 from the plenary, because otherwise you might do a bunch of research but still get shot down by a single delegate’s constraints.

The time for broader feedback is stage 1 and 2.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but still get shot down by a single delegate’s constraints.

This is also the case for "ready" stage 0, stage 1 or stage 2 proposals :-P

I feel what u describe is the ideal situation , but for many complex proposals (normally a more useful proposal would be more complex), they need long time to be "ready", so they need broader feedbacks (use cases, design options, and possible "delegate constraints", etc.) even in stage 0.