Skip to content

rfprod/rust-workspace

Repository files navigation

Rust workspace

Rust workspace with workflow automation.

Commitizen friendly

Workflows

Trigger Badge
ℹ️ PR merge event (destination: trunk) trunk
ℹ️ Scheduled (weekly) validate-codeowners
ℹ️ PR open event (destination: trunk) validate-pr

Requirements

In order to run own copy of the project one must fulfill the following requirements.

Supported operating systems

  • 🏆 Debian based Linux
    • install all dependencies required to work with the project except NodeJS: rustup, commitizen, shellcheck
      bash tools/shell/install.sh all
    • see help for available options
      bash tools/shell/install.sh ?
  • 🆗 OSX
    • install all dependencies required to work with the project except Python: rustup, commitizen, shellcheck
      bash tools/shell/install.sh all osx
    • see help for available options
      bash tools/shell/install.sh ?
  • 🤷 Windows
    • install shellcheck
      iwr -useb get.scoop.sh | iex
      scoop install shellcheck
    • recommended shell: Git for Windows > Git BASH
    • configure Git to use LF as a carriage return
      git config --global core.autocrlf false
      git config --global core.eol lf
    • one will have to figure out oneself how to install the commitizen package, the instructions for Linux will possibly work (see below)

Integrated development environment

🏆 Visual Studio Code - recommended for all operating systems

Core dependencies

Committing changes to the repo

Linux

Using commitizen cli is mandatory.

The commit message are validated during the premerge checks.

It is assumed that Node.js is installed.

Given the NodeJS is installed, and commitizen cli is installed as a global dependency, the following command should be used to initiate the commit process

git cz

Alternatively, given there are no conflicts with other projects that use the commitizen npm package, one could install commitizen globally via pypi like this

sudo pip3 install -U Commitizen

OSX

Using commitizen is mandatory.

The commit message are validated during the premerge checks.

After installing the package as a global utility using the following command

brew install commitizen

one can use one of the following commands to initiate the commit process

cz commit

or

cz c

General Tooling

This project was generated using Cargo.

The Rust and Cargo logos (bitmap and vector) are owned by the Rust Foundation and distributed under the terms of the Creative Commons Attribution license (CC-BY). The logos are used in compliance with the Rust Foundation Logo Policy and Media Guide. No changes have been made to the original logos used by the project. The project was created for educational purposes.

What is Cargo

Cargo is the Rust package manager. Cargo downloads your Rust package's dependencies, compiles your packages, makes distributable packages, and uploads them to crates.io, the Rust community package registry.

Quick Start & Documentation

Further help

rustup --help
cargo --help

Technology Reference

Workspace

CI

Development methodology