Glitchpad

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

ToolRequirementAuthorityPurpose
Git2.45 or newerCI image and doctor ruleSource control and release tags
RustupCurrent installer with pinned toolchain supportrust-toolchain.tomlRust compiler, Cargo, rustfmt, Clippy, targets
Rust1.96.0, edition 2024rust-toolchain.toml and workspace manifestCore, host, xtask, native tests
Node.js24 LTS.node-version and CI setupTypeScript toolchain
pnpm10.x exactpackage.json#packageManagerLocked JavaScript dependencies and scripts
Spec Kit1.0.1.specify/init-options.jsonMandatory feature workflow
PowerShell7.x on Windows; optional elsewheredoctor ruleSpec Kit PowerShell scripts and contributor commands
rgCurrent supported majortool manifestRepository 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-darwin and x86_64-apple-darwin for 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, and JAVA_HOME set to doctor-verifiable locations.
  • Rust targets aarch64-linux-android, armv7-linux-androideabi, i686-linux-android, and x86_64-linux-android installed 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.

On this page