Skip to content

Maintain your entire supply chain with one magical tool.

License

Notifications You must be signed in to change notification settings

ALT-F4-LLC/vorpal

Repository files navigation

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:

  • curl (http client)
  • direnv (environment variables)
  • rustup (language toolchains)

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.

  • Run dev.sh script to bootstrap dependencies:
./dev.sh
  • Run to enter development environment:
direnv allow
  • Build the source code with:

Important

Review the makefile for all development commands.

make

About

Maintain your entire supply chain with one magical tool.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages