Development Setup

Prerequisites

If you want to develop on the backend, make sure you have enough RAM. When performing cargo build, we have experienced (on wsl) a usage of ~12GB.

  • Python
  • Rust
  • Javascript
    • nvm
    • node

Operating Systems

  • Windows 11
  • macOS 13.1 (Unix)

IDE

Visual Studio Code Extensions

Frontend

Backend

Rust formatting can be achieved by adding the following to settings.json in VSCode after installing rust-analyzer:

  "[rust]": {
    "editor.defaultFormatter": "rust-lang.rust-analyzer",
    "editor.formatOnSave": true
  }

Package Managers

Installing Node + Npm

If you are using unix, macOS, and windows WSL, consider using nvm to manage your node environment:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
nvm install 20
nvm use 20

Or if you use the default macOS starting with Catalina shell zsh, try:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh)"

Installing Rust + Cargo

If you’re using Linux or macOS, open a terminal and enter the following command:

$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

This installs rust and cargo automatically on your machine. If you get linker errors, proceed by installing a C Compiler, which will typically include a linker.

To install our specific version of Rust, just run the following command:

rustup install 1.74

On Windows, go to https://www.rust-lang.org/tools/install and follow the instructions for installing Rust. At some point in the installation, you’ll receive a message explaining that you’ll also need the MSVC build tools for Visual Studio 2013 or later.

To acquire the build tools, you’ll need to install Visual Studio 2022. When asked which workloads to install, include:

  • Desktop Development with C++
  • The Windows 10 or 11 SDK
  • The English language pack component, along with any other language pack of your choosing

In case you don't prefer any of the previously mentioned installations methods, click here for alternatives.

Browsers

  • Chrome 108.0.5359
  • Firefox 108.0.2

Dependencies

If you want to install all necessary dependencies for development run following command in /workspaces/PermaplanT:

make install

Containers

We are also supporting a containerized setup(docker/podman). For more information checkout the README inside .devcontainer.