29. Contributors and Development Environment
Contributors and Development Environment requirements from the authoritative Glitchpad Technical Specification.
cargo xtask doctor is the executable environment contract after repository foundation. It validates required versions, components, environment variables, native libraries, WebViews, emulators, disk space, and optional release credentials. Documentation references machine-readable authorities and does not own duplicate patch versions.
Shared required environment
| Tool | Requirement | Authority | Purpose |
|---|---|---|---|
| Git | 2.45 or newer | CI image and doctor rule | Source control and release tags |
| Rustup | Current installer with pinned toolchain support | rust-toolchain.toml | Rust compiler, Cargo, rustfmt, Clippy, targets |
| Rust | 1.96.0, edition 2024 | rust-toolchain.toml and workspace manifest | Core, host, xtask, native tests |
| Node.js | 24 LTS | .node-version and CI setup | TypeScript toolchain |
| pnpm | 10.x exact | package.json#packageManager | Locked JavaScript dependencies and scripts |
| Spec Kit | 1.0.1 | .specify/init-options.json | Mandatory feature workflow |
| PowerShell | 7.x on Windows; optional elsewhere | doctor rule | Spec Kit PowerShell scripts and contributor commands |
rg | Current supported major | tool manifest | Repository and documentation checks |
The bootstrap sequence is cargo xtask doctor, cargo xtask bootstrap, and cargo xtask check. Bootstrap installs locked JavaScript dependencies, Rust test tools declared by xtask, Playwright browser binaries, and development fixture indexes. It does not install operating-system packages or release credentials.
Windows host
- Windows 11 x86_64 with current security updates.
- Visual Studio 2022 Build Tools with Desktop development with C++, MSVC toolset, CMake tools, and Windows 11 SDK.
- WebView2 Evergreen Runtime and a matching test runtime where CI pins one.
- Rust target
x86_64-pc-windows-msvc. - NSIS tooling selected by the Tauri lock. v0.1.4 is distributed as an unsigned community release.
macOS host
- macOS 13 or newer on Apple Silicon or Intel.
- Full Xcode selected by
xcode-select, accepted license, command-line tools, and SDK version matching the release runner. - Rust targets
aarch64-apple-darwinandx86_64-apple-darwinfor universal artifacts. - Standard Apple command-line packaging tools. v0.1.4 uses an ad-hoc application signature and is not notarized.
Linux host
- Ubuntu 22.04 x86_64 as the release-build baseline; Ubuntu 24.04 is the current development and compatibility host.
- Build compiler,
pkg-config, WebKitGTK 4.1 development files, GTK 3 development files, AppIndicator/Ayatana development files, librsvg development files, OpenSSL development files required by system tooling,patchelf, AppImage tooling, Debian packaging tools, and headless display dependencies. - Rust target
x86_64-unknown-linux-gnu. - At least one installed font package for deterministic text and renderer tests.
Android host
- Android Studio Quail 3 (2026.1.3) or newer compatible stable release.
- JDK 17 through 21 for the Android build; CI pins Temurin 17 and a compatible Android Studio bundled JBR 21 is valid locally.
- Android SDK Platform 36, Build Tools 36.0.0, current Platform Tools and command-line tools, Android Emulator, and API 24 plus API 36 handset images.
- NDK
28.2.13676358, owned by the Android Gradle configuration. ANDROID_HOME,NDK_HOME, andJAVA_HOMEset to doctor-verifiable locations.- Rust targets
aarch64-linux-android,armv7-linux-androideabi,i686-linux-android, andx86_64-linux-androidinstalled through rustup. adb, hardware virtualization, one API 36 emulator, one physical ARM64 device at API 36, and one physical or hosted device at API 24 for release evidence.- Stable project-owned Android update keystore for release operators; store credentials are outside direct-release scope.
Test and documentation tools
- Rust: rustfmt, Clippy, cargo-nextest, cargo-deny, cargo-audit, cargo-fuzz, proptest dependencies, and coverage tooling selected in the tool manifest.
- TypeScript: Vitest, Testing Library, Playwright with pinned browser binaries, axe-core, and visual-diff tooling.
- Android: Gradle wrapper, JVM tests, connected instrumentation tests, emulator control, and package smoke tooling.
- Documentation: Prettier with
proseWrap: never, markdownlint with MD013 disabled, Mermaid CLI, link checker, spelling/terminology checker, and strict UTF-8/BOM/mojibake validator. - Supply chain: SPDX/REUSE validation, CycloneDX generation, license notice generation, vulnerability checks, SHA-256 tools, signing clients, and provenance attestation tooling.
- Brand: SVG editor capable of standards-compliant source output, scripted raster/icon exporters, font-license records, and lossless image optimization.
Workstation requirements
Ordinary development requires 16 GiB RAM, 8 logical CPU cores, 40 GiB free disk after toolchains, and hardware virtualization for Android emulator work. Packaging and full local matrix work SHOULD use 32 GiB RAM and 80 GiB free disk. A physical Android release device and platform-specific signing identities are release-only resources.
28. Repository Layout and Dependency Governance
Repository Layout and Dependency Governance requirements from the authoritative Glitchpad Technical Specification.
30. Build, Continuous Integration, and Documentation
Build, Continuous Integration, and Documentation requirements from the authoritative Glitchpad Technical Specification.