Discussion: GAP `status` field
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Quiet
- Domain
- documentation
Research direction
Start by reading CONTRIBUTING.md and the metadata.yml structure described in the issue, then inspect how GAP status is represented on the website or in deploy previews. Resolve the status and withdrawal semantics, including who accepts a GAP, and update the relevant guidance and metadata definition so there is one clear source of truth.
Written by the indexing model from the issue text.
Description
CONTRIBUTING.md currently states the statuses as:
# GAPs are never "strawman". Later we'll probably add additional statuses. If in
# doubt, choose "proposal"
status: proposal | draft | accepted
PEP statuses prior art fwiw:
Status: <Draft | Active | Accepted | Provisional | Deferred | Rejected |
Withdrawn | Final | Superseded>
We currently offer no guidance or definition for what it means for a GAP to be "accepted". Accepted by whom?
GAPs are explicitly community specs, and don't need to be "accepted" by anyone other than the initial sponsor and authors.
(The role of sponsor imo should be to check "does this GAP make sense, is it appropriate for this repo", and not "do I personally agree this is a good idea" -- and we should clarify this)
The statuses of a GAP could be considered implicitly as:
- "proposal" = GAP PR is still open
- "draft" = GAP PR has been merged with a DRAFT.md but no version directory has been created
- "accepted" = GAP PR has been merged and a version has been published.
Do we need an extra field?
To be clear, we could still display a "status" field in the frontmatter of the GAP document on the website or in deploy previews, but this can be calculated based on the above.
Proposal
(1) Remove status to avoid duplicate sources of truth to keep in sync.
(2) Add an additional optional withdrawn field in metadata.yml to encode the state of 'withdrawn' (i.e a GAPs has been withdrawn but without any superseding GAP).
related:
- <number>
replaces: <number>
-supersededBy: <number>
+withdrawn:
+ # fields in `withdrawn` are mutually exclusive
+ supersededBy: <number>
+ reason: <number>
tags:
- <string>
@benjie wdyt?
- Dominant language
- JavaScript
- Stars
- 10
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from graphql/gaps
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
clarify licensingOpen
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
feature request
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
openlayers/openlayers#17736 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
521xueweihan/HelloGitHub#4326 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Mintplex-Labs/anything-llm#7133 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day