Skip to content

Create build scripts for our different Telemetry projects. #2

@onkoe

Description

@onkoe

Right now, anyone who wants to work on our Telemetry code has to manually install a bunch of stuff. To get around this, let's create some scripts to do everything for us!

To-Do

  • Decide which language we should write the build scripts in:
    • Python: portable, but may require using libraries and, thus, using the global environment or maintaining our own. What a pain...
    • Rust: everyone will have it already, but we'll have to wait for it to compile no matter what. It may also be longer than necessary. On the bright side, we can just "include it" with cargo run on just's end, making everything a lot easier to maintain.
    • Ruby: portable, with a real package manager, but older syntax. I don't think anyone has a great knowledge of it, either...
    • [ ]: Nushell: combines the ease of Rust with the annoyances of shell. Probably not worth it?

Dependencies

Users must install the dependencies to get everything working as expected. Let's guide them through it! :)

  • Change the README to guide the user to install just, git, and cargo. Then, tell them how to open a new terminal window, git clone, and then just install the dependencies.
    • That way, the user only has to install these... and everything else comes for free. :)
  • Create dependency installation script.
    • Cross-platform compatibility required - check for the current platform, then do stuff.
    • Windows
      • Install Scoop
      • Deps
    • macOS
      • Still TODO ngl
    • Linux
      • by distro
    • All of them use the same Cargo command to install ravedude.
  • Consideration: when everything is complete, generate a .deps file in the repo root?

sender

Usually, running an Arduino binary takes only a bit of knowledge in the GUI. Here, you need to know how to open a terminal window, but it's still easier than doing it yourself!

  • Ensure dependencies are installed. .deps???
    • Provide good error messages in case something isn't installed. For example, we can tell them in color to run the other just command first.
  • Let users input their Arduino model and serial port (either /dev/something on Linux/Unix or COMx on Windows.
    • List serial/COM ports when we can't find the Arduino connected. Instruct users to try these different ones until they find one that works.
    • Upload the sender binary with cargo run --release! (make sure it should actually be release tho)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions