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

Improve beginner experience #645

Merged
merged 7 commits into from
Sep 9, 2024
Merged

Improve beginner experience #645

merged 7 commits into from
Sep 9, 2024

Conversation

Hennzau
Copy link
Collaborator

@Hennzau Hennzau commented Sep 4, 2024

Objective

Hi! This PR proposes several changes to the installation process, README.md, and examples to make it easier for beginners to get started with Dora.

Installation

  • The install.sh script for Linux and macOS now automatically detects the user's terminal and asks if they want to add .dora/bin to their PATH automatically.

  • A new install.ps1 script does the same for Windows. The following command (note: it doesn't work yet because this PR hasn't been merged into the main branch, so the path needs to be adapted) works regardless of whether the user is in CMD, bash, or PowerShell (this helps avoid potential errors):

powershell -c "irm https://raw.githubusercontent.com/dora-rs/dora/main/install.ps1 | iex"

=> I believe having a standalone installation script will help convince more beginners to use Dora (especially among students/teachers). Using crates.io requires several steps, particularly on Windows: installing Rustup, simultaneously installing MSVC, and then installing dora-cli. For many who are not Rust developers, this can involve too many steps (especially regarding MSVC, since the Visual Installer interface is not very intuitive, and beginners might not know what to install).

README.md

I was inspired by existing GitHub projects to propose a clearer README.md that quickly highlights the important steps of the project: Highlights, Installation, and Documentation/Getting Started.

Examples

I haven't worked on this part yet, but I think it's necessary to rework our examples folder. I find it easy to get lost in it as it currently feels more like a tests directory than examples meant to guide a user.

What would be helpful is:

  • Creating more explicit examples like rust-talker-listener, python-video-capture, rust-speech-to-text, python-ros2-bridge, multiple-machine-talker-listener, etc., instead of just c++-dataflow, python-dataflow, etc.

  • Automatically integrating all our examples into the CI.

  • For the python examples, to facilitate execution with run.rs scripts, it might be worth considering using uv (https://github.com/astral-sh/uv), as they offer a crate that allows managing an entire python installation, venv, dependencies from Rust. This might be simpler than having to find a Python binary, install everything, etc.

@haixuanTao
Copy link
Collaborator

That looks awesome!!! Thanks!

Really like the new performance review diagram :)

I think this can already be merged :)

@Hennzau
Copy link
Collaborator Author

Hennzau commented Sep 9, 2024

Cool! Let met update the links and I will merge it!

@Hennzau Hennzau marked this pull request as ready for review September 9, 2024 08:56
@Hennzau Hennzau self-assigned this Sep 9, 2024
@Hennzau Hennzau added documentation Improvements or additions to documentation enhancement New feature or request windows labels Sep 9, 2024
README.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@haixuanTao haixuanTao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding a links for the benchmark as it is a common asked question.

Co-authored-by: Haixuan Xavier Tao <tao.xavier@outlook.com>
@Hennzau Hennzau merged commit 28ebac9 into main Sep 9, 2024
40 checks passed
@Hennzau Hennzau deleted the improve-beginner-exp branch September 9, 2024 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants