tapid docs

Contributor

Build Tapid locally, run repository checks, and contribute changes.

This is the development guide for contributing to Tapid. It covers the local checkout, build, tests, and repository checks. If you only need the package manager, start with Getting started and use the public installer.

Requirements

Tapid itself requires Rust 1.88 or later. The repository's TypeScript tools require Node.js 22.7 or later for the reviewed development tools. Python and uv are no longer required after the TypeScript tooling migration.

Install Rust with rustup if it is not already available, then check the tool versions:

$ rustc --version
$ node --version

Build from a checkout

Clone the repository and build the CLI from the workspace root:

$ git clone https://github.com/LimeTip/tapid.git
$ cd tapid
$ cargo build -p tapid --locked

A direct Cargo build writes the binary to target/debug/tapid. The v0.0.13 source also provides node --experimental-strip-types scripts/dev.ts <cargo arguments> to share build output across worktrees. Obtain its target directory through the wrapper's metadata command instead of assuming the direct-build path. The source installer can also build a branch, tag, or commit with --source-ref, but a checkout gives you the files, tests, and documentation needed to make a change.

Run the checks

Start with the focused test for the behavior you are changing. Before opening a pull request, run the repository checks that apply to the change:

$ cargo fmt --all -- --check
$ cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
$ cargo test --workspace --all-features --locked
$ cargo test --manifest-path tests/integration/Cargo.toml --locked
$ cargo package --workspace --locked

For TypeScript architecture checks, use Node's built-in type stripping support:

$ node --experimental-strip-types tools/check_architecture.ts
$ node --experimental-strip-types --test tools/check_architecture_test.ts

The integration tests use temporary projects and local fixtures. They do not turn a local macOS result into evidence about Windows or Linux behavior. Platform-specific validation runs in CI.

Keep the supported path working

Every change should preserve this basic flow:

$ tapid init
$ tapid i <package>
$ tapid install <package>
$ tapid install
$ tapid run dev

The run example requires Node.js, an exact tapid.toml profile, and a supported containment platform. See tapid run. Source builds may expose unreleased commands; they do not establish public release availability.

New behavior needs a focused test, failure-path coverage at the affected trust boundary, and documentation that states what the client does not support. Record architectural decisions in docs/adr/.

Read Testing Tapid and the development rules for the full contributor checklist.

Review the right revision

The public website guides target v0.0.13 unless labelled historical. The repository testing instructions and TypeScript wrapper can advance independently. Read the reviewed development checklist for focused checks, build reuse and TypeScript test commands.

The public CLI and supporting crates use Apache-2.0 starting with v0.0.12. Contributions retain their contributors' copyright ownership under that license. Run tapid license for the executable's embedded text. This does not change the private hosted application's licensing.

Release preparation, candidate approval, signing and public smoke checks are separate from ordinary contribution checks. See release automation; a prepared release is not a published release.