router
router copied to clipboard
Publish to crates.io
Let's consider publishing router and core to crates.io
Since we think we're going to juggle around some internal crates before we go to 1.0, we've decided that while for 1.0 itself we will want to publish everything to Crates.io (to simplify depending on compiled-in plugins), but that prior to 1.0 — we will still require users to depend on the apollo-router and apollo-router-core from Git/GitHub based on tags.
In terms of what we will publish, eventually, it would be inclusive of code that is currently in apollo-router, apollo-router-core and the package currently known as router-bridge (but presumably named as apollo-router-bridge)
We would need to update our release automation to publish the crate to crates.io. Tooling required. I've used: https://github.com/crate-ci/cargo-release in the past and it might be helpful. Worth evaluating at least.
Hacking on https://github.com/apollographql/federation-rs/issues/123, marking this one as blocked until i m done
It's also blocked on defer + gzip (depending on how @Geal and we choose to deal with it)
It's also blocked on defer + gzip (depending on how @Geal and we choose to deal with it)
Context: https://github.com/apollographql/router/pull/1604
as @Geal rightfully noticed, we need to publish launchpad as well, but the name is already used
It's a depency of uplink, which is already used as well
Should be fine to add an apollo- prefix to the names, right?
If uplink and spaceport are crates.io packages, how should we pick version numbers as they evolve over time? Do we want to stabilize their API and do Semantic Versioning? Do we expect or want to have any user for them other than the Router?
If the answer to that last question is no, we could avoid the other questions entirely by having uplink and spaceport not be separate packages, and instead move them to be modules inside the router crate.
https://github.com/apollographql/router/pull/1749 and https://github.com/apollographql/router/pull/1751 remove one blocker each, but the latter uncovers another one: we also depend on the launchpad crate through a git dependency.
With the publication of that crate as https://crates.io/crates/introspector-gadget, https://github.com/apollographql/router/pull/1751 now clears that last blocker in that last commit.
Wow that crate name. I love it
Full credit for the name goes to @EverlastingBugstopper.
that last blocker
of course, you know how these things go… (another PR incoming)
We are now published as apollo-router on crates.io. Thanks for all the hard work to make this happen!