Onboarding experience #95
Replies: 8 comments 5 replies
-
This is done already in DEVELOPMENT.md. Can you provide more points on what you would like to add/modify.
This is the exact same point than the "routing" so I'm putting this here. But let me know if you had something else in mind. You can create another discussion thread for it. |
Beta Was this translation helpful? Give feedback.
-
This is already possible. The user can run the subservices locally using docker with docker-compose or they can run the federation-demo directly without docker. Can you provide more points on what you would like to add/modify. |
Beta Was this translation helpful? Give feedback.
-
This is done already in DEVELOPMENT.md. Can you provide more points on what you would like to add/modify. |
Beta Was this translation helpful? Give feedback.
-
This sounds more like a philosophical point. Can you give more details on what you have in mind and how concretely it translates? |
Beta Was this translation helpful? Give feedback.
-
I agree that this is not ideal. One other problem related to this is that there is nowhere in the DEVELOPMENT.md that explains how to run it. You have to figure that out by yourself. Solutions
Examples for solution 3Here is a directory structure:
It is expected that Rust developer knows how to run the Since It is also possible to have complete "example crate" like this:
In this example you can use the same command to run the example: Even though the Rust developer is expected to know how to run an example. It is nice to leave a quick note in the DEVELOPMENT.md on how to run it by giving the actual command. |
Beta Was this translation helpful? Give feedback.
-
I understand here that you want the example and the dev environment to run as simply as possible. Preferably with a oneline command like There is a "complicated question" here because the router does not actually do anything on its own. It's not like the deps.rs server that you can run and it works without the need of external services. Here you need:
Current situationIt is important to note that in the current setup of the router repository there is only one command to run the subgraphs and the gateway: Some people don't like the idea to run containers and will prefer to run things natively without container. This is okay and it is already explained in the Quickstart section of the DEVELOPMENT.md. This submodule initialization is not explained in the quickstart when using docker. This should be improved. My personal viewI'm personally not one in favor of a one-command-does-all in this situation because I believe the user must make a conscious choice to run the subgraphs, gateway and the router. Otherwise they have no idea what is running on their machine. That being said, I'm not again an xtask that would run the subgraphs and gateway in one shot. Nevertheless, even if it's not yet an xtask, the |
Beta Was this translation helpful? Give feedback.
-
Outdated information in the DEVELOPMENT.md that should be fixed:
|
Beta Was this translation helpful? Give feedback.
-
We should probably add in DEVELOPMENT.md that the complete CI tests can be ran using the command The Some people prefer to have Git hooks for running those tests and lint locally instead of waiting for CI. I think we should provide those. Git hooks are always opt-in so someone who don't like them can disable them locally easily. |
Beta Was this translation helpful? Give feedback.
-
This issue will cover the various things I would like to work on before reveal in order to facilitate the newcomers onboarding experience on the router.
This includes:
routing (pun intended) newcomers through this repo to successfully set up and run the router (possibly with the supergraph demo, or a variant of it).
Allowing users to run the router and the subservices locally, possibly using docker and docker-compose.
give quickstart information to new users.
Set new contributors up for success.
I'm making a lot of assumptions, and trying to map these with things we can do to help, please comment on this issue so we can update assumptions, pain points, and plans to fix accordingly.
User shortest path to success:
Users will probably come to the repo, git clone it, and then cargo run.
Some may read the README.md file before (or after), and possibly look for a QUICKSTART.md file, but not much more.
Pain point
The router needs to be passed a -p configuration. This means the first
cargo run
will lead to an error.Solution
We want to provide hints in the README.md, as well as in an eventual QUICKSTART.md, and one more hint when running cargo run.
This is the current message we receive when running
cargo run
:We know for sure no configuration file path has been provided, which means we can hint the users to provide one, and that if they want to play with the router, there's a supergraph demo example available near by:
expected message could look like:
we could also add a quickstart folder with a simple example, our own subservices.
README / QUICKSTART:
Provide instructions on how to docker-compose up the subservices, and run the router with the supergraphdemo example.
cc @abernix for anything you deem relevant for this to happen, and any other onboarding related issues you might think of
All of this can also be reflected in the docs.
Beta Was this translation helpful? Give feedback.
All reactions