mirror of
https://github.com/EthanShoeDev/fressh.git
synced 2026-01-11 06:12:51 +00:00
72 lines
1.2 KiB
Markdown
72 lines
1.2 KiB
Markdown
## 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
|
|
```
|
|
|
|
3. 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.
|