Files
stem-launcher/README.md
T
2026-04-29 01:07:24 +02:00

115 lines
2.9 KiB
Markdown

# RV Launcher
Repo `rv-launcher` zawiera narzedzie do pracy z workspace RISC-V. W pierwszej
kolejnosci sluzy ono do zarzadzania tokenami; pozostale funkcje obejmuja prace
z kartami pracy i uruchamianie srodowiska kontenerowego.
Wlasciwym skryptem CLI jest wykonywalny plik `rvctl.py`. To on implementuje
zarzadzanie tokenami, listowanie serii i kart, przygotowanie repo odpowiedzi i
start kontenera.
Publicznym entrypointem dla uzytkownika jest krotki wrapper `rvctl`:
```bash
./rvctl
```
Wrapper uruchamia:
```bash
python3 rvctl.py "$@"
```
`rvctl.py` mozna tez uruchomic bezposrednio:
```bash
./rvctl.py
```
Sciezki i domyslne ustawienia sa trzymane w `workspace.json`.
## Co robi narzedzie
`rvctl` porzadkuje prace w trzech obszarach.
1. Zarzadzanie tokenami
Narzedzie obsluguje lokalny store `tokens/tokens.json`, porownuje go z git
remotes i potrafi synchronizowac token w obie strony. Szczegoly modelu,
format pliku i opis komend sa w `doc/tokens.md`.
2. Listowanie i pobieranie kart pracy
`rvctl` czyta serie, karty i zadania z workspace, pomaga wybrac material do
pracy oraz przygotowuje remotes potrzebne do repo odpowiedzi. Docelowy model
namespace `series`, `cards` i `tasks` jest w `doc/series.md`.
3. Uruchamianie srodowiska programistycznego w kontenerach
Dla wybranej karty `rvctl` uruchamia sesje tmux i kontener z przygotowanym
srodowiskiem developerskim.
## Model katalogow
Repozytoria zrodlowe trzymamy poza workspace:
```bash
~/dev/edu/repos/rv
```
Workspace sluzy do klonow roboczych, cwiczen, tokenow i socketow:
```bash
~/dev/workspace/rv
```
Typowy uklad:
```text
~/dev/edu/repos/rv/rv-launcher
~/dev/edu/repos/rv/rv32i-hazard3-env
~/dev/edu/repos/rv/series/<seria>/<karta>
~/dev/workspace/rv/tools/rv-launcher
~/dev/workspace/rv/tools/rv32i-hazard3-env
~/dev/workspace/rv/series/<seria>/<karta>
~/dev/workspace/rv/tokens/tokens.json
```
`rvctl` pracuje na kartach z `series_root` w workspace. Repo zrodlowe w
`~/dev/edu/repos/rv` sa punktem odniesienia i fallbackiem dla narzedzi.
## Szybki start
Najpierw zobacz konfiguracje i dostepne komendy:
```bash
./rvctl
./rvctl show-config
```
Typowy przeplyw pracy:
```bash
./rvctl tokens compare
./rvctl list-series
./rvctl list-cards inf
./rvctl tmux-container inf 03 --dry-run
./rvctl tmux-container inf 03 --session rv-inf03 --attach
./rvctl submission inf 03 --class 4i --nick u1
```
`--dry-run` jest przydatny przy sprawdzaniu planu uruchomienia lub konfiguracji
repo, zanim narzedzie cos zmieni.
## Dokumentacja
- `doc/rvctl.md` - techniczna dokumentacja CLI: wszystkie komendy, argumenty
i przelaczniki
- `doc/tokens.md` - model tokenow, synchronizacja remote <-> store
- `doc/series.md` - docelowy model komend dla serii i kart pracy
- `doc/tokens.schema.json` - schemat `tokens/tokens.json`
- `doc/workspace.md` - krotki opis konfiguracji workspace
README jest tylko mapa projektu. Szczegoly operacyjne trzymamy w `doc/`, zeby
nie dublowac instrukcji w kilku miejscach.