Read series from workspace manifest
This commit is contained in:
+35
-9
@@ -22,21 +22,24 @@ Typowy układ:
|
||||
~/dev/edu/repos/rv/rv-launcher
|
||||
~/dev/edu/repos/rv/rv32i-hazard3-env
|
||||
~/dev/edu/repos/rv/series/<seria>/<karta>
|
||||
~/dev/workspace/rv/meta/workspace-info
|
||||
~/dev/workspace/rv/tools/rv-launcher
|
||||
~/dev/workspace/rv/tools/rv32i-hazard3-env
|
||||
~/dev/workspace/rv/series/<seria>/<karta>
|
||||
```
|
||||
|
||||
`rvctl` czyta karty z `series_root` w workspace. Tool repo
|
||||
`rv32i-hazard3-env` wybiera najpierw z workspace, a potem z fallbacku
|
||||
`~/dev/edu/repos/rv`, jeśli taki klon roboczy jeszcze nie istnieje.
|
||||
`rvctl` czyta publiczny opis serii i kart z `workspace-info`, a pobrane karty
|
||||
trzyma w `series_root` w workspace. Tool repo `rv32i-hazard3-env` wybiera
|
||||
najpierw z workspace, a potem z fallbacku `~/dev/edu/repos/rv`, jeśli taki klon
|
||||
roboczy jeszcze nie istnieje.
|
||||
|
||||
Karty pracy też są rozdzielone:
|
||||
Karty pracy są rozdzielone:
|
||||
|
||||
- `original_series_root` wskazuje repo źródłowe kart, na przykład `~/dev/edu/repos/rv/series`
|
||||
- `series_root` wskazuje klony testowe w workspace, na przykład `~/dev/workspace/rv/series`
|
||||
- `workspace_info_path` wskazuje manifest, na przykład `~/dev/workspace/rv/meta/workspace-info/workspace.json`
|
||||
- `series_root` wskazuje klony robocze w workspace, na przykład `~/dev/workspace/rv/series`
|
||||
- `original_series_root` zostaje fallbackiem dla lokalnych repo źródłowych
|
||||
|
||||
Komendy launchera pracują na `series_root`, czyli na klonach testowych.
|
||||
Komendy launchera pracują na `series_root`, czyli na klonach roboczych.
|
||||
|
||||
## Pobranie repo i przełączenie gałęzi
|
||||
|
||||
@@ -203,6 +206,8 @@ Szczegółowy help parsera:
|
||||
Komendy:
|
||||
|
||||
- `show-config`
|
||||
- `workspace show`
|
||||
- `workspace sync`
|
||||
- `list-series`
|
||||
- `list-cards [series]`
|
||||
- `series list`
|
||||
@@ -238,6 +243,9 @@ config_path<TAB>...
|
||||
original_root<TAB>...
|
||||
original_series_root<TAB>...
|
||||
workspace_root<TAB>...
|
||||
workspace_info_path<TAB>...
|
||||
workspace_info_url<TAB>...
|
||||
workspace_info_status<TAB>...
|
||||
series_root<TAB>...
|
||||
socket_root<TAB>...
|
||||
token_path<TAB>...
|
||||
@@ -259,10 +267,28 @@ Przykład:
|
||||
./rvctl show-config
|
||||
```
|
||||
|
||||
## `workspace show`
|
||||
|
||||
Pokazuje lokalizację i stan publicznego manifestu wspólnego workspace.
|
||||
|
||||
```bash
|
||||
./rvctl workspace show
|
||||
```
|
||||
|
||||
## `workspace sync`
|
||||
|
||||
Klonuje albo aktualizuje repo `edu-workspace/workspace-info` do katalogu
|
||||
`~/dev/workspace/rv/meta/workspace-info`.
|
||||
|
||||
```bash
|
||||
./rvctl workspace sync
|
||||
./rvctl workspace sync --dry-run
|
||||
```
|
||||
|
||||
## `series list`
|
||||
|
||||
Listuje serie dostępne w źródłach i workspace. Komenda tworzy `series_root`,
|
||||
jeżeli katalog jeszcze nie istnieje.
|
||||
Listuje serie dostępne w `workspace-info` i workspace. Komenda tworzy
|
||||
`series_root`, jeżeli katalog jeszcze nie istnieje.
|
||||
|
||||
Format wyjścia:
|
||||
|
||||
|
||||
+12
-8
@@ -12,13 +12,15 @@ Komendy kart pracy dzielimy na trzy poziomy:
|
||||
- `series cards tasks` - operacje na zadaniach w ramach karty
|
||||
|
||||
`rvctl` tworzy `series_root`, jeżeli katalog jeszcze nie istnieje. Lista serii
|
||||
i kart może pochodzić z repo źródłowych, a `fetch` pobiera wybraną kartę do
|
||||
workspace.
|
||||
i kart pochodzi docelowo z publicznego manifestu
|
||||
`~/dev/workspace/rv/meta/workspace-info/workspace.json`. Jeżeli manifestu nie
|
||||
ma, narzędzie używa starego fallbacku przez `original_series_root`.
|
||||
|
||||
## Szybki przepływ
|
||||
|
||||
```bash
|
||||
./rvctl tokens compare
|
||||
./rvctl workspace sync
|
||||
./rvctl series list
|
||||
./rvctl series cards list inf
|
||||
./rvctl series cards fetch inf bss
|
||||
@@ -32,8 +34,9 @@ Dla karty `bss` właściwym repo jest `lab-rv32i-strlen-bss-data-stack`.
|
||||
|
||||
### `series list`
|
||||
|
||||
Listuje dostępne serie. Jeżeli `~/dev/workspace/rv/series` nie istnieje,
|
||||
komenda tworzy ten katalog.
|
||||
Listuje dostępne serie z manifestu `workspace-info` oraz liczbę kart już
|
||||
pobranych do lokalnego workspace. Jeżeli `~/dev/workspace/rv/series` nie
|
||||
istnieje, komenda tworzy ten katalog.
|
||||
|
||||
```bash
|
||||
./rvctl series list
|
||||
@@ -42,6 +45,7 @@ komenda tworzy ten katalog.
|
||||
Typowy wynik:
|
||||
|
||||
```text
|
||||
fiz 3 0
|
||||
inf 3 0
|
||||
```
|
||||
|
||||
@@ -147,10 +151,10 @@ Skrót dla domyślnej karty:
|
||||
Przykładowy wynik:
|
||||
|
||||
```text
|
||||
inf bss task1_bss ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task1_bss.s
|
||||
inf bss task2_data ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task2_data.s
|
||||
inf bss task3_stack_unused ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task3_stack_unused.s
|
||||
inf bss task4_stack_strlen ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task4_stack_strlen.s
|
||||
inf bss task1_bss ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task1_bss.c
|
||||
inf bss task2_data ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task2_data.c
|
||||
inf bss task3_stack_unused ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task3_stack_unused.c
|
||||
inf bss task4_stack_strlen ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task4_stack_strlen.c
|
||||
```
|
||||
|
||||
### `series cards tasks show SERIES CARD TASK`
|
||||
|
||||
+36
-1
@@ -10,4 +10,39 @@ Publiczny entrypoint launchera:
|
||||
```
|
||||
|
||||
Implementacja CLI znajduje się w `rvctl.py`. Plik `workspace.json` przechowuje
|
||||
ścieżki workspace, series, socketów, tokenów i fallback do repo źródłowych.
|
||||
lokalne ścieżki workspace, series, socketów, tokenów i adres publicznego
|
||||
manifestu.
|
||||
|
||||
Publiczny manifest wspólnego workspace jest w repo:
|
||||
|
||||
```text
|
||||
edu-workspace/workspace-info
|
||||
```
|
||||
|
||||
Lokalna kopia manifestu znajduje się w:
|
||||
|
||||
```text
|
||||
~/dev/workspace/rv/meta/workspace-info
|
||||
```
|
||||
|
||||
Typowy układ:
|
||||
|
||||
```text
|
||||
~/dev/workspace/rv
|
||||
├── meta
|
||||
│ └── workspace-info
|
||||
├── tools
|
||||
│ └── rv-launcher
|
||||
├── tokens
|
||||
│ └── tokens.json
|
||||
└── series
|
||||
```
|
||||
|
||||
`workspace-info` opisuje serie, karty, repo źródłowe, repo odpowiedzi i branche.
|
||||
Nie przechowuje tokenów ani lokalnych plików roboczych ucznia.
|
||||
|
||||
Aktualizacja manifestu:
|
||||
|
||||
```bash
|
||||
./rvctl workspace sync
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user