Abracadabra was too long. Tomek's Ada, too obvious. An opinionated package management tool for Ada.
Tada handles building, testing, and running Ada packages. It wraps GPRbuild
with sensible defaults and a simple package manifest (tada.toml), so you
spend less time writing build scripts and more time writing Ada.
This is alpha software. I'm actively working it. YMMV.
Tested on Linux x86_64, MacOS ARM and Windows x86_64.
sudo apt install curl gnat gprbuildSee Releases.
curl -L https://github.com/tomekw/tada/releases/download/VERSION/tada-VERSION-PLATFORM -o tada && chmod +x tadaCopy it somewhere on your PATH:
cp tada ~/.local/bin/Once installed, Tada can build itself:
tada build --profile releaseUsage: tada [command] [options]
Commands:
init <name> [--exe|--lib] Create a new package
build [--profile <p>] Compile the package
run [--profile <p>] [-- <args>...] Build and run the executable
test [--profile <p>] Build and run the tests
install Install dependencies
clean Remove build artifacts
help Show this message
version Display versionThe workflow, for now, is still somewhat manual:
- Create a new package with
tada init, either a binary with--exeor a library with--lib. - Run
tada installto install dependencies. - Build with
tada build. Profile is either--debugor--release.--debugis the default. - Run with
tada run.--separates arguments passed to the target binary. - Test with
tada test. - Remove
target/withtada clean.
To add a new dependency:
- Add the dependency to your
tada.toml, e.g.bar = "0.5.2"under[dependencies]or[dev-dependencies]. - Run
tada install. - Use
withto import the dependency's units in your Ada code. Build, test, and run as usual.
[package]
name = "foo"
version = "0.1.0"
[dependencies]
bar = "0.5.2"
baz = "1.2.1"
[dev-dependencies]
testy = "0.1.0"- can't be empty
- is all lower-case
- letters, numbers and underscores only
- can't be Ada's reserved word
- can't start with a number or underscore
- can't end with an underscore
- can't have two consecutive underscores
Tada's own test suite uses Testy:
tada testSee the Packages Index.
If there's something you have built with Tada, and would like to have it included in the index, let me know!
This codebase is written by hand. Claude Code is used for Socratic design exploration and code review.