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.3.tar.gz (19.0 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.3-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vest_build-0.0.3.tar.gz
  • Upload date:
  • Size: 19.0 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.3.tar.gz
Algorithm Hash digest
SHA256 248bfde35d252270a185425db33b6dfd60deecdcdf86c0d5eb6e5f4a6544c112
MD5 0eb2a2fdd9b22ec30f34ad3c73560fb7
BLAKE2b-256 312e1609f4039728eb4f1bad6447d952189e9241110880c5fa5c0c912dc35f33

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vest_build-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 24.4 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ebdaaa34b12095da4bcaf3cd566d5149865d8d927c2b9bde54b013a4a44672e3
MD5 5388f546173f53a9afc48f1056448b83
BLAKE2b-256 ce4c7593a091a44f4e726ea8495e94dee9bc435284404908ff775e183f47fb24

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