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

Update proposals-CG-WG.md #12

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
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
69 changes: 36 additions & 33 deletions proposals-CG-WG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# CG/WG Proposal Stages

Author: @samuelgoto
Created: 08/11/2024
Last update: 09/11/2024
Created: 2024-08-11
Last update: 2024-11-26
Status: under review

This is a proposal to break proposals into 5 stages of maturity, with clear guidelines and requirements to advance them:
Expand All @@ -13,7 +13,7 @@ This is a proposal to break proposals into 5 stages of maturity, with clear guid
* [Stage 3](#stage3): **Implementation** of the preferred Proposal
* [Stage 4](#stage4): **Publication** of a Proposed Recommendation

These stages support the W3C process. If there is ever any question between W3C process requirements and how the groups will progress their work, the W3C process has precedent.
These stages support the W3C process and align with the [TC39 process](https://tc39.es/process-document/) and the [WHATWG process](https://whatwg.org/stages). If there is ever any question between W3C process requirements and how the groups will progress their work, the W3C process has precedent.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
These stages support the W3C process and align with the [TC39 process](https://tc39.es/process-document/) and the [WHATWG process](https://whatwg.org/stages). If there is ever any question between W3C process requirements and how the groups will progress their work, the W3C process has precedent.
These stages support the W3C process and align with the [TC39 process](https://tc39.es/process-document/) and the [WHATWG process](https://whatwg.org/stages). If there is ever any question between W3C process requirements and how the groups will progress their work, the W3C process has precedence.


# Stage 0: Exploration

Expand All @@ -29,70 +29,73 @@ The purpose of Stage 0 proposals is to allow anyone to raise and explore the Pro
The purpose of Stage 1 proposals is to explore the Solution Space and pick a preferred direction. This is where most of the work gets done because it involves exploring alternatives, understanding tradeoffs, gathering implementation experience, incubating alternatives, gathering evidence of demand and fitness for purpose, and finally, identifying the best out of the many alternatives.

* What's needed from individuals?
* [ ] Identification of [champions](https://github.com/tc39/how-we-work/blob/main/champion.md)
* [ ] An understanding of the Problem Space
* [ ] Optionally, alternatives under consideration
* [ ] Identification of [champions](https://github.com/tc39/how-we-work/blob/main/champion.md).
* [ ] An understanding of the Problem Space.
* [ ] Optionally, alternatives under consideration.
* What's asked of the **Community Group**?
* [ ] The Community Group consensus that the problem is worth spending the Community Group’s time working on
* [ ] The Community Group consensus that the problem is worth spending the Community Group’s time working on.
* [ ] A home for incubating the proposal. Small features will incubate in issues. If and when the champions are ready to more thoroughly document their proposal, the WG chairs will create a repo for the champions to develop the feature (e.g., [example](https://github.com/fedidcg/LightweightFedCM)).

# Stage 2: Formalization

The purpose of Stage 2 Proposals is to formally specify the best (and seemingly workable) alternative that was identified in the prior step: handle corner cases, integrate with other parts, reconcile with other proposals, and resolve the concerns identified at the entrance. The Proposal enters Stage 2 with a list of blocking issues to advance to the next stage and exits with all of the issues resolved.
The goal of Stage 2 is to refine the preferred solution into a detailed, cohesive proposal that addresses known issues and integrates feedback from stakeholders. The Proposal enters Stage 2 with a list of blocking issues to advance to the next stage and exits with all of the issues resolved. This stage focuses on preparing the proposal for Working Group review and creating a complete, formal draft.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The goal of Stage 2 is to refine the preferred solution into a detailed, cohesive proposal that addresses known issues and integrates feedback from stakeholders. The Proposal enters Stage 2 with a list of blocking issues to advance to the next stage and exits with all of the issues resolved. This stage focuses on preparing the proposal for Working Group review and creating a complete, formal draft.
The goal of Stage 2 is to refine the preferred solution into a detailed, cohesive proposal that addresses known issues and integrates feedback from stakeholders. The Proposal enters Stage 2 with a list of issues that block advancement to the next stage, and exits with all of the issues resolved. This stage focuses on preparing the proposal for Working Group review and creating a complete, formal draft.

Copy link

Choose a reason for hiding this comment

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

Complete formal draft of what? I guess the specification of the feature?


* What's needed from champions?
* [ ] An [explainer](https://tag.w3.org/explainers/)
* [ ] Alternatives and trade-offs considered
* [ ] A specific preferred proposal, e.g., code samples, examples, or a spec PRs (if the formalism is needed to understand the proposal)
* [ ] Browser and developer implementation experience (e.g., a prototype, dev trials, origin trials, etc)
* [ ] Confidence of developer demand and fitness for purpose (e.g. a developer that needs this proposal)
* [ ] An [explainer](https://tag.w3.org/explainers/).
Copy link
Contributor

Choose a reason for hiding this comment

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

Can I suggest that we keep these editorial fixes outside of this PR so that we can focus on the normative changes? For example, I almost dismissed the change below because I assumed that it was just making editorial changes rather than normative.

The editorial changes are perfectly valid, I just think that they may be best done in isolation rather than together with this spec PR.

* [ ] Documentation of alternatives and trade-offs considered.
* [ ] Draft specification text (or detailed examples/code samples if needed for clarity).
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems like a higher bar than is necessary. I'd suggest allowing proposals to enter Stage 2 without a draft specification text (explainers are necessary).

Suggested change
* [ ] Draft specification text (or detailed examples/code samples if needed for clarity).
* [ ] Optionally, a draft specification text (or detailed examples/code samples if needed for clarity).

* [ ] Early implementation experience, including prototypes or trials.
* [ ] Evidence of stakeholder demand and use-case alignment.
Copy link
Contributor

Choose a reason for hiding this comment

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

Stakeholders seems unnecessarily underspecified as far as "demand" is concerned. Where else would "demand" come from other than web developers?

Suggested change
* [ ] Evidence of stakeholder demand and use-case alignment.
* [ ] Evidence of stakeholder (e.g. web developers) demand and use-case alignment.

Copy link
Contributor

Choose a reason for hiding this comment

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

Minor tweaks to @samuelgoto's suggestion

Suggested change
* [ ] Evidence of stakeholder demand and use-case alignment.
* [ ] Evidence of stakeholder (e.g., web developer) demand and use-case alignment.


* What's asked of the **Working Group**?
* [ ] Working Group consensus to adopt the proposal as the basis for their work as a [Working Draft](https://www.w3.org/policies/process/#RecsWD).
* [ ] Working Group identification of the list of (seemingly resolvable) issues that have to be addressed before [Stage 3](#stage-3).
* [ ] An [Editor's Draft](https://www.w3.org/policies/process/#editors-draft) can be used to get PRs merged between [Working Draft](https://www.w3.org/policies/process/#RecsWD) revisions.
* [ ] Working Group consensus to adopt the proposal as the basis for their work.
* [ ] A clear list of blocking issues to be addressed before advancing to Stage 3.
* [ ] A completed Working Draft for further iteration.
Copy link
Contributor

Choose a reason for hiding this comment

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

What does this mean? What does it mean that we ask the Working Group for a Working Draft?

That is, do we expect every different proposal to have separate working drafts?

Copy link

Choose a reason for hiding this comment

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

As a spec editor, I would not enjoy having a separate 'working draft' for every feature. That said, maybe this can say 'pull request' at least for features that are intended to be part of an existing spec and not their own spec (which are probably the vast majority)?

* [ ] Approval to transition the draft into a formal as the basis for their work as a [Working Draft](https://www.w3.org/policies/process/#RecsWD).
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 follow this: do we expect that, when a proposal enters Stage 2, that it will have the proposal merged into the Working Draft?

What does this mean? What does it mean that we ask the Working Group for a Working Draft?

That is, do we expect every different proposal to have separate working drafts?

Or is it that what one gets is approval to spend time in the WG to review spec PRs?

Suggested change
* [ ] Approval to transition the draft into a formal as the basis for their work as a [Working Draft](https://www.w3.org/policies/process/#RecsWD).
* [ ] Approval to dedicate the WG's time to Review spec PRs to merge the proposal into the [Working Draft](https://www.w3.org/policies/process/#RecsWD).



# Stage 3: Implementation

> NOTE: We don't yet have enough experience as we get towards Stage 3 and 4, so they aren't fully baked yet. It is possible that these
> will change a lot as we learn, including potentially entirely replacing them with references to the W3C Process.
> will change a lot as we learn, including potentially entirely replacing them with references to the W3C Process.

The purpose of Stage 3 Proposals is to increase implementation and deployment confidence in order to produce a [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR).
The purpose of Stage 3 Proposals is to increase implementation and deployment confidence in order to produce a [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR). The spec should be considered finished, pending editorial nit review. However, since multiple implementations are expected in this stage, it is possible there will be further changes to normative content.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The purpose of Stage 3 Proposals is to increase implementation and deployment confidence in order to produce a [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR). The spec should be considered finished, pending editorial nit review. However, since multiple implementations are expected in this stage, it is possible there will be further changes to normative content.
The purpose of Stage 3 Proposals is to increase implementation and deployment confidence in order to produce a [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR). The spec should be considered finished, pending editorial nit review. However, since multiple implementations are expected to be produced during this stage, it is possible there will be further changes to normative content based on feedback from those implementors.


* What's needed from champions?
* [ ] Proposal fully merged into the [Working Draft](https://www.w3.org/policies/process/#RecsWD)
* [ ] Web Platform Tests
* [ ] Further implementation experience
* [ ] Proposal fully merged into the [Working Draft](https://www.w3.org/policies/process/#RecsWD).
* [ ] Web Platform Tests are available.
* [ ] At least two independent implementers and no unresolved objections (where resolution may include an agreement not to address the issue).
* What's asked of the **Working Group**?
* [ ] Working Group consensus that the [Working Draft](https://www.w3.org/policies/process/#RecsWD) sufficiently resolves all of the issues raised at [Stage 2](#stage-2)
* [ ] Working Group consensus to publish the [Working Draft](https://www.w3.org/policies/process/#RecsWD) as the Working Group's [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR)
* [ ] Working Group consensus that the [Working Draft](https://www.w3.org/policies/process/#RecsWD) sufficiently resolves all of the issues raised at [Stage 2](#stage-2).
Copy link

Choose a reason for hiding this comment

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

Since we are modifying this, maybe we should address the issue about not all features within a spec reaching Stage 3 at the same time. Perhaps the CR mentioned below can be a frozen branch from the WD, possibly with features in lesser stages removed?

* [ ] Working Group consensus to publish the [Working Draft](https://www.w3.org/policies/process/#RecsWD) as the Working Group's [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR).

# Stage 4: Publication

The purpose of Stage 4 Proposals is to produce a [W3C Recommendation](https://www.w3.org/policies/process/#RecsW3C).
The purpose of Stage 4 Proposals is to produce a [W3C Recommendation](https://www.w3.org/policies/process/#RecsW3C). At this stage, the spec is merged and has finished editor review. This editor review could be lengthy, especially if the feature is large and/or the contributor is new to W3C process, but it will usually be short.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The purpose of Stage 4 Proposals is to produce a [W3C Recommendation](https://www.w3.org/policies/process/#RecsW3C). At this stage, the spec is merged and has finished editor review. This editor review could be lengthy, especially if the feature is large and/or the contributor is new to W3C process, but it will usually be short.
The purpose of Stage 4 Proposals is to produce a [W3C Recommendation](https://www.w3.org/policies/process/#RecsW3C). At this stage, the spec is merged and has finished editorial review. This editorial review could be lengthy, especially if the feature is large and/or the contributor is new to W3C process, but it will usually be short.


* What's needed from champions?
* [ ] Sufficient [implementation experience](https://www.w3.org/policies/process/#implementation-experience)
* [ ] Documented [implementation experience](https://www.w3.org/policies/process/#implementation-experience) across multiple environments.
* What's asked of the **Working Group**?
* [ ] Working Group consensus that the [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR)'s implementation experience is complete and
* [ ] Working Group consensus to publish it as a [Proposed Recommendation](https://www.w3.org/policies/process/#RecsPR)
* [ ] Working Group consensus that the [Candidate Recommendation](https://www.w3.org/policies/process/#RecsCR)'s implementation experience is complete.
* [ ] Working Group consensus to publish it as a [Proposed Recommendation](https://www.w3.org/policies/process/#RecsPR).

# Prior Art

* TC39
* Proposals Repo: [https://github.com/tc39/proposals](https://github.com/tc39/proposals)
* Stages: [https://tc39.es/process-document/](https://tc39.es/process-document/)
* Examples
* Decorators Repo: [https://github.com/tc39/proposal-decorators](https://github.com/tc39/proposal-decorators)
* Temporal Repo: [https://github.com/tc39/proposal-temporal](https://github.com/tc39/proposal-temporal)
* Decorators Repo: [https://github.com/tc39/proposal-decorators](https://github.com/tc39/proposal-decorators)
* Temporal Repo: [https://github.com/tc39/proposal-temporal](https://github.com/tc39/proposal-temporal)
Comment on lines +88 to +89
Copy link
Contributor

Choose a reason for hiding this comment

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

Why the extra space for this third-tier indent, here and below? Note that prior levels (and the "original" being changed here) are using 2 spaces per tier, a la --

* top
  * second
    * third

* Immersive Web CG/WG
* Proposals Repo: [https://github.com/immersive-web/proposals](https://github.com/immersive-web/proposals)
* Stage 0 Issues: [https://github.com/immersive-web/proposals/issues](https://github.com/immersive-web/proposals/issues)
* Examples
* \<model\> Repo: [https://github.com/immersive-web/model-element](https://github.com/immersive-web/model-element)
* Depth sensing Repo: [https://github.com/immersive-web/depth-sensing](https://github.com/immersive-web/depth-sensing)
* \<model\> Repo: [https://github.com/immersive-web/model-element](https://github.com/immersive-web/model-element)
* Depth sensing Repo: [https://github.com/immersive-web/depth-sensing](https://github.com/immersive-web/depth-sensing)
* WebAssembly
* Proposals Repo: [https://github.com/WebAssembly/proposals](https://github.com/WebAssembly/proposals)
* Examples
* Tail call Repo: [https://github.com/WebAssembly/tail-call](https://github.com/WebAssembly/tail-call)
* GC Repo: [https://github.com/WebAssembly/gc](https://github.com/WebAssembly/gc)
* Tail call Repo: [https://github.com/WebAssembly/tail-call](https://github.com/WebAssembly/tail-call)
* GC Repo: [https://github.com/WebAssembly/gc](https://github.com/WebAssembly/gc)