Перейти к содержанию

Гайд разработчика

RimLoc — Rust localization core/services + desktop-приложение на Tauri 2.

Текущая архитектура

source
  ↓
LocalizationAdapter
  ↓
canonical project / SourceEntry inventory
  ↓
translations · revisions · TM · glossary · validation
  ↓
rimloc-services
  ↓
RimLocClient / CLI
  ↓
React desktop / automation / future integrations

Основные каталоги:

  • crates/ — Rust domain/core/services/adapters/import/export/CLI;
  • gui/tauri-app/frontend-react/ — будущий production React UI;
  • gui/tauri-app/frontend-v2/ — замороженный Svelte fallback;
  • gui/tauri-app/src-tauri/ — Tauri bridge/config;
  • docs/ — канонические MkDocs docs;
  • test/, testlab/ — fixtures/acceptance.

Перед agent-driven изменениями прочитайте AGENTS.md.

Rust checks

cargo build --workspace
cargo test --workspace
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings

GUI/Linux build может требовать Tauri/WebKit/GTK системные зависимости.

React frontend

cd gui/tauri-app/frontend-react
npm ci
npx tsc --noEmit
npm run build

React Tauri dev:

cd ../src-tauri
cargo tauri dev --config tauri.react.conf.json

Svelte fallback заморожен на время convergence.

CLI

cargo run -p rimloc-cli -- --help
cargo run -p rimloc-cli -- scan --root ./test/TestMod --format json
cargo run -p rimloc-cli -- validate --root ./test/TestMod

PO-команды — interchange adapters, а не каноническая project architecture.

Новый LocalizationAdapter

Начните с гайда по адаптерам и architecture document.

Главное правило: game/environment semantics живут в adapter, а project/TM/glossary/editor остаются generic.

Документация

python -m venv .venv
source .venv/bin/activate
pip install -r requirements-docs.txt
mkdocs build --strict

MkDocs — канонический публичный источник документации. GitHub Wiki не используется как второй технический source of truth.

Security-sensitive изменения

Filesystem writes, Tauri permissions/IPC, network/provider credentials, shell execution, parsing untrusted input и automation bridges требуют отдельного security review и adversarial tests.

См.:

CI / releases

CI должен проверять актуальный Rust + React stack и не тратить runner minutes на docs-only изменения.

Публикация release сейчас контролируемая/manual. Не создавайте tag/Release и не публикуйте crates без отдельного owner request.

Ещё