Installing adacovex

Quick start

  1. Install via Alire: alr install covex gnatprove && export PATH="$HOME/.local/bin:$PATH"

  2. Assess your project: adacovex --target=. --dal=C

  3. Serve the dashboard: adacovex --target=. --serve --port=8080

That is all you need for a local compliance assessment. For CI or release workflows, see CI/CD.

adacovex is distributed as the covex Alire crate, a release bundle on GitHub, or a source build. All three routes produce the same binary (adacovex, with a covex alias on Linux).

Option 2: alr install (global, to $PATH)

alr install covex gnatprove
export PATH="$HOME/.local/bin:$PATH"

covex is the Alire crate name for adacovex (crate page). Once on $PATH, it scans the current directory by default. A gnatprove installed this way is picked up from $PATH by covex prove when the target project declares no manifest dependency of its own.

Option 3: download a release bundle from GitHub

Every vX. Y. Z tag publishes `adacovex-vX. Y.

Z.tar.gz` on the GitHub Releases page.

curl -fsSL https://raw.githubusercontent.com/bladeacer/adacovex/main/install.sh | bash

Bundles are attested with actions/attest.

Release binaries are Linux x86-64 only. Other platforms build from source via Alire (see Platforms).

Building from source

git clone --depth 1 https://github.com/bladeacer/adacovex.git
cd adacovex
just build          # version + dashboard/manual generators, then alr build
just test           # the native suite

just is the task runner every recipe in this manual uses (just --list lists them). just build runs the version, dashboard, and offline-manual generators and then alr build; a plain alr build also builds the binary when just is not installed. Either route produces bin/adacovex (with a bin/covex alias). Add --branch vX.Y.Z to the clone for a released tag. A stock Alire toolchain (gnat_native + gprbuild) plus the standard GNAT runtime is all that is needed. No other dependencies. (Contributors use the same just tasks; see the developer guide.)

Version source per installation method

adacovex --version (and the man page, the SBOM tool version, and the result cache namespace) resolve the version from tools/gen-version.py. The version depends on the installation method:

  1. ADACOVEX_VERSION – release builds (the shipped binary always reports the tag it was built from). See Global configuration and state for every environment variable adacovex reads.

  2. alire/alire-dev.toml – source checkouts (version = "x.y.z").

  3. alire.toml – dependency-managed installs: the toml associated with the covex binary for dependency management carries the release version.

adacovex status also reports how the running binary was installed. It prints source-checkout for a binary built inside an adacovex source tree, alire-global for a binary under a global alr install prefix, and on-path for every other binary, with the path beside it. The same three values reach the JSON and the metrics output as install_method.

Keeping the man page in sync

adacovex man installs the man page (which embeds the version) into a man root that the host reader searches. It prefers the first home-owned $MANPATH entry, otherwise the platform data root: ~/.local/share/man on Linux and the BSDs, ~/Library/Application Support/man on macOS, and %APPDATA%\man on Windows. It refreshes the index with mandb (man-db) or makewhatis (mandoc). adacovex man --check exits 0 when the installed page matches the binary. A shell prompt hook can auto-update. man --force overwrites an up-to-date page.

When neither indexer is available, the page still installs. Read it with man -l <root>/man1/adacovex.1. The command warns when the root is not on the reader’s man path. See Platforms – local man page for the platform matrix, the root selection, and the reader behaviour.

Keeping the tldr page in sync

adacovex tldr installs the bundled tldr cheat sheet into the local tldr client, so tldr adacovex works offline. The command detects the client and writes to that client’s own page location. tealdeer gets the page in the custom pages directory that tldr --show-paths reports, for example ~/.local/share/tealdeer/pages/adacovex.page.md on Linux. A base client gets the page in its cache pages tree (for example ~/.cache/tldr/pages/common/adacovex.md), plus the host platform directory (linux, osx, windows, android, sunos, or a BSD name). The path follows the platform rules in Platforms – local tldr page.

adacovex tldr --check exits 0 when the installed page matches the bundled one, and 1 when it is missing or stale. A shell prompt hook can auto-update. adacovex tldr --force rewrites an up-to-date page.

The page contains no version, so the check compares content, and an install after an upgrade always refreshes it. With no supported client, the command prints the page to stdout. adacovex tldr --check then exits 1 because there is no installed page.