Files

2.1 KiB
Raw Permalink Blame History

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 seriaorganizacja 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.