Konfiguracja środowiska deweloperskiego
Monorepozytorium Speedwave łączy backend w języku Rust, interfejs graficzny Angular osadzony w środowisku Tauri, serwery MCP w Node.js oraz pomocnicze biblioteki w języku Swift. Wszystkie procedury inżynieryjne są zunifikowane w pliku Makefile. Szczegółowy opis architektury znajdziesz na stronie Stos technologiczny.
Wymagania wstępne
Dział zatytułowany „Wymagania wstępne”Przed rozpoczęciem upewnij się, że stacja robocza ma zainstalowane następujące pakiety:
- Rust: Stabilny toolchain zarządzany przez
rustup(rustup update stable). - Node.js: Wersja określona w pliku
.node-version(24.20.0 lub nowsza) wraz znpm. Poleceniemake setup-devweryfikuje wersję i jeśli jest starsza, przerywa działanie, wyświetlając instrukcję instalacji. - Kompilatory platformowe:
- macOS: Narzędzia Xcode Command Line Tools (
xcode-select --install). - Windows: Visual Studio C++ Build Tools wraz z pakietem Windows SDK.
- macOS: Narzędzia Xcode Command Line Tools (
Zainicjalizuj środowisko i pobierz wymagane zależności poleceniem:
make setup-devPodstawowe cele pliku Makefile
Dział zatytułowany „Podstawowe cele pliku Makefile”Zaleca się wywoływanie wszystkich poleceń przez make, co gwarantuje poprawne ustawienie katalogów roboczych i flag kompilatorów:
make setup-dev # Weryfikacja wymagań i instalacja zależnościmake test # Uruchomienie testów jednostkowych (Rust, Angular, MCP, Tauri)make check # Statyczna analiza kodu: lintery, Clippy, sprawdzanie typówmake check-all # Pełna bramka jakości CI: check + test + coverage + auditmake coverage-html # Generowanie raportów pokrycia kodu i otwarcie w przeglądarcemake audit # Audyt bezpieczeństwa zależności w repozytoriummake dev # Uruchomienie aplikacji Tauri w trybie live-reloadmake dev-config # Wyświetlenie wyliczonego katalogu danych, identyfikatora pakietu i konfiguracji Tauri bez uruchamiania aplikacjimake build # Kompilacja wersji produkcyjnej wszystkich podsystemówmake fmt # Formatowanie plików źródłowych (Rust, TypeScript, Markdown)make status # Diagnostyka stanu środowiska i wersji zależnościDostępne są także cele cząstkowe: test-rust, test-angular, test-mcp, test-swift, build-cli, build-desktop oraz build-angular. Progi pokrycia kodu opisano w sekcji Testowanie i weryfikacja.
Warianty kompilacji CLI
Dział zatytułowany „Warianty kompilacji CLI”make build-cli: Tworzy nieoptymalizowany plik wykonywalny debug wtarget/debug/speedwavewykorzystywany przezmake dev.make build-cli-release: Kompiluje zoptymalizowaną binarkę produkcyjną wtarget/release/speedwave, usuwając deweloperskie flagi omijania podpisów.
Uruchamianie w trybie deweloperskim
Dział zatytułowany „Uruchamianie w trybie deweloperskim”Polecenie make dev automatycznie kompiluje wersję debug pliku CLI, kopiuje plik wykonywalny do desktop/src-tauri/cli/ i uruchamia demona Tauri wraz z lokalnym serwerem Angulara.
Druga instancja deweloperska
Dział zatytułowany „Druga instancja deweloperska”make dev DEV_INSTANCE=<name> uruchamia instancję z własnym katalogiem danych (~/.speedwave-<name>, z osobną maszyną wirtualną), własnym identyfikatorem pakietu, portem serwera deweloperskiego Angulara wyliczonym z nazwy (można go nadpisać przez DEV_PORT=<port>) oraz dedykowaną komendą CLI w PATH (speedwave-<name>). Wersja produkcyjna korzysta ze standardowego polecenia speedwave. Warto uruchamiać osobną instancję dla każdego drzewa roboczego (git worktree), aby testowanie innej gałęzi nie zakłócało instancji, w której aktualnie pracujesz. Mechanizm opisano szczegółowo przy zmiennej SPEEDWAVE_DATA_DIR.
Szczegółowe wytyczne dla systemu Windows opisano na stronie Konfiguracja na Windows.