Files

78 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 seriaorganizacja 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`.