Skip to main content

Environment

Development of OctoType is pretty simple, and shouldn't require any obscure dependencies. All tools used by me are listed in the Tools section.

Nix Devshell

If you use nix, a devshell is provided for development within the flake.nix of the repository. It can be started with (Reuires flakes enabled):

nix develop . --command "<your shell here>"

The devshell supplies all dependencies needed to develop on OctoType, with the addition of a few tools that i prefer.

just

just is command runner (Like make).

just is used to ensure that scripts are streamlined throughout the development of octotype.

The easiest way to install just is through Cargo:

cargo install just

If you don't already have Cargo installed, check the Codebase Development section for instructions.

You can see how to install just here.

note

On Windows just requires you to have sh installed by default. You should be able to overwrite this overwrite this by setting

set shell := ["powershell.exe", "-c"] or set shell := ["cmd.exe", "/c"]

in your user justfile, if you prefer not installing sh

To get started using just, you can list the available commands by simply executing:

just

Or, you can take a look in the justfile in the root of the repository.

Codebase development

All you need for developing on the codebase is the rust "suite" of tools (Cargo, rustup, etc.) and cargo-nextest.

The rust tools can be installed here.

And after that, you can install cargo-nextest via. Cargo:

cargo install cargo-nextest --locked

You can then use the just scripts to run, build or test the binary.

Documentation development

Editing the documentation doesn't need any tools, but they can come in handy for previewing and testing compilation of the page.

If you want to be able to serve the development site of the docs, you need NodeJS.

Once installed you can go into the docs folder in the repository and install the node dependencies by running:

npm install

Then, to start the development server you need to run:

npm start # Runs a development preview server with hot-reloading

Other great tools

ToolDescriptionInstallation
baconA background code checker for rustcargo install bacon
cargo-expandExpand rust macros to see what code they generatecargo install cargo-expand