2.1 KiB
Workspace
Ten plik opisuje tylko kontekst workspace. Szczegółowy opis CLI jest w
doc/rvctl.md.
Publiczny entrypoint launchera:
./rvctl
Implementacja CLI znajduje się w rvctl.py. Plik workspace.json przechowuje
lokalne ścieżki workspace, series, socketów, tokenów i adres publicznego
manifestu.
Publiczny manifest wspólnego workspace jest częścią control plane w
organizacji edu. Katalog jest źródłem prawdy dla narzędzi i interfejsu;
lista organizacji widoczna w Gitea pozostaje widokiem administracyjnym.
Model własności:
edu
└── workspace-info control plane i katalog
edu-inf seria legacy
edu-fiz seria
edu-freertos-c seria
├── lab-rv32i-freertos-heap4 jedna karta = jedno repo
├── lab-rv32i-freertos-c-first-task
└── ...
Lokalna kopia manifestu znajduje się w:
~/dev/workspace/stem/meta/workspace-info
Typowy układ:
~/dev/workspace/stem
├── meta
│ └── workspace-info
├── tools
│ └── stem-launcher
├── tokens
│ └── tokens.json
└── series
workspace-info opisuje rejestr organizacji, operacyjne serie, karty, repo
źródłowe, repo odpowiedzi i branche. Każda seria musi jawnie podać
source_org; globalne git.source_org nie zastępuje tej deklaracji.
workspace-info nie przechowuje tokenów ani lokalnych plików roboczych ucznia.
Sprawdzenie spójności bez połączenia z Gitea:
./stemctl workspace audit
Audyt wykrywa brak organizacji, brak jawnego source_org, niespójne
przypisanie seria–organizacja oraz zduplikowane identyfikatory kart i repo.
Ostrzeżenie o wspólnym workspace_dir jest dopuszczalne podczas migracji.
Aktualizacja manifestu:
./rvctl workspace sync
Komendy zależne od manifestu, na przykład series list, series cards list,
series cards fetch i tasks list, automatycznie klonują workspace-info,
jeżeli lokalnej kopii jeszcze nie ma. Nie wykonują automatycznego pull na
istniejącym repo; do odświeżania służy jawne workspace sync.