router icon indicating copy to clipboard operation
router copied to clipboard

Publish to crates.io

Open o0Ignition0o opened this issue 3 years ago • 1 comments

Let's consider publishing router and core to crates.io

o0Ignition0o avatar Feb 16 '22 15:02 o0Ignition0o

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)

abernix avatar May 03 '22 08:05 abernix

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.

garypen avatar Aug 18 '22 14:08 garypen

Hacking on https://github.com/apollographql/federation-rs/issues/123, marking this one as blocked until i m done

o0Ignition0o avatar Aug 24 '22 15:08 o0Ignition0o

It's also blocked on defer + gzip (depending on how @Geal and we choose to deal with it)

o0Ignition0o avatar Aug 25 '22 07:08 o0Ignition0o

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

Geal avatar Aug 25 '22 09:08 Geal

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

o0Ignition0o avatar Aug 25 '22 14:08 o0Ignition0o

Should be fine to add an apollo- prefix to the names, right?

SimonSapin avatar Aug 26 '22 14:08 SimonSapin

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.

SimonSapin avatar Sep 08 '22 11:09 SimonSapin

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.

SimonSapin avatar Sep 12 '22 15:09 SimonSapin

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.

SimonSapin avatar Sep 12 '22 16:09 SimonSapin

Wow that crate name. I love it

Geal avatar Sep 12 '22 16:09 Geal

Full credit for the name goes to @EverlastingBugstopper.

abernix avatar Sep 12 '22 20:09 abernix

that last blocker

of course, you know how these things go… (another PR incoming)

SimonSapin avatar Sep 13 '22 08:09 SimonSapin

We are now published as apollo-router on crates.io. Thanks for all the hard work to make this happen!

abernix avatar Sep 14 '22 17:09 abernix