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 for ARM unix devices #1137

Closed
wants to merge 22 commits into from
Closed

Conversation

EverlastingBugstopper
Copy link
Contributor

@EverlastingBugstopper EverlastingBugstopper commented May 26, 2022

We should not merge this PR and release ARM support until we can run the latest rover supergraph compose commands on ARM.

The following must happen in order before landing this PR.

  • Test ARM support with federation-rs release candidates
    • Release[email protected] (javascript)
    • Release[email protected] (rust)
    • Test downloading and running supergraph compose with 2.0.6-rc.0 in a supergraph.yaml with rover built from main natively on an M1, and in Docker on an M1
    • Continue releasing release candidates until it all works. Hopefully it is just 2.0.6-rc.0. If that works, it is safe to assume 0.x will work, so no release candidate will be needed there. update: it was not that easy, the next two steps are new
    • Remove the CI builds for aarch64-apple-darwin apollographql/federation-rs because V8 snapshots cannot be cross-compiled from x86_64 machines and CircleCI does not currently provide native ARM64 Mac machines meaning we have to cross-compile if we want ARM binaries at all. If either of those things change, we will revisit this decision.
    • Test downloading and running supergraph compose with 2.0.6-rc.1 in a supergraph.yaml with rover built from main natively on an arm ubuntu device, and in Docker on an M1
  • Release first stable federation-rs releases with native ARM support (only Linux binaries, no ARM64 MacOS binaries)
  • NOW, we can merge this PR!
  • Release ARM support for Rover
    • Cut [email protected]
    • Test downloading and running supergraph compose natively on an M1, and in Docker on an M1
    • Release more rcs until we are confident everything works
    • Cut rover@vNext!

@netlify
Copy link

netlify bot commented May 26, 2022

Deploy Preview for apollo-cli-docs ready!

Name Link
🔨 Latest commit ca9d930
🔍 Latest deploy log https://app.netlify.com/sites/apollo-cli-docs/deploys/62b2124d8f97b0000cda8451
😎 Deploy Preview https://deploy-preview-1137--apollo-cli-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

.circleci/config.yml Outdated Show resolved Hide resolved
src/command/install/plugin.rs Outdated Show resolved Hide resolved
src/error/metadata/suggestion.rs Show resolved Hide resolved
@o0Ignition0o
Copy link
Contributor

There's quite a bit to review, I hope I didn't miss anything 😅

@EverlastingBugstopper EverlastingBugstopper marked this pull request as draft June 9, 2022 17:49
@EverlastingBugstopper
Copy link
Contributor Author

I've been updating the PR body here but wanted to provide another comment update - the next federation packages of v1/v2 could be a bit of a wait to get out the door. We're blocked here until those come out.

@abernix abernix mentioned this pull request Jul 12, 2022
@hobbsh

This comment was marked as off-topic.

@reduxdj
Copy link

reduxdj commented Sep 13, 2022

What's the status of this PR?

@danilobuerger
Copy link

@EverlastingBugstopper It seems like supergraph was released with arm support a while ago. Is there anything still missing in order to merge this?

@EverlastingBugstopper
Copy link
Contributor Author

EverlastingBugstopper commented Sep 29, 2022

closing in favor of #1356 - i've updated the status there, hoping to get this out soon. ARM support has landed in all plugin upstreams, supergraph binaries and the next release of the router binary (should be coming soon) will include ARM support.

@EverlastingBugstopper EverlastingBugstopper deleted the avery/arm branch November 9, 2022 17:24
EverlastingBugstopper added a commit that referenced this pull request Nov 10, 2022
This PR supercedes #1137 as the rebase was much too gnarly. This is
essentially that same PR. Copying the description w/updated status
below:

We should not merge this PR and release ARM support until we can run the
latest `rover supergraph compose` and `rover dev` commands on ARM.

The following must happen, in order, before landing this PR.

  - [x] Test ARM support with `federation-rs` release candidates
- [x] Release[`[email protected]`
_(javascript)_](https://github.com/apollographql/federation)
- [x] Release[`[email protected]`
_(rust)_](https://github.com/apollographql/federation-rs)
- [x] Test downloading and running `supergraph compose` with
`2.0.6-rc.0` in a `supergraph.yaml` with `rover` built from `main`
natively on an M1, and in Docker on an M1
- [x] Continue releasing release candidates until it all works.
~Hopefully it is just `2.0.6-rc.0`. If that works, it is safe to assume
0.x will work, so no release candidate will be needed there.~ _update:
it was not that easy, the next two steps are new_
- [x] Remove the CI builds for `aarch64-apple-darwin`
apollographql/federation-rs because [V8 snapshots cannot be
cross-compiled from x86_64
machines](denoland/deno#4862 (comment))
and [CircleCI does not currently provide native ARM64 Mac
machines](https://circleci.com/docs/2.0/using-arm/#m1-mac-support)
meaning we _have_ to cross-compile if we want ARM binaries at all. If
either of those things change, we will revisit this decision.
- [x] Test downloading and running `supergraph compose` with
`2.0.6-rc.1` in a `supergraph.yaml` with `rover` built from `main`
natively on an arm ubuntu device, and in Docker on an M1
- [x] Release first stable `federation-rs` releases with native ARM
support (only Linux binaries, no ARM64 MacOS binaries)
- [x] Release [`[email protected]`
_(javascript)_](https://github.com/apollographql/federation)
- [x] Release [`[email protected]`
_(rust)_](https://github.com/apollographql/federation-rs)
- [x] Release [`[email protected]`
_(javascript)_](https://github.com/apollographql/federation)
- [x] Release [`[email protected]`
_(rust)_](https://github.com/apollographql/federation-rs)
- [x] Test downloading and running `supergraph compose` with the
packages we just released
- [x] Release [`[email protected]`](https://github.com/apollographql/router)
  - [x] Prepare ARM support for Rover
    - [x] Cut `[email protected]` 
- [x] Test downloading and running `supergraph compose` natively on an
M1, and in Docker on an M1
    - [x] Release more rcs until we are confident everything works
    - [x] Wait for the cloud router to default to version 2.1.x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants