A Python-based build system for bespoke use
Project description
🦺 Vest
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:
vest-build-dotnet: support for the .NET SDK.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vest_build-0.0.1.tar.gz.
File metadata
- Download URL: vest_build-0.0.1.tar.gz
- Upload date:
- Size: 18.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db6312adacf480c4211a70d9f92666964a495367e33336765fc5ecda05e46dcd
|
|
| MD5 |
52b5be5f242217980bd5e96df7260145
|
|
| BLAKE2b-256 |
be957f5de43a993a11900956708efee9e6e3b2f861ce31c52b5cd2a348952d27
|
File details
Details for the file vest_build-0.0.1-py3-none-any.whl.
File metadata
- Download URL: vest_build-0.0.1-py3-none-any.whl
- Upload date:
- Size: 23.7 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c191104274e40e7396f945d81954669c7dd43fbedbdb60777e31d31a6eb06d86
|
|
| MD5 |
058032eec6b134fc051479c9c9dca3b6
|
|
| BLAKE2b-256 |
777351b7fe07f532864edea3a396b4d4a554045ad66bbbadfb71ac47476427a5
|