Version-bound instructions · 0.3.0

Install and run VERSY.

Choose the validated Linux binary or build the public source. Install both command names together.

1. Check the requirements

The packaged binary is validated for Linux x86-64 GNU with glibc 2.43 or newer. Check uname -m and getconf GNU_LIBC_VERSION before downloading. macOS and ARM64 binaries are not validated or distributed for 0.3.0.

Repositories require faithful Unix modes, atomic no-replace publication, and atomic exchange rename. Linux also requires /proc/self/fd and RENAME_EXCHANGE. Use a native Linux filesystem; WSL's Linux filesystem may be suitable, while Windows-mounted drives such as /mnt/c, network shares, and compatibility mounts are not assumed compatible.

Native Windows repositories are unsupported. Core source includes macOS support requiring clone-capable APFS and RENAME_SWAP, but this release's native validation covers Linux only. Read the macOS source-build notes before evaluating there. Python 3.11+ is needed only for the optional Lens UI.

2. Install the Linux binary

Use a temporary download directory. This installs into your own home directory without sudo. The command chain stops if a download, checksum, or installation step fails. Verify the complete digest before unpacking or running the installer.

# Download the archive and its checksum manifest.
curl --fail --location --output 'versy-0.3.0-x86_64-unknown-linux-gnu.tar.gz' \
  'https://versy.dev/packages/0.3.0/versy-0.3.0-x86_64-unknown-linux-gnu.tar.gz' &&
curl --fail --location --output SHA256SUMS \
  'https://versy.dev/packages/0.3.0/SHA256SUMS' &&

# Require this exact hash; do not continue after a mismatch.
echo 'd699640cb11f4b77be510653786790667cd0f594022dd8cc3155b15332083fbf  versy-0.3.0-x86_64-unknown-linux-gnu.tar.gz' | sha256sum --check - &&

tar -xzf versy-0.3.0-x86_64-unknown-linux-gnu.tar.gz &&
cd versy-0.3.0-x86_64-unknown-linux-gnu &&
./install.sh --prefix "$HOME/.local" &&
export PATH="$HOME/.local/bin:$PATH"

Compare the digest above with the matching filename in SHA256SUMS. Preserve the downloaded manifest with the archive. Add export PATH="$HOME/.local/bin:$PATH" to your shell's startup file for future sessions.

The installer places vv and versy in $HOME/.local/bin and documentation in $HOME/.local/share/doc/versy. Keep both binaries adjacent. No package signing or notarization is claimed.

Or build from source

The source archive pins Rust/Cargo 1.98.0. Install rustup using its official instructions, plus a C/C++ build toolchain and the platform prerequisites in the packaged README. Keep Cargo output outside the source tree.

curl --fail --location --output 'versy-0.3.0-src.tar.gz' \
  'https://versy.dev/packages/0.3.0/versy-0.3.0-src.tar.gz' &&
echo 'd86544bf4b0d4ab715ebc28eb7bc86d0c48f8f595267e34b4d6fa5054efde1c7  versy-0.3.0-src.tar.gz' | sha256sum --check - &&
tar -xzf versy-0.3.0-src.tar.gz &&
cd versy-0.3.0 &&

rustup toolchain install 1.98.0 --profile minimal --component clippy,rustfmt &&
export CARGO_TARGET_DIR="$HOME/.cache/versy-build/0.3.0" &&
export LIBSQLITE3_FLAGS="${LIBSQLITE3_FLAGS:+$LIBSQLITE3_FLAGS }SQLITE_ENABLE_DBPAGE_VTAB" &&
cargo +1.98.0 check --locked --workspace --all-features --all-targets &&
cargo +1.98.0 install --locked --path crates/versy-cli --bins &&
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"

The SQLite define enables the module used for derived-index publication; retain it even when invoking Cargo from outside the source directory. The source tree has a regular-file target guard, so the absolute external CARGO_TARGET_DIR is required. A successful build on another platform is not equivalent to native release validation.

For source-archive verification on macOS, run shasum -a 256 versy-0.3.0-src.tar.gz and compare the full result with SHA256SUMS.

3. Verify both commands

vv --version
versy --version
vv load --json
vv capabilities --json

# Use a disposable directory on a supported native filesystem.
smoke_dir="$(mktemp -d "${TMPDIR:-/tmp}/versy-smoke.XXXXXX")"
vv init "$smoke_dir" --idempotency-key install-smoke-030
vv --repository "$smoke_dir" fsck --json

Both version commands should report 0.3.0. load describes the installed CLI; capabilities reports machine contracts. The final command checks the disposable repository's integrity.

For a real project, first review the source, capture an initial Checkpoint, register an Actor, and attach the root. Follow the exact release README and native workflow guide. Do not initialize over unknown control data or edit .versy manually.

Optional local inspection: run vv lens inside a repository with Python 3.11+ available. Lens binds to loopback and provides local inspection.

Upgrade and uninstall

Before upgrading, quiesce writers, keep an independent backup, run vv fsck, and review the new release's format and migration requirements. Install the new vv/versy pair together. A binary downgrade does not downgrade repository format; do not assume an older CLI can reopen migrated data.

To uninstall the binary install above, remove the two executables and their installed documentation. This does not remove repository data:

rm -- "$HOME/.local/bin/vv" "$HOME/.local/bin/versy"
rm -r -- "$HOME/.local/share/doc/versy"

For a Cargo installation, use cargo uninstall versy-cli. Keep repository backups independently of the installed tools.

Troubleshooting

Command not found
Check the installation prefix and PATH. Ensure both executables are adjacent and executable.
GLIBC version error
The published binary needs glibc 2.43+. Use a compatible host or evaluate a source build on your own platform.
Filesystem operation unsupported
Use a supported native filesystem. Do not weaken atomic publication or rename guarantees to force an install.
Recovery required or dirty root
Stop and inspect the exact status and recovery identity. Use the documented native recovery command; do not delete control files.
Legacy Checkpoint includes top-level .git
Historical bytes remain inspectable, but 0.3.0 refuses that state as a live projection. There is no in-place compatibility repair in this release. Do not bypass the guard.

Read the operating limits: files are bounded to 64 MiB, Workspaces retain full source copies, and deleting a captured secret later does not purge its history.

For help, contact versydev@pm.me. Share the version, platform, and a minimal error report without credentials or private repository contents.