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

Revamp Contributing and add GH templates #519

Merged
merged 3 commits into from
Oct 2, 2018
Merged

Revamp Contributing and add GH templates #519

merged 3 commits into from
Oct 2, 2018

Conversation

leebyron
Copy link
Collaborator

@leebyron leebyron commented Oct 2, 2018

This is a top-to-bottom revamp of the Contributing.md document which includes a more thorough and implementable process for identifying what stage a PR is in and what is expected to reach the next stage. It also captures the guiding principles for spec improvements.

Fixes #511

@leebyron
Copy link
Collaborator Author

leebyron commented Oct 2, 2018

cc @IvanGoncharov, @mjmahone

@leebyron leebyron added ✏️ Editorial PR is non-normative or does not influence implementation 🐝 Process Related to Governance, Tools, or other meta work and removed ✏️ Editorial PR is non-normative or does not influence implementation labels Oct 2, 2018
This is a top-to-bottom revamp of the Contributing.md document which includes a more thorough and implementable process for identifying what stage a PR is in and what is expected to reach the next stage. It also captures the guiding principles for spec improvements.
@leebyron leebyron added 🐝 Process Related to Governance, Tools, or other meta work and removed 🐝 Process Related to Governance, Tools, or other meta work labels Oct 2, 2018
Copy link
Contributor

@mjmahone mjmahone left a comment

Choose a reason for hiding this comment

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

This is a clear step-change improvement over the previous documentation. Some of the stages' introductory paragraphs scanned a bit strangely to me, so I tried to deconstruct them and chop them back together, but I'd be happy shipping what's in this commit as-is.

CONTRIBUTING.md Outdated

An RFC at the *accepted* stage is a completed solution which is ready to be
merged as-is into the spec according to a spec editor and is ready to be
deployed in GraphQL libraries.
Copy link
Contributor

Choose a reason for hiding this comment

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

Thesis: Completed
Requirements: Already implemented with editor approval
Why: So compliant libraries implement it and people can use it.

An RFC at the *accepted* stage is a completed solution. According to a spec 
editor it is ready to be merged as-is into the spec. The RFC is ready to be 
deployed in GraphQL libraries. An *accepted* RFC must be implemented
in GraphQL.js.

CONTRIBUTING.md Outdated
An RFC at the *draft* stage is a fully formed solution which has working group
consensus that it is a problem worth solving and the solution is preferred.
A *draft's* goal is to precisely and completely describe the solution and
resolve any implementation concerns. A *draft* must be a pull request.
Copy link
Contributor

Choose a reason for hiding this comment

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

Thesis: fully formed solution.
Requirements: working group "worth trying to solve" consensus along with pull request.
Why: Goal is to precisely and completely describe the solution. Given a draft, different people must be able to implement identical behavior across GraphQL libraries.

An RFC at the *draft* stage is a fully formed solution. There is working
group consensus that the problem identified is worth solving, and this
particular solution is preferred. A *draft's* goal is to precisely and 
completely describe the solution and resolve any concerns through library
implementations. A *draft* must be a pull  request.

CONTRIBUTING.md Outdated
An RFC at the *proposal* stage is a solution to a problem with enough fidelity
to be discussed in detail, backed by a willing *champion*. A *proposal*'s goal
is to make a compelling case for acceptance by describing both the problem and
the solution via examples and spec edits. A *proposal* should be a pull request.
Copy link
Contributor

Choose a reason for hiding this comment

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

Thesis: discussion stage
Requirements: can be discussed in detail, backed by a champion
Why: to make a case for both the problem and potential solutions. It should foster discussion about alternatives.

An RFC at the *proposal* stage is a solution to a problem with enough fidelity
to be discussed in detail. It must be backed by a willing *champion*. 
A *proposal*'s goal is to make a compelling case for acceptance by describing
both the problem and the solution via examples and spec edits. A *proposal* 
should be a pull request.

CONTRIBUTING.md Outdated
The *strawman* stage captures described problems or partially-considered
solutions which lack the entrance criteria to be considered a *proposal*. A
*strawman* may be an issue or a pull request (though an illustrative pull
request is preferrable).
Copy link
Contributor

Choose a reason for hiding this comment

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

Thesis: RFC with goal of comments
Requirements: very little
Why: To bring attention to issues and/or seek advice on solutions.

A *strawman* RFC captures described problems or partially-considered
solutions. The *strawman* does not need to meet the *proposal* entrance
criteria. A *strawman* may be an issue or a pull request (though an
illustrative pull request is preferrable).


Instead, find community resources at https://graphql.org/community/

# Please do not make feature requests via Issues #
Copy link
Contributor

Choose a reason for hiding this comment

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

Seems like we really don't want people using the "Issues" section.

I can get behind that, but PRs increase the barrier of entrance to the strawman stage.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yeah, Issues get ignored much more than PRs, the quality of Issues are typically below that of PRs, and Issues are often drive by requests from people who do not actually intend on following through while those opening PRs tend to follow up :)

I'll think of how to word this a little better - but some amount of creating a barrier for strawman is intentional since we already have ~50 strawman without clear champions in the issues section

@leebyron leebyron merged commit 24ce9c0 into master Oct 2, 2018
@leebyron leebyron deleted the contributing branch October 2, 2018 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐝 Process Related to Governance, Tools, or other meta work
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Status of GraphQL spec change process
3 participants