ALT-F4-LLC / vorpal

Maintain your entire supply chain with one magical tool.
Apache License 2.0
69 stars 6 forks source link
rust vorpal

vorpal

Build and deliver software reliably with one magical tool.

Overview

Vorpal's goal is to package and distribute software reliably to local (development) and remote (cloud, self-hosted, etc) environments. It uses a vorpal.ncl file written in Nickel that allows you to "describe" every aspect of your software dependencies in a repeatable and reproducible way.

# Built-in validation contracts
let { Config, .. } = import "schema.ncl" in

# Built-in language functions
let { RustPackage, .. } = import "language.ncl" in

# Project configuration (with `--system "<system>"` value)
fun system => {
  packages = {
    default = RustPackage {
      cargo_hash = "<hash>",
      name = "vorpal",
      source = ".",
      systems = ["aarch64-linux", "x86_64-linux"],
      target = system
    }
  }
} | Config

Design

Below is the existing working diagram that illustrates the platform's design:

[!CAUTION] This design is subject to change at ANY moment and is a work in progress.

vorpal

Development

Requirements

The following tools are required to develop:

Steps

The following steps guide how to setup and run commands in the development environment.

[!IMPORTANT] Steps must be run in the root of the cloned repository.

./dev.sh
direnv allow

[!IMPORTANT] Review the makefile for all development commands.

make