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

feat: build rover-fed as separate binary #887

Merged
merged 9 commits into from
Oct 25, 2021

Conversation

EverlastingBugstopper
Copy link
Contributor

@EverlastingBugstopper EverlastingBugstopper commented Oct 22, 2021

This PR does a bunch of things in service of future fun times. We want to distribute composition separately from Rover, this PR lays the groundwork.

  • Add rover-fed as a --bin target, keep rover as the default. This binary is solely responsible for performing composition.

  • Create new supergraph-config crate to be used by rover (resolve sdl from introspection, file or registry) and rover-fed to compose a supergraph from all of the resolved subgraphs provided to it by rover

  • Create new fed-types crate that is used across harmonizer, rover, and rover-fed. this will likely need to be published either to crates.io or to an internal crates registry as it's impossible to work with it locally since rustc thinks they're different types since we're referring to the crate by a path which is outside of the workspace

  • Use the fed-types workspace crate for existing supergraph compose types (harmonizer pr here: feat(harmonizer): idiomatic types federation#1082)

  • Extend rovers installer to be used like so: rover install --plugin rover-fed which downloads a tarball from a gh releases url and moves it to the rover install directory. this won't work with npm installs out of the box but folks who installed with npm can run rover install && npm u -g @apollo/rover to "eject" their global install if they so choose

  • produce separate tarballs for rover-fed via cargo xtask package which are versioned exactly the same as rover, these will automatically be included as artifacts in each rover release

todo: license stuff/warnings, QA, figure out orbiter changes (if even necessary)

@EverlastingBugstopper EverlastingBugstopper changed the title feat: adds rover-fed and supergraph-config feat: build rover-fed as separate binary Oct 22, 2021
@EverlastingBugstopper
Copy link
Contributor Author

temporarily breaking tests on main by merging this, only (real) reason tests are failing is bc of node installs, might be other failures lurking behind it but don't think they will be type-related. after new version of harmonizer lands tomorrow i'll push up a fix.

@EverlastingBugstopper EverlastingBugstopper merged commit acb560a into main Oct 25, 2021
@EverlastingBugstopper EverlastingBugstopper deleted the avery/build-rover-fed-bin branch October 25, 2021 21:06
This was referenced Nov 3, 2021
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.

2 participants