@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
implementedBy:
- "Apollo Client >= v1.2.3"
- "Relay >= v3.4.5"
Option 2 - markdown links
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
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
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:
- 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, not apollo core. I would expect many specs might start out this way.
So that implies something like this:
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.
@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
Option 2 - markdown links
Option 3 - structured data
Option 4 - project definition keys + structured data
...which refers to some central projects.yml that looks like this:
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
@mockspec is currently implemented in apollo-client-mock-directive-plugin, not apollo core. I would expect many specs might start out this way.So that implies something like this:
my vote is Option 4.