-
Notifications
You must be signed in to change notification settings - Fork 93
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
feat(spike): rover core build #340
Conversation
71684b2
to
196f113
Compare
e0ea5c6
to
5112544
Compare
this PR introduces a TOML config format for specifying multiple subgraphs to compose. usage: rover graph build --services ./path/to/services.toml This will attempt to compose your subgraph schemas. If it successfully composes, it will print the composed CSDL. If there are errors, they will be printed. examples of both composing and non-composing inputs can be tested by running: `cargo run -- graph build --services spike/composes.toml` and `cargo run -- graph build --services spike/errors.toml`
53e091c
to
8a6e630
Compare
909402e
to
355fd93
Compare
from @ndintenfass in Slack:
|
bac4726
to
0958ab9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's bring this in as part of 0.0.4
, so folks can try it out before our release next week.
This PR introduces a YAML config format for specifying multiple subgraphs to compose.
example YAML with two subgraphs titled
films
andpeople
:This will attempt to compose your subgraph schemas. If it successfully composes, it will print the composed CSDL. Paths are computed relative to the config file itself. We could eventually look for a
rover.toml
by default, but for now, since this is the only config file we have and nothing has been set in stone for other commands, we require an argument that takes a relative path.Example:
and
Error cases
we need to handle betterwe currently handle:^ These are all handled now!
^ I'd love some QA on this to see if folks can break it and we can add more test cases 😄
It's important to note that we do absolutely no input validation on the URLs due to the fact that I think they can really be anything, even empty strings. That being said, we do require that it is defined for each subgraph.
There are three options here:
routing_url
for eachsubgraph
and pass an empty string toharmonizer
if it is not specified in the config file.routing_url
and throw a parse error if arouting_url
does not exist or if it's not a well-formed URL that would produce a bad artifact.Closes #350