Developer Tools

vrelease

Builds, zips and hashes a release with the same commands you’d type.

Released v1.0.0 · 2026-09-28
Import
use "stdlib/release.ven"
vrelease.ven
print output_path_for("stdlib/release.ven", "build/release")
Reference (25 functions)

API reference

output_path_for(source_path, out_dir)

Builds the .vbc output path build_source should compile source_path to.

output_path_for("stdlib/release.ven", "build/release")

build_source(source_path, output_path)

Compiles one .ven source file to a .vbc artifact via the real bin/venutian build command.

build_source("stdlib/release.ven", "build/release/vrelease.vbc")

build_sources(source_paths, out_dir)

Builds every source in source_paths into out_dir, creating it first if needed.

build_sources(["stdlib/release.ven"], "build/release")

ensure_release_directory(directory)

Creates directory if it does not already exist.

ensure_release_directory("build/release")

builds_all_ok(build_results)

Tests whether every result in build_results has "ok" set to yes.

builds_all_ok([build_source("stdlib/release.ven", "build/release/vrelease.vbc")])

format_build_summary(build_results)

Renders build_results as one human-readable, line-per-source summary.

format_build_summary([build_source("stdlib/release.ven", "build/release/vrelease.vbc")])

run_gate_test(test_path)

Runs one test file via bin/venutian run and checks its real exit code.

run_gate_test("tests/vrelease_test.ven")

run_gate_tests(test_paths)

Runs every test in test_paths as the release's test gate.

run_gate_tests(["tests/vrelease_test.ven"])

tests_all_passed(gate_results)

Tests whether every result in gate_results has "ok" set to yes.

tests_all_passed([run_gate_test("tests/vrelease_test.ven")])

format_gate_summary(gate_results)

Renders gate_results as one human-readable, line-per-test summary.

format_gate_summary([run_gate_test("tests/vrelease_test.ven")])

checksum_of_file(path)

checksum_of_file("build/release/vrelease.vbc")

checksum_manifest(paths)

checksum_manifest(["build/release/vrelease.vbc"])

format_checksums_text(checksums)

Renders checksums as a plain "<hash> <basename>" text file, one line per path.

format_checksums_text(checksum_manifest(["build/release/vrelease.vbc"]))

save_checksums_file(path, checksums)

Writes checksums to path as a plain checksums text file.

save_checksums_file("build/release/checksums.txt", checksum_manifest(["build/release/vrelease.vbc"]))

verify_checksums(checksums)

Recomputes and compares each path in checksums against its expected hash.

verify_checksums(checksum_manifest(["build/release/vrelease.vbc"]))

checksums_all_ok(results)

Tests whether every result in results has "ok" set to yes.

checksums_all_ok(verify_checksums(checksum_manifest(["build/release/vrelease.vbc"])))

new_release_manifest(name, version)

Builds a fresh release manifest for name at version, with an empty artifacts list.

new_release_manifest("venutian", "1.2.0")

add_artifact(manifest, path, checksum)

Appends one artifact entry (base name plus checksum) to manifest, in place.

add_artifact(new_release_manifest("venutian", "1.2.0"), "build/release/vrelease.vbc", "abc123")

save_release_manifest(path, manifest)

Writes manifest to path as pretty-printed JSON.

save_release_manifest("release.json", new_release_manifest("venutian", "1.2.0"))

load_release_manifest(path)

Reads and decodes the release manifest at path.

load_release_manifest("release.json")

package_release(archive_path, file_paths)

Packages file_paths into a single local zip archive at archive_path.

package_release("build/release/venutia-1.2.0.zip", ["build/release/vrelease.vbc"])

release(name, version, source_paths, test_paths, work_dir)

Runs the whole build/gate/package pipeline: build sources, run tests, then package a local zip.

release("venutian", "1.2.0", ["stdlib/release.ven"], ["tests/vrelease_test.ven"], "build/release")

release_failure(stage, build_results, gate_results)

Builds a failed-release result map for the given stage.

release_failure("build", [build_source("stdlib/release.ven", "build/release/vrelease.vbc")], [])

verify_release(archive_path, extract_dir)

Extracts a packaged archive fresh and re-verifies every artifact's checksum from disk.

verify_release("build/release/venutia-1.2.0.zip", "build/release/verify")

format_release_summary(result)

Renders a release result as one human-readable summary Text.

format_release_summary(release("venutian", "1.2.0", ["stdlib/release.ven"], ["tests/vrelease_test.ven"], "build/release"))

Get notified when vrelease changes

Get notified about

New versions and security advisories.

New and updated packages, once a day.

News on the math model built in Venutian.