Files
fressh/CONTRIBUTING.md
EthanShoeDev 2b33da8e20 Better docs
2025-10-07 00:21:46 -04:00

1.2 KiB

Contributing

Monorepo layout

  • apps/mobile: Expo app (serves as the example for both packages)
  • apps/web: Static site (Astro)
  • packages/react-native-uniffi-russh: React Native native module exposing russh via UniFFI
  • packages/react-native-xtermjs-webview: React Native WebView-based xterm.js renderer

Prerequisites

  • Node and pnpm installed
  • Optional: Nix for dev shells (recommended)
  • For native module work: Rust toolchain (rustup, cargo), Android/iOS build tools

With Nix:

nix develop .#default

Dev shell with android emulator included:

nix develop .#android-emulator

Setup

  1. Clone the repo
  2. Install dependencies at the root:
pnpm install
  1. Run the lint command:
pnpm exec turbo lint

Develop

  • Mobile app:
cd apps/mobile
pnpm run android

Releasing

Each publishable package uses release-it. From the package directory:

pnpm run release

See the package CHANGELOGs for release notes:

  • packages/react-native-uniffi-russh/CHANGELOG.md
  • packages/react-native-xtermjs-webview/CHANGELOG.md

CI

Pull requests run the workflow in .github/workflows/check.yml. Please ensure lint/typecheck/tests pass.