Skip to main content

A Python-based build system for bespoke use

Project description

🦺 Vest

image image image Actions status

Vest is a Python-based build system for bespoke use.

Getting started

First, install Vest from PyPI:

pip install vest-build

Then, create a build.vest file! What this file will do depends on your project. Let's say you're building a C project. In this case, your .vest file might look like this:

from vest import *

component(
    name = "my-c-project"
)

@task
def build():
    # Let's turn each C file to an object file...
    for (src, dst) in build_list(
        src = "./src/**/*.c",
        dst = "./obj",
        ext = ".o",
        flatten = True
    ):
        run("gcc", ["-c", src, "-o", dst])

    # ...then link em' all!
    run("gcc", [
        "-o", "./bin/final",
        *glob("./obj/*.o")
    ])

    # Tasks should return all of their final artifacts. This can be a string, list of strings, or a dictionary of strings.
    return "./bin/final"

@task
def run():
    # "run" needs a build to execute!
    artifact = self_dependency(build)

    # Let's run what "build" gave us.
    run(artifact)

In the directory you've created the vest.build file in, run vest -t build.

Extensions

Vest doesn't assume what languages nor frameworks you're using it for. However, there's a couple of ready PyPI packages for known use-cases:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vest_build-0.0.2.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vest_build-0.0.2-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file vest_build-0.0.2.tar.gz.

File metadata

  • Download URL: vest_build-0.0.2.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vest_build-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e8a870a7b2504f0d3080cb451f8825ad94eb55ca2f368c56b5b3ec954b4db481
MD5 2ab224c979ef3102bc6ff77a4909aa19
BLAKE2b-256 129cbd4d77c53104d5f9ac571a8b520390d8a4aafb9176ce283b4fbd0e1ea563

See more details on using hashes here.

File details

Details for the file vest_build-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: vest_build-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vest_build-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6642513603c081c79d20e4a1e4d54be4b90a62184e1b03e8a23675f03c640b32
MD5 e22bacb37938f09ed52fe17bf69d3677
BLAKE2b-256 eac90c98f0f0fda489dd25584901ae7ddc665e48f8c58404b2c3d124b80e2554

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page