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.6 or later.

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

The binary is written to target/debug/tapid. 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

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.