Closed jonathanrainer closed 2 weeks ago
Oh man I remember us having conversation about how we could no longer support musl (more specifically Alpine) after introducing JS (and v8) to rover
from ...maybe 3 years ago. Is the idea to get this musl binary built in federation-rs
directly so we don't have to build v8 from source higher upstream in rover
and router
?
Oh man I remember us having conversation about how we could no longer support musl (more specifically Alpine) after introducing JS (and v8) to
rover
from ...maybe 3 years ago. Is the idea to get this musl binary built infederation-rs
directly so we don't have to build v8 from source higher upstream inrover
androuter
?
Pretty much yes, this PR was more about me testing assumptions that we couldn't build musl
binaries because of v8 (which you can you just have to compile it yourself). If we do this then we remove one of the bricks in the wall to letting rover
support composition under musl
binaries.
If we do this then we remove one of the bricks in the wall to letting rover support composition under musl binaries.
what are the implications to upstream dependencies like rover and router with a change like this?
If we do this then we remove one of the bricks in the wall to letting rover support composition under musl binaries.
what are the implications to upstream dependencies like rover and router with a change like this?
So in the immeadiate term (i.e. on merging this PR) nothing, it's just another option that's available. rover
could then start to offer composition on platforms that didn't previously support it as we'd have a supergraph
binary we could use. For router
I'm not sure there's any impact at all because all of this only affects the supergraph
binary, not Harmonizer and the other parts, at least not that I can see?
Seems as though we can build
musl
binaries if we want too, though it requires compiling V8 at source, this PR is an experiment to see if that's possible.In terms of testing I've done the following:
cimg/base:stable
Docker image, installed the right tools and built the binary using the same xtask command as is used in CI - ✅rover
in the same Docker image, moved the builtsupergraph
binary into the.rover/bin
directory and runsupergraph compose
against theretail-supergraph
example - ✅--debug
flag to ensure that we can get a release binary ✅I'm happy to do anymore testing we think is a good idea, because supporting a new binary is a big deal so I want to make sure we're ready if we decide to go ahead.