apollographql / rover

The CLI for Apollo GraphOS
https://rover.apollo.dev
Other
408 stars 85 forks source link

Problem when running binary #1602

Closed EmilioDNA closed 1 year ago

EmilioDNA commented 1 year ago

Description

I downloaded the binary installation file directly and when trying to execute (manually on the folder location), I got an installation notification on the command line but it get froze and doesn't allow me to input any command. The last portion of the text is: Saving session... ...copying shared history... ...saving history...truncating history files... ...completed.

[Process completed]

But after that I cannot input anything.

Steps to reproduce

In a Mac computer, downloaded the file on the repo https://github.com/apollographql/rover/releases (I tried different versions for Mac).

Then manually executed the binary and got the message listed on the description section.

Expected result

To install Roven CLI successfully and allow me to input commands.

Actual result

The CLI gets frozen after [Process completed] but without a way to input commands.

Environment

EverlastingBugstopper commented 1 year ago

Hi @EmilioDNA - not sure where you got those errors, it's not something that should ever be printed by Rover. Here are the steps I took in my terminal to download and run the binary without using the official installer (though I would just recommend using the official installer because it will take care of everything for you (curl -sSL https://rover.apollo.dev/nix/latest | sh).

$ mkdir tmp
$ cd tmp
$ curl -sSL https://github.com/apollographql/rover/releases/download/v0.14.1/rover-v0.14.1-x86_64-apple-darwin.tar.gz > rover-v0.14.1.tar.gz
$ tar -xzvf ./rover-v0.14.1.tar.gz
x dist/rover
x dist/README.md
x dist/LICENSE
$ ./dist/rover
Rover - Your Graph Companion

Usage: rover [OPTIONS] <COMMAND>

Commands:
  config
          Configuration profile commands
  contract
          Contract configuration commands
  dev
          Combine multiple subgraphs into a local supergraph
  supergraph
          Supergraph schema commands
  graph
          Graph API schema commands
  template
          Commands for working with templates
  readme
          Readme commands
  subgraph
          Subgraph schema commands
  docs
          Interact with Rover's documentation
  update
          Commands related to updating rover
  explain
          Explain error codes
  help
          Print this message or the help of the given subcommand(s)

Options:
  -l, --log <LOG_LEVEL>
          Specify Rover's log level
      --format <FORMAT_KIND>
          Specify Rover's format type [possible values: plain, json]
  -o, --output <OUTPUT_FILE>
          Specify a file to write Rover's output to
      --insecure-accept-invalid-certs
          Accept invalid certificates when performing HTTPS requests
      --insecure-accept-invalid-hostnames
          Accept invalid hostnames when performing HTTPS requests
      --client-timeout <CLIENT_TIMEOUT>
          Configure the timeout length (in seconds) when performing HTTP(S) requests [default: 30]
      --skip-update-check
          Skip checking for newer versions of rover
  -h, --help
          Print help (see more with '--help')
  -V, --version
          Print version

Read the getting started guide by running:

    $ rover docs open start

To begin working with Rover and to authenticate with Apollo Studio,
run the following command:

    $ rover config auth

This will prompt you for an API Key that can be generated in Apollo Studio.

The most common commands from there are:

    - rover graph fetch: Fetch a graph schema from the Apollo graph registry
    - rover graph check: Check for breaking changes in a local graph schema against a graph schema in the Apollo graph
registry
    - rover graph publish: Publish an updated graph schema to the Apollo graph registry

You can open the full documentation for Rover by running:

    $ rover docs open
EmilioDNA commented 1 year ago

Hi @EverlastingBugstopper When trying to install I got the same output on the CLI but with additional content at the end:

Rover - Your Graph Companion

Usage: rover [OPTIONS]

Commands: config Configuration profile commands contract Contract configuration commands dev Combine multiple subgraphs into a local supergraph supergraph Supergraph schema commands graph Graph API schema commands template Commands for working with templates readme Readme commands subgraph Subgraph schema commands docs Interact with Rover's documentation update Commands related to updating rover explain Explain error codes help Print this message or the help of the given subcommand(s)

Options: -l, --log Specify Rover's log level --format Specify Rover's format type [possible values: plain, json] -o, --output Specify a file to write Rover's output to --insecure-accept-invalid-certs Accept invalid certificates when performing HTTPS requests --insecure-accept-invalid-hostnames Accept invalid hostnames when performing HTTPS requests --client-timeout Configure the timeout length (in seconds) when performing HTTP(S) requests [default: 30] --skip-update-check Skip checking for newer versions of rover -h, --help Print help (see more with '--help') -V, --version Print version

Read the getting started guide by running:

$ rover docs open start

To begin working with Rover and to authenticate with Apollo Studio, run the following command:

$ rover config auth

This will prompt you for an API Key that can be generated in Apollo Studio.

The most common commands from there are:

- rover graph fetch: Fetch a graph schema from the Apollo graph registry
- rover graph check: Check for breaking changes in a local graph schema against a graph schema in the Apollo graph

registry

You can open the full documentation for Rover by running:

$ rover docs open

Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. Deleting expired sessions...none found.

[Process completed]

However, once the CLI got to [Process completed] it gets stuck and I'm not able to input any command. It just doesn't allow to input anything. It freezes on that message.

EverlastingBugstopper commented 1 year ago

Sure - so this section of the output occurs when you double clicking to run a binary on MacOS instead of running it in a shell.

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.

[Process completed]

So, if you're expecting to be able to run Rover by double clicking it in Finder, that won't work, because you are unable to specify any arguments or subcommands by doing so. (How would you run something like rover config whoami by double clicking it in Finder?)

Instead, what you need to do is open your terminal application (I like iTerm2 or the integrated VS Code terminal, and then run Rover by typing /path/to/where/you/downloaded/rover. From there you can run other commands like /path/to/rover config auth or /path/to/rover config whoami to authenticate yourself with GraphOS. You can also run /path/to/rover install which will set up your local environment to put Rover in a known place in your PATH so that you can run rover without needing to specify the entire /path/to/rover every time you run the application.

Hope this helps!

EverlastingBugstopper commented 1 year ago

If you aren't opening this from Finder like I think you are, I recommend checking out this StackExchange for other folks encountering this issue.

EmilioDNA commented 1 year ago

Ohhh gosh I see the issue. Yeah, that was the problem. Thanks a lot for helping me out. @EverlastingBugstopper

EverlastingBugstopper commented 1 year ago

You got it - happy to help 😄