Skip to content

Latest commit

 

History

History
110 lines (75 loc) · 1.82 KB

File metadata and controls

110 lines (75 loc) · 1.82 KB

Development

ManaVault is a Phoenix application with a Vite/React frontend and optional Capacitor native shells. Tool versions are pinned in mise.toml.

Requirements

  • mise
  • a platform that can run Elixir, Node, and SQLite
  • macOS with Xcode only when building/running the iOS shell

Setup

Install the pinned toolchain, JavaScript dependencies, Elixir dependencies, database, and assets:

mise run setup

Start Phoenix:

mise run dev

Visit http://localhost:4000.

Health check:

curl http://localhost:4000/health
# {"status":"ok"}

Tests and Checks

Run the Elixir test suite:

mise run test

Run the fuller local precommit suite:

mise run precommit

Useful frontend commands:

aube run typecheck
aube run test:react
aube run build

GraphQL TypeScript artifacts are generated from codegen.ts:

aube run codegen

Native Shell Development

Install JavaScript dependencies and sync Capacitor native projects:

mise run setup:native

Android uses the project-local Java and Android SDK toolchains declared in mise.toml. Accept licenses and install SDK packages needed by Capacitor and native-run:

mise run setup:android-sdk

Build, run, or open Android:

mise run android:build
mise run android:run
mise run android:open

The Android tasks sync the web/native metadata before building or running.

Sync or open iOS from macOS:

mise run ios:sync
mise run ios:open

The iOS project is checked into the repo and syncs from the same web assets, but building or running requires Xcode.

Release Helper

Release commands are documented in releasing.md. The short form is:

mise run changelog -- patch
mise run release -- patch

Use minor or major instead of patch when the version bump requires it.