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

compile all current specs here #18

Draft
wants to merge 13 commits into
base: main
Choose a base branch
from
Draft

compile all current specs here #18

wants to merge 13 commits into from

Conversation

queerviolet
Copy link
Contributor

@queerviolet queerviolet commented Apr 20, 2022

tracking PR for spec library consolidation and cleanup.

this pr aims to:

  • collect all specs from their various repos into this repo
  • ensure that there are correct, canonical schemas for all specs (particularly the fed v2 specs)
  • provide core schemas for all specs where they can automatically be fetched by the compiler (if need be)
  • compile those into documentation

this changes some key things about our spec writing and deployment process. currently, to create a new spec, you:

  • create a new spec repo from the template
  • write the spec
  • cut a tagged release at the version you want to release
  • deploy the spec
  • add netlify redirects to the spec's deployment point from this repository
  • deploy the library

a few issues with this:

  • it turns out that, since our software supports multiple spec versions, we often want to see e.g. tag/v0.1 and tag/v0.2 alongside each other. using git tags, while a prima facie reasonable approach, makes this more difficult.
  • deploying a spec is quite heavy
  • deploying new versions of specs (say, to add a new location to @tag) also require deploys across two repositories, which is also rather heavy
  • renaming a spec is about as hard as renaming a repository (which is to say, a bit)
  • when specs cross-reference each other, we are limited in our ability to resolve and check those references—you currently have to deploy the target spec to the public internet in order for the compiler to pick it up.

the new process will be:

  • add a .md file to this repository
  • add a line to build if it's a new spec
  • deploy

this is a first step to building the spec library with gatsby and monodocs—for that, we will pull in the compiler to generate markdown in the various project repositories, to be picked up by monodocs. this will allow, e.g. router directives to live in router and federation directives to live in federation, managed entirely by their respective teams.

TODO:

  • add a netlify build step that runs ./build
  • historical specs
    • core/v0.1
    • core/v0.2
    • tag/v0.1
    • inaccessible/v0.1
    • federation/v1.0
    • join/v0.1
  • current specs
    • tag/v0.2
    • inaccessible/v0.2
  • new specs

@queerviolet
Copy link
Contributor Author

realized i should have linked #7, since this is on the way to that

@queerviolet queerviolet mentioned this pull request Apr 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant