Tracking proposals should be standardized with issues

# Renki Ivanko (3 years ago)

The issue tracker should have a labeled issue matching every proposal, so that it's possible to look through previous proposals and track their status, instead of just manually compiled lists of current proposals. Older proposals can essentially only be found by stumbling upon them, and their status/resolution needs to be pieced together by googling for clues in this list or in meeting notes, and it leads to confusion and duplicate or incomplete proposals and efforts.

It would also be worthwhile to organize more general design ideas into issues that could be referenced by specific proposals. For example, I'm interested in the iterator prototype method idea, but I'm unsure if they're still planned, or if the consensus has shifted away from them for some reason.

# Brandon Andrews (3 years ago)

For those not aware of the "currently compiled list" he's referring to this tc39/ecma262 It has no clear history other than viewing the change log.

I agree. Ideally every link on that page should link to an issue that tracks the information. This would allow for much cleaner archival of proposals. People just need to be clear that each proposal issue is for status purposes only. The issue for each proposal could contain a link to the proposal's github repo where the mailing list and issues could be found.

It would also be worthwhile to organize more general design ideas into issues that could be referenced by specific proposals.

The thinking right now seems to be that people creating proposals should reference mailing list discussions directly. Creating issues would just mean people would be referencing an issue which then references mailing list threads. I do see the the usefulness though. Currently there are probably over 10 threads for null coalescing operators under multiple names. The mailing list has no method for marking duplicates so the posts generally just reference each other. I posted about this months ago, but I don't think there's any interest in simplifying this.

In theory under the current system you should create a proposal then get it to stage 0 then everyone would reference the proposal which would then reference the full list of discussions. That is general design ideas really just need a stage 0 proposal.

# Isiah Meadows (3 years ago)

Here's my concerns:

  1. People are going to blow up the issues they like, instead of either creating issues in those related repos or finding more appropriate channels for them.
  2. People are going to start filling issues for whatever proposal they came up with, without really deliberating over it, and without bringing it up on es-discuss at all. This will lead to way more to sift through than what should be necessary.
  3. Making proposals as simple as creating an issue (at least from the casual observer's perspective) will lead into a lot of "this is a good idea" strawmen of likely very low quality. The higher barrier of entry helps filter most of that out other than here in the mailing list.
# Jordan Harband (3 years ago)

New proposals should be a repo. Any discussion or changes in the proposal should be centered in that repo. Those repos will be transferred to the TC39 org once they hit stage 1. That repo should include links to any relevant es-discuss threads.

Old proposals may be mired in legacy wikis and es-discuss threads, but new ones shouldn't be.

# Andrea Giammarchi (3 years ago)

I understand, and mostly agree, with Isiah's concerns but, about this:

The higher barrier of entry helps filter most of that out other than here

in the mailing list...

I haven't seen many proposals actually born in the ML, I've rather seen tons of proposals discussed offline and/or suddenly part of some repo/site/post/strawman.

I've also seen that most accepted proposals are from people that comes from "considered more relevant" companies, with few exceptions that came out of Rick's or Yehuda's effort.

The "filter" idea is absolutely a valid concern but I wish there was more effort in considering the "daily-community" too (those GitHub reactions might be worth something, after all)

Best

# G. Kay Lee (3 years ago)

I haven't seen many proposals actually born in the ML, I've rather seen

tons of proposals discussed offline and/or suddenly part of some repo/site/post/strawman.

Yes you are so right. Just a few hours ago we have yet another new stage 0 proposal popping up out of nowhere, never have seen it being discussed or even mentioned here on the mailing list.

I guess... if I am really, seriously trying to propose and get something into the standardization process, I might as well just try drafting up something privately then go lobbying some TC39 members on Twitter without ever bringing things to light and discussions on this mailing list. The thing is - your probability of getting some real feedbacks from TC39 members is way higher if you go talk to them in person. On the list, however, they just chime in from time to time occasionally, but if they are to help things to progress further, it wouldn't be here. Fancy stage 0 proposals sometimes with alien concepts are popping up in real quick speed now, but some long-time pain-in-the-ass like ?? / ?: / ?= / whatever variant are just scattering around here in the list across a dozen of threads with no one in power willing to take a real initiative.

Apparently this is really bad and contributes to a false image that only those who are "friends" or close to TC39 members could have a chance to take a shot.

# G. Kay Lee (3 years ago)

So I just took some time to look into existing contribution rules (1 / 2) and it appears that TC39 members can come up with stage 0 proposals at will, while outside contributors need to go through the additional process of:

Posting the proposal to es-discuss => Receive favorable feedbacks => Find a

TC39 member to back it up

Unfortunately, the latest stage 0 proposal (Object enumerables), which is an outside contribution (in the list the column header says "champion" while some people listed are not TC39 members; I believe it was trying to say "proposers"), doesn't really seem to follow this process; compare this to the recent operator overloading proposal PR (3 / 4).

All these subtle hints that it's far easier to make things happen by taking the discussion "off the table" is just... bad. Really bad.

IMHO, in no time, we'll see a giant influx of stage 0 proposals being established without ever consulting this very discussion list. These proposals will be from authors of frameworks and libraries, and will be something that largely only to serve their projects' own interests, so that they can propagandize to their users that "blah-blah-blah is now a stage 0 proposal and you can start using it in Babel TODAY!" and make an impression to the JS community that their creations are something new and trendy and of the current state-of-the-art.

# Domenic Denicola (3 years ago)

From: es-discuss [mailto:es-discuss-bounces at mozilla.org] On Behalf Of G. Kay Lee

Unfortunately, the latest stage 0 proposal (Object enumerables), which is an outside contribution (in the list the column header says "champion" while some people listed are not TC39 members; I believe it was trying to say "proposers"), doesn't really seem to follow this process;

This is incorrect. Leo Balter is employed by Bocoup, a TC39 member. John-David Dalton is employed by Microsoft, another TC39 member. Both are champions, not "proposers".

# G. Kay Lee (3 years ago)

Sorry but this is confusing. So any employee of TC39 member organizations can be a champion?

# Jordan Harband (3 years ago)

Yes, any employee of TC39 member organizations is also a member, and can participate on behalf of their company.

# Renki Ivanko (3 years ago)

Turned out there's a recently created file for documenting past proposals; linking for completeness: tc39/ecma262/blob/master/withdrawn-proposals.md

# Allen Wirfs-Brock (3 years ago)

On May 12, 2016, at 1:01 AM, Jordan Harband <ljharb at gmail.com> wrote:

Yes, any employee of TC39 member organizations is also a member, and can participate on behalf of their company.

Note that it is really up to the member organization to decide. A member organization could be more restrictive about which of its employees can participate. Employee’s of member organizations who are not already actively participating within TC39 should probably notify their organization's designated Ecma representative (their “GA representative”) that they want to become a TC39 delegate.

It probably would be helpful if we maintained on github the list of active member organizations and their GA representatives.

# Rick Waldron (3 years ago)

Clarification: Bocoup is not a member of Ecma. Leo, Yehuda and I are representatives for jQuery Foundation, which is a member.

# G. Kay Lee (3 years ago)

Okay, I found a list of TC39 member organizations... it's hidden in some really obscure corner on the website and there's no way to tell if it's up-to-date, but still a nice reference to have. +1 for putting this info onto GitHub with additional info of regular representatives.

I still believe that there is something wrong with the current way we're treating proposals from members and non-members. According to the TC39 process per se, a stage 0 proposal really means nothing serious... It's essentially just a physical parallel of opening a thread on an internet forum/ML so further discussions and debates can start to happen, during the TC39 meetings in this case. A stage 0 "thread" can still die quick due to a lack of responses and interests.

But a lot of non-member contributions were denied of this basic opportunity to "post a thread" - certainly, they can post here on the ML, but the ML is hardly a suitable medium to collaborate and push things forward. The pipe operator proposal has garnered a lot of attentions and interests, with heated discussions happening here as well as across other places, but eventually just died down when people found out that they couldn't even get a simple yes-or-no-for-stage-0 from any TC39 representative after one month of time. And remember that stage 0 simply means starting discussions in a more formal physical setting.

Why not just allow proposers to chime in remotely during a TC39 meeting with their proposals? This helps the whole standardization effort by:

  • Allowing every proposal an equal opportunity to be scrutinized and discussed, with clear and organized feedbacks from member representatives on why or why not the proposal in question can be considered.

  • Reducing the chaos on the ML that similar or even identical proposals repeatedly being raised from their graves over the years because of the lack of conclusive verdict from representatives, or that the verdict is being buried somewhere in the deep abyss of piles of discussions.

  • Make things more open and equal and united; proposals should be treated and reacted upon solely by its quality and content, not by the employer of the proposer. It's certainly not of the best interests for the language if we divide people into major and minor leagues by their employment.

To counter the potential influx of proposals, we can and maybe should add additional rules for stage 0 proposals, for example:

  • A stage 0 proposal MUST be presented by its proposer - either physically or remotely - to TC39 meetings 6 months within its acceptance into stage 0, or it will be automatically rejected.

This will also give people a more concrete impression that all stage-0s are just nothing more than some "ideas", are subjected to total overhaul or even being nullified, and that they shouldn't really enable the stage-0 preset in Babel all over the place. The general impression is that stage-0s, while may be sitting there for an indefinite amount of time, will most likely make ways into the standard eventually, so people are becoming reckless with stage-0 syntaxes or additions. A rule like that can certainly make both proposers and transpiler users be more careful and responsible for their works.

# Bob Myers (3 years ago)

As a non-member potential proposer, I'd strongly second this motion.

Based on the following:

Ideas for evolving the ECMAScript language are accepted in any form. Any discussion, idea or proposal for a change or addition which has not been submitted as a formal proposal is considered to be a “strawman” (stage 0) and has no acceptance requirements. Such submissions must either come from members of TC39 or from non-members who have registered via Ecma International.

from tc39.github.io/process-document, after registering, I submitted a pull request at tc39/ecma262#449, which was politely rejected by @michaelficarra with the note that I needed a champion and the process document was out of date.

My proposal, called extended pick notation (see rtm/js-pick-notation) is, IMHO, well above average in terms of having a fleshed-out proposal and a POC implementation in sweet. Without rehashing the details and the motivation, it's a feature which quite a few people have requested in one form or another, has limited syntactic footprint, and has generated a fair amount of feedback on the ML. It would nice if I could find a champion but that hasn't happened yet.

Bob

# Allen Wirfs-Brock (3 years ago)

On May 12, 2016, at 9:25 PM, G. Kay Lee <balancetraveller+es-discuss at gmail.com> wrote:

Okay, I found a list of TC39 member organizations. www.ecma-international.org/memento/TC39-RF-TG - members.htm)... it's hidden in some really obscure corner on the website and there's no way to tell if it's up-to-date, but still a nice reference to have. +1 for putting this info onto GitHub with additional info of regular representatives.

the complete Ecma “memento” (www.ecma-international.org/news/Ecma International has published its annual yearbook Ecma Memento 2016.htm, www.ecma-international.org/news/Ecma International has published its annual yearbook Ecma Memento 2016.htm ) is updated every January.

I believe the page you reference is updated whenever a new organization signs the TC39-RFTG registration form.

I still believe that there is something wrong with the current way we're treating proposals from members and non-members. According to the [TC39 process](tc39.github.io/process-document, tc39.github.io/process-document) per se, a stage 0 proposal really means nothing serious... It's essentially just a physical parallel of opening a thread on an internet forum/ML so further discussions and debates can start to happen, during the TC39 meetings in this case. A stage 0 "thread" can still die quick due to a lack of responses and interests.

All proposals that are officially considered by TC39 have to have been submitted in conformance with the Ecma IPR policies including the RF patent policy and the software copyright policy. See www.ecma-international.org/memento/Ecma IPR policies.htm, www.ecma-international.org/memento/Ecma IPR policies.htm and tc39/ecma262/blob/master/CONTRIBUTING.md, tc39/ecma262/blob/master/CONTRIBUTING.md

Basically, anything that amounts to a proposal and is stored on the TC39 github project or discussed at a TC39 meeting has to be contributed under those terms.

But a lot of non-member contributions were denied of this basic opportunity to "post a thread" - certainly, they can post here on the ML, but the ML is hardly a suitable medium to collaborate and push things forward. The [pipe operator proposal](mindeavor/es-pipeline-operator, mindeavor/es-pipeline-operator) has garnered a lot of attentions and interests, with heated discussions happening here as well as across other places, but eventually just died down when people found out that they couldn't even get a simple yes-or-no-for-stage-0 from any TC39 representative [after one month](esdiscuss.org/topic/the-pipeline-operator-making-multiple-function-calls-look-great, esdiscuss.org/topic/the-pipeline-operator-making-multiple-function-calls-look-great) of time. And remember that stage 0 simply means starting discussions in a more formal physical setting.

A TC39 member champion is necessary for a proposal in order to get items on meeting agendas and to lead meeting discussions relating to the proposal. If no member delegate is interested enough in a proposal to champion it then that proposal just isn’t going to get any traction within TC39.

Why not just allow proposers to chime in remotely during a TC39 meeting with their proposals? This helps the whole standardization effort by:

Because Ecma TC39 is a member-based Standards Defining Organization that operates under rules established by the Ecma General Assembly. Some of the most important of those rules related to the IPR policies and require that non-member contributors follow certain steps. (Note that Ecma calls proposals and other technical documents “contributions”. This is a reflection that those documents be being “contributed" to Ecma and the certain IP rights are transferred in the process).

  • Allowing every proposal an equal opportunity to be scrutinized and discussed, with clear and organized feedbacks from member representatives on why or why not the proposal in question can be considered.

  • Reducing the chaos on the ML that similar or even identical proposals repeatedly being raised from their graves over the years because of the lack of conclusive verdict from representatives, or that the verdict is being buried somewhere in the deep abyss of piles of discussions.

I agree that TC39 could do a better job at providing an in-take process. For example, it could have a “Request for consideration” channel and a regular agenda item to solicit members who may have an interest in championing such requests.

But setting that up requires some TC39 member(s) who are interested in championing that process change and managing it going forward.

  • Make things more open and equal and united; proposals should be treated and reacted upon solely by its quality and content, not by the employer of the proposer. It's certainly not of the best interests for the language if we divide people into major and minor leagues by their employment.

Again, Ecma TC39 is a formal organization. Not just an ad hoc group of participants. It must operate under rules established by Ecma. Part of those rules is that Ecma member have a different status than non-members. TC39 members have worked hard over the years to stretch those rules in ways that permit both transparancy and progressively increasing non-member participation.

To counter the potential influx of proposals, we can and maybe should add additional rules for stage 0 proposals, for example:

  • A stage 0 proposal MUST be presented by its proposer - either physically or remotely - to TC39 meetings 6 months within its acceptance into stage 0, or it will be automatically rejected.

This will also give people a more concrete impression that all stage-0s are just nothing more than some "ideas", are subjected to total overhaul or even being nullified, and that they shouldn't really enable the stage-0 preset in Babel all over the place. The general impression is that stage-0s, while may be sitting there for an indefinite amount of time, will most likely make ways into the standard eventually, so people are becoming reckless with stage-0 syntaxes or additions. A rule like that can certainly make both proposers and transpiler users be more careful and responsible for their works.

Ultimately, such process issues will have to be decided by TC39. But, as mentioned above, this require some members to actually champion the process changes within TC39 and follow through with implementing any consensus that is reached. If there are TC39 delegate who are interested in this they should start by placing a process proposal on a meeting agenda or by starting a discussion on the internal ML that goes to all mbers.

# Bob Myers (3 years ago)

This entire process is quite unfriendly to grassroots proposals and I hope it can be tweaked.

All proposals that are officially considered by TC39 have to have been submitted in conformance with the Ecma IPR policies including the RF patent policy and the software copyright policy.

Is putting a proposal into the stage 0 list, so people can see it, considered to be "officially considered by TC39"? In any case, there is already a mechanism in place (registration) for anyone to agree to the IPR policies.

A TC39 member champion is necessary for a proposal in order to get items on meeting agendas and to lead meeting discussions relating to the proposal.

Fine, but before we get to meetings and agendas we are talking about just putting a proposal on the list of stage 0 proposals so it's on the radar.

The CONTRIBUTING.md file you reference explicitly states (my emphasis):

Ecma TC39 accepts contributions from non-member individuals who have accepted the TC39 copyright and patent policies.

This seems to be in conflict with what I understand you are saying. Is it wrong? If so, can someone fix it?

But then later in the document it says

convince others that your proposal is a useful addition to the language and recruit TC39 members

and

If you have a new proposal you want to get into the language, you first need a TC39 champion

Is there a distinction here between a "contribution" and a "proposal"?

Then in tc39.github.io/process-document, it says that there is a "strawman" stage 0 and lists the "Entrance Requirements" as "none". In the same document, it says

Ideas for evolving the ECMAScript language are accepted in any form. Any discussion, idea or proposal for a change or addition which has not been submitted as a formal proposal is considered to be a “strawman” (stage 0) and has no acceptance requirements. Such submissions must either come from members of TC39 or from non-members who have registered via Ecma International.

Is this incorrect? If so, it should be fixed.

I agree that TC39 could do a better job at providing an in-take process. For example, it could have a “Request for consideration” channel and a regular agenda item to solicit members who may have an interest in championing such requests. But setting that up requires some TC39 member(s) who are interested in championing that process change and managing it going forward.

Hmmm, a champion for a process to find champions? One idea that springs to mind is to have a forward-looking TC39 member agree to serve as interim champion for grassroots proposals from non-insiders, although they would need to be able to reject extremely poor proposals.

By the way, the current stage 0 list at tc39/proposals/blob/master/stage-0-proposals.md starts off by saying that "Stage 0 proposals have been presented to the committee", but then includes proposals with the rocket ship icon which are "as not yet presented to the committee". Which is it? Are stage 0 proposals supposed to be presented to the committee to acquire that status, or not, or it varies? It's also worth noting that a number of these stage 0 proposals are very old, and/or their docs indicate they have been superseded, or in one case have no link to anything, Is there any process for removing things from the stage 0 list? In other words, is it as hard to get off the list as to get on it?

My two cents.

-- Bob

On Fri, May 13, 2016 at 11:48 PM, Allen Wirfs-Brock <allen at wirfs-brock.com>

wrote:

# Allen Wirfs-Brock (3 years ago)

On May 13, 2016, at 10:02 PM, Bob Myers <rtm at gol.com> wrote:

This entire process is quite unfriendly to grassroots proposals and I hope it can be tweaked.

All proposals that are officially considered by TC39 have to have been submitted in conformance with the Ecma IPR policies including the RF patent policy and the software copyright policy.

Is putting a proposal into the stage 0 list, so people can see it, considered to be "officially considered by TC39"? There is already a mechanism in place (registration) for anyone to agree to the IPR policies.

Yes. More generally anything that is hosted within the TC39 github site (with the exception of issues and pending pull requests) is a contribution subject to the IPR policies. In order for a pull request to be accepted it has to conform to the policies.

A TC39 member champion is necessary for a proposal in order to get items on meeting agendas and to lead meeting discussions relating to the proposal.

Fine, but before we get to meetings and agendas we are talking about just putting a proposal on the list of stage 0 proposals so it's on the radar.

The CONTRIBUTING.md file you reference explicitly states (my emphasis):

Ecma TC39 accepts contributions from non-member individuals who have accepted the TC39 copyright and patent policies.

This seems to be in conflict with what I understand you are saying. Is it wrong? If so, can someone fix it?

But then later in the document it says

convince others that your proposal is a useful addition to the language and recruit TC39 members

and

If you have a new proposal you want to get into the language, you first need a TC39 champion

There are two things at play here: conforming to the Ecma IPR policies and actual advancing a proposal through the TC39 process stages.

  1. For a proposal (or any document) to be officially considered by TC39 it must be present (and archived) as a “contribution” that conforms to the IPR policy.
  2. There needs to be somebody who is a TC39 member delegate who is willing manage the proposal through the TC39 process. That is the “champion”. Without champion it won’t even get on a meeting agenda.

Is there a distinction here between a "contribution" and a "proposal”?

A proposal is a kind of contribution. Basically anything document submitted to TC39 is a contribution.

Then in tc39.github.io/process-document, tc39.github.io/process-document, it says that there is a "strawman" stage 0 and lists the "Entrance Requirements" as "none". In the same document, it says

Ideas for evolving the ECMAScript language are accepted in any form. Any discussion, idea or proposal for a change or addition which has not been submitted as a formal proposal is considered to be a “strawman” (stage 0) and has no acceptance requirements. Such submissions must either come from members of TC39 or from non-members who have registered via Ecma International.

Is this incorrect? If so, it should be fixed.

I believe I wrote those words… The “none” is incorrect, to the extent that the stage 0 proposal must be a contribution conforming to the IPR policies. Note that a slide deck presented by a member delegate at a TC39 meeting automatically meets that criteria, so from a member’s perspective there are essentially no “Entrance Requirements”.

Non-members can submit a proposal via the registration process. There is currently no guarantee that anyone involved with TC39 is going to pay any attention to it. That’s where the need to recruit a champion comes in.

The original thinking when the TC39 process was being drafted was that non-member “proposals" would be discussed on es-discuss or other public forums that are followed by TC39 participants. The expectations is that interesting proposals and good ideas would be noticed and championed by TC39 participants. (Historically, a number of ideas incorporated into the ECMAScript specifications have originated within es-discuss threads)

I agree that TC39 could do a better job at providing an in-take process. For example, it could have a “Request for consideration” channel and a regular agenda item to solicit members who may have an interest in championing such requests. But setting that up requires some TC39 member(s) who are interested in championing that process change and managing it going forward.

Hmmm, a champion for a process to find champions? One idea that springs to mind is to have a forward-looking TC39 member agree to serve as interim champion for grassroots proposals from non-insiders, although they would need to be able to reject extremely poor proposals.

Yup, there is a meta level to TC39. Yes, something like that was what I was thinking.

By the way, the current stage 0 list at tc39/proposals/blob/master/stage-0-proposals.md, tc39/proposals/blob/master/stage-0-proposals.md starts off by saying that "Stage 0 proposals have been presented to the committee", but then includes proposals with the rocket ship icon which are "as not yet presented to the committee". Which is it? Are stage 0 proposals supposed to be presented to the committee to acquire that status, or not, or it varies? It's also worth noting that a number of these stage 0 proposals are very old, and/or their docs indicate they have been superseded, or in one case have no link to anything, Is there any process for removing things from the stage 0 list?

These are collective ownership issues. There isn’t a single “editor” of all this TC39 web content. Another meta-level issue for TC39.

But thanks for your concern. Really!