78 lines
2.1 KiB
Markdown
78 lines
2.1 KiB
Markdown
# Workspace
|
||
|
||
Ten plik opisuje tylko kontekst workspace. Szczegółowy opis CLI jest w
|
||
`doc/rvctl.md`.
|
||
|
||
Publiczny entrypoint launchera:
|
||
|
||
```bash
|
||
./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:
|
||
|
||
```text
|
||
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:
|
||
|
||
```text
|
||
~/dev/workspace/stem/meta/workspace-info
|
||
```
|
||
|
||
Typowy układ:
|
||
|
||
```text
|
||
~/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:
|
||
|
||
```bash
|
||
./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:
|
||
|
||
```bash
|
||
./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`.
|