graphql / graphql/gaps

Add `implementedBy` field in `metadata.yml`

Open
#23 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
9
Forks
7
PR merge metrics
No merged PRs in 30d

Description

@PascalSenn suggested at today's wg meeting that GAPs should list (in metadata.yml) what servers/clients implement the spec, so users can decide which spec to use.

**Option 1 - text only**

```yaml
implementedBy:
- "Apollo Client >= v1.2.3"
- "Relay >= v3.4.5"
```

**Option 2 - markdown links**

```yaml
implementedBy:
- [Apollo Client >= v1.2.3](https://www.apollographql.com/docs/react)
- [Relay >= v3.4.5](https://github.com/facebook/relay)
```

**Option 3 - structured data**

```yaml
implementedBy:
- name: Apollo Client
website: https://www.apollographql.com/docs/react
version: 1.2.3
- name: Relay
website: https://www.apollographql.com/docs/react
version: 3.4.5
```

**Option 4 - project definition keys + structured data**

```yaml
implementedBy:
- project: apollo-client
version: 1.2.3
- project: relay
version: 3.4.5
```

...which refers to some central projects.yml that looks like this:

```yaml
- id: apollo-client
website: https://www.apollographql.com/docs/react
- id: relay
website: https://github.com/facebook/relay
```

Maybe this can reuse the definitions list here https://caniuse.graphql.now/index.html#projects

Note: I'd also like to support arbitrary projects here too, since support might initially be implemented as random a plugin (e.g. the `@mock` spec is currently implemented in [apollo-client-mock-directive-plugin](https://github.com/magicmark/apollo-client-mock-directive-plugin/), not apollo core. I would expect many specs might start out this way.

So that implies something like this:

```yaml
implementedBy:
- project: relay
version: 3.4.5
- name: apollo-client-mock-directive-plugin
website: https://github.com/magicmark/apollo-client-mock-directive-plugin/
version: 0.0.1
```

---

my vote is Option 4.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.