Przejdź do głównej zawartości

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.

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 z npm. Polecenie make setup-dev weryfikuje 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.

Zainicjalizuj środowisko i pobierz wymagane zależności poleceniem:

Okno terminala
make setup-dev

Zaleca się wywoływanie wszystkich poleceń przez make, co gwarantuje poprawne ustawienie katalogów roboczych i flag kompilatorów:

Okno terminala
make setup-dev # Weryfikacja wymagań i instalacja zależności
make test # Uruchomienie testów jednostkowych (Rust, Angular, MCP, Tauri)
make check # Statyczna analiza kodu: lintery, Clippy, sprawdzanie typów
make check-all # Pełna bramka jakości CI: check + test + coverage + audit
make coverage-html # Generowanie raportów pokrycia kodu i otwarcie w przeglądarce
make audit # Audyt bezpieczeństwa zależności w repozytorium
make dev # Uruchomienie aplikacji Tauri w trybie live-reload
make dev-config # Wyświetlenie wyliczonego katalogu danych, identyfikatora pakietu i konfiguracji Tauri bez uruchamiania aplikacji
make build # Kompilacja wersji produkcyjnej wszystkich podsystemów
make fmt # Formatowanie plików źródłowych (Rust, TypeScript, Markdown)
make status # Diagnostyka stanu środowiska i wersji zależności

Dostę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.

  • make build-cli: Tworzy nieoptymalizowany plik wykonywalny debug w target/debug/speedwave wykorzystywany przez make dev.
  • make build-cli-release: Kompiluje zoptymalizowaną binarkę produkcyjną w target/release/speedwave, usuwając deweloperskie flagi omijania podpisów.

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.

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.