Skip to content

Commit

Permalink
hard wrap line breaks
Browse files Browse the repository at this point in the history
  • Loading branch information
bumblefudge authored and dmitrizagidulin committed Oct 8, 2024
1 parent 42d4208 commit 185a00f
Showing 1 changed file with 119 additions and 49 deletions.
168 changes: 119 additions & 49 deletions stage-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,99 +7,167 @@ Status: proposed CG charter amendment

This is a proposal to break proposals into 5 stages of maturity, with clear guidelines and requirements to advance them:

* [Stage 0](#stage-0-exploration): **Exploration** of a Problem Space and/or user stories
* [Stage 1](#stage-1-incubation-community-andor-community-group): **Incubation** of targeted candidate solutions
* [Stage 2](#stage-2-formalization-community-group): **Formalization** a preferred Proposal
* [Stage 3](#stage-3-implementation-and-normative-draft-working-group: **Implementation** of the preferred Proposal
* [Stage 4](#stage-4-publication-or-re-publication-working-group): **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.
* [Stage 0](#stage-0-exploration): **Exploration** of a Problem Space and/or
user stories
* [Stage 1](#stage-1-incubation-community-andor-community-group): **Incubation**
of targeted candidate solutions
* [Stage 2](#stage-2-formalization-community-group): **Formalization** a
preferred Proposal
* [Stage 3](#stage-3-implementation-and-normative-draft-working-group:
**Implementation** of the preferred Proposal
* [Stage 4](#stage-4-publication-or-re-publication-working-group):
**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.

## Stage 0: Exploration

The purpose of Stage 0 proposals is to allow anyone to raise and explore the Problem Space without asking for permission.
The purpose of Stage 0 proposals is to allow anyone to raise and explore the
Problem Space without asking for permission.

* What's needed from individuals?
* [ ] Typically, a detailed (but IP-safe, high-level) issue describing a user story or problem
* [ ] Typically, a detailed (but IP-safe, high-level) issue describing a user
story or problem
* Minimally, a personal repo, a blog post with examples, a mock-up, etc.
* Maximally, an end-to-end prototype worked on in community venues
* Who is involved?
* CG meeting time should be minimally requested except in the form of "announcements" about progress at this stage
* CG Mailing List is an appropriate place for high-level or user-story discussion.
* It is also recommended that community venues like [SocialHub](https://socialhub.activitypub.rocks/), [Indieweb.org Brainstorming](https://indieweb.org/wiki#Brainstorming), [Fediverse Ideas](https://codeberg.org/fediverse/fediverse-ideas/), or the social web itself be used to gather more input and to poll interest.
* Descriptive specifications of a prototype (whether as a drafting exercise or as an invitation to prototype interoperability) can be hosted on git forges, including community venues like [the Fediverse Enhancement Proposals](https://codeberg.org/fediverse/fep/).
* The CG may request this kind of preliminary community and implementer feedback according to the pre-existing [3-stage Standardization Process Proposal], particularly for extensions to the protocol's required Vocabularies (see the [ActivityPub/ActivityStreams-specific Vocabulary Extension Policy])
* Other [Social Web Protocols] may also ask for implementer feedback at this stage
* CG meeting time should be minimally requested except in the form of
"announcements" about progress at this stage
* CG Mailing List is an appropriate place for high-level or user-story
discussion.
* It is also recommended that community venues like
[SocialHub](https://socialhub.activitypub.rocks/), [Indieweb.org
Brainstorming](https://indieweb.org/wiki#Brainstorming), [Fediverse
Ideas](https://codeberg.org/fediverse/fediverse-ideas/), or the social web
itself be used to gather more input and to poll interest.
* Descriptive specifications of a prototype (whether as a drafting exercise or
as an invitation to prototype interoperability) can be hosted on git forges,
including community venues like [the Fediverse Enhancement
Proposals](https://codeberg.org/fediverse/fep/).
* The CG may request this kind of preliminary community and implementer
feedback according to the pre-existing [3-stage Standardization Process
Proposal], particularly for extensions to the protocol's required
Vocabularies (see the [ActivityPub/ActivityStreams-specific Vocabulary
Extension Policy])
* Other [Social Web Protocols] may also ask for implementer feedback at this
stage
* What's the optimal outcome?
* Objective, open description of a problem or user story [set] that is within scope of the CG
* IP Safety of work done outside the CG (best insured by keeping discussions and prototyping high-level and application-specific, and postponing considerations of protocol engineering and efficiency)
* A champion to gather and synthesis feedback, from outside the CG and to coordinate with the CG for review and future stages of work
* Objective, open description of a problem or user story [set] that is within
scope of the CG
* IP Safety of work done outside the CG (best insured by keeping discussions
and prototyping high-level and application-specific, and postponing
considerations of protocol engineering and efficiency)
* A champion to gather and synthesis feedback, from outside the CG and to
coordinate with the CG for review and future stages of work

## Stage 1: Incubation (Community and/or Community Group)

The purpose of Stage 1 proposals is to explore the Solution Space and evaluate multiple candidate solutions fairly.
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.
The purpose of Stage 1 proposals is to explore the Solution Space and evaluate
multiple candidate solutions fairly. 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.

**Great care** should be taken to avoid substantial technical/design discussions happening outside the "IPR" boundary of the Community Group members if normative status beyond stage 1 is desired;
further standardization MUST be rejected if "clean IPR" cannot be achieved (e.g. by post-facto IP grants from all substantial contributors).
**Great care** should be taken to avoid substantial technical/design discussions
happening outside the "IPR" boundary of the Community Group members if normative
status beyond stage 1 is desired; further standardization MUST be rejected if
"clean IPR" cannot be achieved (e.g. by post-facto IP grants from all
substantial contributors).

* What's needed from champions?
* [ ] Public identification of one or more [champions](https://github.com/tc39/how-we-work/blob/main/champion.md)
* [ ] Public identification of one or more
[champions](https://github.com/tc39/how-we-work/blob/main/champion.md)
* [ ] An understanding of the problem space (need not be *deeply* technical)
* [ ] Familiarity with prior art and related parallel work
* What's asked of the **Community Group**?
* [ ] 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 or proposal (e.g., [example](https://github.com/swicg/activitypub-http-signature)).
* [ ] 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 or proposal (e.g.,
[example](https://github.com/swicg/activitypub-http-signature)).

## Stage 2: Formalization (Community Group)

The purpose of Stage 2 Proposals is to formally specify one or more (workable) candidate solutions 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 and CG consensus on a CG Report.
The purpose of Stage 2 Proposals is to formally specify one or more (workable)
candidate solutions 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
and CG consensus on a CG Report.

* What's needed from champions?
* [ ] An [explainer](https://tag.w3.org/explainers/)
* [ ] Alternatives and trade-offs considered (an overview of useful discussions on and off CG venues appreciated)
* [ ] A specific preferred proposal, e.g., a Report draft, which can include code samples, examples, etc.
* [ ] Developer implementation experience (e.g., a prototype, interop experiments, etc)
* [ ] Confidence of developer demand and fitness for purpose (e.g. a developer or forker of a complete implementation that needs this proposal)
* [ ] Alternatives and trade-offs considered (an overview of useful
discussions on and off CG venues appreciated)
* [ ] A specific preferred proposal, e.g., a Report draft, which can include
code samples, examples, etc.
* [ ] Developer implementation experience (e.g., a prototype, interop
experiments, etc)
* [ ] Confidence of developer demand and fitness for purpose (e.g. a developer
or forker of a complete implementation that needs this proposal)
* 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-implementation-and-normative-draft-working-group).
* [ ] 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 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-implementation-and-normative-draft-working-group).
* [ ] 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.

## Stage 3: Implementation and Normative Draft (Working Group)

The purpose of Stage 3 Proposals is to increase implementation and deployment confidence in order to move from CG report to a complete draft of 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 move from CG report to a complete draft of a [Candidate
Recommendation](https://www.w3.org/policies/process/#RecsCR).

* What's needed from champions?
* [ ] Expanded Report (i.e. first draft of a Recommendation) and/or PR to extend or update Social Web normative specs
* [ ] Expanded Report (i.e. first draft of a Recommendation) and/or PR to
extend or update Social Web normative specs
* [ ] Conformance sections and initial Privacy and Security Considerations
* [ ] Runnable Tests and test case documentation (ideally more formal than pseudocode)
* [ ] Runnable Tests and test case documentation (ideally more formal than
pseudocode)
* [ ] Further implementation experience, ideally diverse and external
* 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-formalization-community-group)
* [ ] 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-formalization-community-group)
* [ ] 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 or Re-publication (Working Group)

The purpose of Stage 4 Proposals is to produce a new [W3C Recommendation](https://www.w3.org/policies/process/#RecsW3C) or a new minor or major version of a prior one.
The purpose of Stage 4 Proposals is to produce a new [W3C
Recommendation](https://www.w3.org/policies/process/#RecsW3C) or a new minor or
major version of a prior one.

* What's needed from champions?
* [ ] Sufficient [implementation experience](https://www.w3.org/policies/process/#implementation-experience)
* [ ] Sufficient [implementation
experience](https://www.w3.org/policies/process/#implementation-experience)
* [ ] Two or more independent and complete implementations
* [ ] Implementation reports and corresponding conformance reports for each
* 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 and
* [ ] Working Group consensus to publish it as a [Proposed
Recommendation](https://www.w3.org/policies/process/#RecsPR)

## Prior Art

* Social CG precedents:
* Evan Promodorou's [ActivityPub/ActivityStreams-specific Vocabulary Extension Policy]
* Evan Promodorou's [ActivityPub/ActivityStreams-specific Vocabulary Extension
Policy]
* A. Schrijver [3-stage Standardization Process Proposal]
* Indieweb [Living Standard Process] (see [github discussion here](https://github.com/w3c/strategy/issues/435#issuecomment-1751403081))
* Indieweb [Living Standard Process] (see [github discussion
here](https://github.com/w3c/strategy/issues/435#issuecomment-1751403081))
* TC39
* [TC39 Proposals]
* [TC39 Process Document]
Expand All @@ -118,8 +186,10 @@ The purpose of Stage 3 Proposals is to increase implementation and deployment co
* [WA Tail Call Proposal]
* [WA GC Proposal]

[ActivityPub/ActivityStreams-specific Vocabulary Extension Policy]: https://swicg.github.io/extensions-policy/
[3-stage Standardization Process Proposal]: https://socialhub.activitypub.rocks/t/3-stage-standards-process-guaranteeing-an-open-and-decentralized-ecosystem/3602
[ActivityPub/ActivityStreams-specific Vocabulary Extension Policy]:
https://swicg.github.io/extensions-policy/
[3-stage Standardization Process Proposal]:
https://socialhub.activitypub.rocks/t/3-stage-standards-process-guaranteeing-an-open-and-decentralized-ecosystem/3602
[Living Standard Process]: https://indieweb.org/specifications
[Social Web Protocols]: https://www.w3.org/TR/social-web-protocols/
[TC39 Proposals]: https://github.com/tc39/proposals
Expand Down

0 comments on commit 185a00f

Please sign in to comment.