Local layer (fork-specific)
PocketArk itself ships no personal tools and downloads no assets. When you fork it into your own software, keep personal content in the “local layer” so it stays in sync with upstream base. The base repository only keeps this convention documented.
Where things go
Section titled “Where things go”| Content | Location |
|---|---|
| Personal plugins (both ends) | plugins/<id>/ (auto-registered at build time, no manual registration) |
| Personal Rust dependencies | the # ── local plugin deps (fork-owned) ── section at the end of src-tauri/Cargo.toml |
| Personal assets (fonts / models / …) | src-tauri/local-resources/ |
| Personal download / build scripts | scripts/local/ (scripts/prepare.mjs calls scripts/local/prepare.mjs automatically) |
| Extra webview permissions | src-tauri/capabilities/local.json (auto-discovered by Tauri; absent in base) |
Assets and build
Section titled “Assets and build”- Put assets in
src-tauri/local-resources/:bundle.resourcesalready includeslocal-resources/**/*, sotauri.conf.jsonneeds no change. - Put asset downloads in
scripts/local/prepare.mjs: it runs automatically beforetauri dev/tauri buildviascripts/prepare.mjs; skip downloads in CI. - For C++ dependencies (bindgen / cc): export
CXXFLAGSon macOS (e.g.export CXXFLAGS="-std=c++14 -I$(xcrun --sdk macosx --show-sdk-path)/usr/include/c++/v1"); install LLVM (LIBCLANG_PATH) on Windows.
Syncing base
Section titled “Syncing base”git remote add upstream <base url>git fetch upstreamgit merge upstream/mainPersonal content lives in the locations above, so merges are generally conflict-free; if Cargo.lock
conflicts, rebuild with cargo build.
Release
Section titled “Release”To enable auto-update: generate your own key (pnpm tauri signer generate), put the public key in
tauri.conf.json > plugins.updater.pubkey, enable bundle.createUpdaterArtifacts: true, build with
signing, and generate the manifest with pnpm release (see
Release and auto-update).