Add series task branch flow
This commit is contained in:
+24
-24
@@ -18,19 +18,19 @@ Typowy przepływ pracy:
|
||||
|
||||
```bash
|
||||
./rvctl tokens compare
|
||||
./rvctl series cards show inf 03
|
||||
./rvctl series cards tasks list inf 03
|
||||
./rvctl containers show inf 03
|
||||
./rvctl containers start inf 03 --session rv-inf03 --attach
|
||||
./rvctl series cards show inf bss
|
||||
./rvctl series cards tasks list inf bss
|
||||
./rvctl containers show inf bss
|
||||
./rvctl containers start inf bss --session rv-inf-bss --attach
|
||||
./rvctl containers list
|
||||
./rvctl containers stop rv-inf03
|
||||
./rvctl containers stop rv-inf-bss
|
||||
```
|
||||
|
||||
## Model
|
||||
|
||||
Docelowo komendy `containers` pracują na trzech warstwach:
|
||||
|
||||
- karta pracy, np. `inf 03`
|
||||
- karta pracy, np. `inf bss`
|
||||
- opcjonalne zadanie, np. `--task task1`
|
||||
- instancja środowiska, np. `--instance shell`
|
||||
|
||||
@@ -52,19 +52,19 @@ defaults.tmux_window
|
||||
Pokazuje plan uruchomienia środowiska bez tworzenia sesji `tmux`.
|
||||
|
||||
```bash
|
||||
./rvctl containers show inf 03
|
||||
./rvctl containers show inf/03 --task task1
|
||||
./rvctl containers show inf bss
|
||||
./rvctl containers show inf/bss --task task1
|
||||
```
|
||||
|
||||
Typowe pola:
|
||||
|
||||
```text
|
||||
selector inf/03
|
||||
selector inf/bss
|
||||
task task1
|
||||
card_path ~/dev/workspace/rv/series/inf/03
|
||||
task_path ~/dev/workspace/rv/series/inf/03/task1
|
||||
card_path ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
task_path ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/task1
|
||||
tools_root ~/dev/workspace/rv/tools/rv32i-hazard3-env
|
||||
session rv-inf03
|
||||
session rv-inf-bss
|
||||
window rv
|
||||
instance shell
|
||||
```
|
||||
@@ -72,7 +72,7 @@ instance shell
|
||||
Ta komenda jest odpowiednikiem obecnego trybu:
|
||||
|
||||
```bash
|
||||
./rvctl tmux-container inf 03 --dry-run
|
||||
./rvctl tmux-container inf bss --dry-run
|
||||
```
|
||||
|
||||
### `containers start [SERIES] [CARD]`
|
||||
@@ -80,9 +80,9 @@ Ta komenda jest odpowiednikiem obecnego trybu:
|
||||
Uruchamia sesję `tmux` i kontener dla wybranej karty.
|
||||
|
||||
```bash
|
||||
./rvctl containers start inf 03
|
||||
./rvctl containers start inf/03 --session rv-inf03
|
||||
./rvctl containers start inf 03 --task task1 --instance shell --attach
|
||||
./rvctl containers start inf bss
|
||||
./rvctl containers start inf/bss --session rv-inf-bss
|
||||
./rvctl containers start inf bss --task task1 --instance shell --attach
|
||||
```
|
||||
|
||||
Przełączniki:
|
||||
@@ -112,7 +112,7 @@ Przykładowy wynik:
|
||||
```text
|
||||
session selector task instance window
|
||||
-------- -------- ----- -------- ------
|
||||
rv-inf03 inf/03 task1 shell rv
|
||||
rv-inf-bss inf/bss task1 shell rv
|
||||
```
|
||||
|
||||
### `containers attach SESSION`
|
||||
@@ -120,13 +120,13 @@ rv-inf03 inf/03 task1 shell rv
|
||||
Podłącza terminal do istniejącej sesji.
|
||||
|
||||
```bash
|
||||
./rvctl containers attach rv-inf03
|
||||
./rvctl containers attach rv-inf-bss
|
||||
```
|
||||
|
||||
Technicznie odpowiada to:
|
||||
|
||||
```bash
|
||||
tmux attach -t rv-inf03
|
||||
tmux attach -t rv-inf-bss
|
||||
```
|
||||
|
||||
### `containers stop SESSION`
|
||||
@@ -134,13 +134,13 @@ tmux attach -t rv-inf03
|
||||
Zamyka sesję `tmux`, a razem z nią uruchomiony w niej proces kontenera.
|
||||
|
||||
```bash
|
||||
./rvctl containers stop rv-inf03
|
||||
./rvctl containers stop rv-inf-bss
|
||||
```
|
||||
|
||||
Technicznie odpowiada to:
|
||||
|
||||
```bash
|
||||
tmux kill-session -t rv-inf03
|
||||
tmux kill-session -t rv-inf-bss
|
||||
```
|
||||
|
||||
## Aliasowanie Starej Komendy
|
||||
@@ -148,9 +148,9 @@ tmux kill-session -t rv-inf03
|
||||
Stara komenda może zostać jako alias kompatybilności:
|
||||
|
||||
```text
|
||||
tmux-container inf 03 --dry-run -> containers show inf 03
|
||||
tmux-container inf 03 --session NAME -> containers start inf 03 --session NAME
|
||||
tmux-container inf/03 --attach -> containers start inf/03 --attach
|
||||
tmux-container inf bss --dry-run -> containers show inf bss
|
||||
tmux-container inf bss --session NAME -> containers start inf bss --session NAME
|
||||
tmux-container inf/bss --attach -> containers start inf/bss --attach
|
||||
```
|
||||
|
||||
Dokumentacja i nowe przykłady powinny promować namespace `containers`.
|
||||
|
||||
+281
-55
@@ -205,6 +205,16 @@ Komendy:
|
||||
- `show-config`
|
||||
- `list-series`
|
||||
- `list-cards [series]`
|
||||
- `series list`
|
||||
- `series show SERIES`
|
||||
- `series fetch SERIES [--dry-run]`
|
||||
- `series cards list SERIES`
|
||||
- `series cards show SERIES CARD`
|
||||
- `series cards fetch SERIES CARD`
|
||||
- `series cards submission SERIES CARD --class NAME`
|
||||
- `series cards tasks list SERIES CARD`
|
||||
- `series cards tasks show SERIES CARD TASK`
|
||||
- `series cards tasks switch SERIES CARD TASK`
|
||||
- `tokens scan`
|
||||
- `tokens compare`
|
||||
- `tokens read`
|
||||
@@ -246,25 +256,247 @@ Przykład:
|
||||
./rvctl show-config
|
||||
```
|
||||
|
||||
## `list-series`
|
||||
## `series list`
|
||||
|
||||
Listuje katalogi serii znalezione w `series_root`.
|
||||
Listuje serie dostępne w źródłach i workspace. Komenda tworzy `series_root`,
|
||||
jeżeli katalog jeszcze nie istnieje.
|
||||
|
||||
Każda linia ma format:
|
||||
Format wyjścia:
|
||||
|
||||
```text
|
||||
<series_id><TAB><liczba_kart><TAB><pełna_ścieżka>
|
||||
<series_id><TAB><karty_w_źródłach><TAB><karty_w_workspace><TAB><workspace_path>
|
||||
```
|
||||
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl series list
|
||||
```
|
||||
|
||||
## `series show SERIES`
|
||||
|
||||
Pokazuje szczegóły jednej serii.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
|
||||
Format wyjścia:
|
||||
|
||||
```text
|
||||
series<TAB>...
|
||||
source_path<TAB>...
|
||||
workspace_path<TAB>...
|
||||
cards_count<TAB>...
|
||||
cards<TAB>...
|
||||
```
|
||||
|
||||
## `series fetch SERIES`
|
||||
|
||||
Pobiera albo aktualizuje wszystkie karty z serii.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
|
||||
Przełączniki:
|
||||
|
||||
- `--dry-run`
|
||||
Pokazuje plan bez klonowania repo i bez zmian w token store.
|
||||
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl series fetch inf --dry-run
|
||||
```
|
||||
|
||||
## `series cards list SERIES`
|
||||
|
||||
Listuje karty w wybranej serii.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
|
||||
Format wyjścia:
|
||||
|
||||
```text
|
||||
<card><TAB><repo><TAB><source|workspace><TAB><tytuł_z_README>
|
||||
```
|
||||
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl series cards list inf
|
||||
```
|
||||
|
||||
## `series cards show SERIES CARD`
|
||||
|
||||
Pokazuje szczegóły jednej karty.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
- `CARD`
|
||||
Pełna nazwa repo albo unikalny fragment, na przykład `bss`.
|
||||
|
||||
Format wyjścia:
|
||||
|
||||
```text
|
||||
series<TAB>...
|
||||
card<TAB>...
|
||||
repo<TAB>...
|
||||
source_path<TAB>...
|
||||
workspace_path<TAB>...
|
||||
source_remote<TAB>...
|
||||
source_url<TAB>...
|
||||
answer_remote<TAB>...
|
||||
answer_url<TAB>...
|
||||
tasks<TAB>...
|
||||
```
|
||||
|
||||
## `series cards fetch SERIES CARD`
|
||||
|
||||
Pobiera kartę z repo źródłowego do `series_root`. `CARD` może być pełną nazwą
|
||||
repo albo unikalnym fragmentem, na przykład `bss`.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
- `CARD`
|
||||
Pełna nazwa repo albo unikalny fragment, na przykład `bss`.
|
||||
|
||||
Przełączniki:
|
||||
|
||||
- `--dry-run`
|
||||
Pokazuje plan bez klonowania repo, bez zapisu tokena `r1a` i bez ustawiania
|
||||
remota odpowiedzi.
|
||||
|
||||
```bash
|
||||
./rvctl series cards fetch inf bss
|
||||
```
|
||||
|
||||
Po pobraniu komenda ustawia:
|
||||
|
||||
- `r1` na repo źródłowe w `edu-inf`
|
||||
- `r1a` na repo pracy w `c2025-1a-inf`
|
||||
|
||||
`r1a` jest tworzony z tokena `r1` i wskazuje na repo o tej samej nazwie co
|
||||
karta.
|
||||
|
||||
## `series cards submission SERIES CARD`
|
||||
|
||||
Alias funkcjonalny dla `submission`, ale z jawnym namespace kart.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
- `CARD`
|
||||
Pełna nazwa repo albo unikalny fragment, na przykład `bss`.
|
||||
|
||||
Przełączniki:
|
||||
|
||||
- `--class NAME`
|
||||
Id klasy albo grupy.
|
||||
- `--nick NAME`
|
||||
Nick ucznia. Jeżeli go nie podasz, `rvctl` bierze użytkownika ze store
|
||||
tokenów.
|
||||
- `--task TASK`
|
||||
Zadanie używane do zbudowania domyślnej nazwy brancha. Domyślnie
|
||||
`defaults.task` z `workspace.json`.
|
||||
- `--branch NAME`
|
||||
Nadpisuje nazwę brancha odpowiedzi. Bez tego branch ma format
|
||||
`<login>T<numer_zadania>a`, na przykład `u1T1a`.
|
||||
- `--date YYYY-MM-DD`
|
||||
Data zajęć widoczna w planie.
|
||||
- `--source-url URL`
|
||||
Nadpisuje URL repo źródłowego.
|
||||
- `--apply`
|
||||
Zapisuje remotes `r1` i `r1a` w repo karty.
|
||||
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl series cards submission inf bss --class c2025-1a-inf --apply
|
||||
```
|
||||
|
||||
## `series cards tasks list SERIES CARD`
|
||||
|
||||
Listuje zadania z `src/tasks` pobranej karty.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
- `CARD`
|
||||
Pełna nazwa repo albo unikalny fragment, na przykład `bss`.
|
||||
|
||||
```bash
|
||||
./rvctl series cards tasks list inf bss
|
||||
```
|
||||
|
||||
## `series cards tasks show SERIES CARD TASK`
|
||||
|
||||
Pokazuje szczegóły jednego zadania.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
- `CARD`
|
||||
Pełna nazwa repo albo unikalny fragment, na przykład `bss`.
|
||||
- `TASK`
|
||||
Pełna nazwa zadania albo unikalny fragment, na przykład `task1`.
|
||||
|
||||
```bash
|
||||
./rvctl series cards tasks show inf bss task1
|
||||
```
|
||||
|
||||
## `series cards tasks switch SERIES CARD TASK`
|
||||
|
||||
Tworzy albo przełącza lokalny branch pracy dla zadania.
|
||||
|
||||
Argumenty:
|
||||
|
||||
- `SERIES`
|
||||
Id serii, na przykład `inf`.
|
||||
- `CARD`
|
||||
Pełna nazwa repo albo unikalny fragment, na przykład `bss`.
|
||||
- `TASK`
|
||||
Pełna nazwa zadania albo unikalny fragment, na przykład `task4` albo `4`.
|
||||
|
||||
Przełączniki:
|
||||
|
||||
- `--branch NAME`
|
||||
Nadpisuje automatyczną nazwę brancha.
|
||||
- `--dry-run`
|
||||
Pokazuje plan bez przełączania brancha.
|
||||
|
||||
Domyślna nazwa brancha powstaje z użytkownika w `tokens.json`, numeru zadania i
|
||||
końcówki `a`. Dla użytkownika `u1` i zadania `task4_stack_strlen` będzie to
|
||||
`u1T4a`.
|
||||
|
||||
```bash
|
||||
./rvctl series cards tasks switch inf bss 4
|
||||
```
|
||||
|
||||
## `list-series`
|
||||
|
||||
Alias kompatybilności dla `series list`.
|
||||
|
||||
```bash
|
||||
./rvctl list-series
|
||||
```
|
||||
|
||||
## `list-cards [series]`
|
||||
|
||||
Listuje karty z wybranej serii.
|
||||
Alias kompatybilności dla `series cards list SERIES`.
|
||||
|
||||
Argumenty:
|
||||
|
||||
@@ -272,18 +504,6 @@ Argumenty:
|
||||
Opcjonalne id serii, na przykład `inf`.
|
||||
Jeśli go brak, brana jest domyślna seria z `workspace.json`.
|
||||
|
||||
Format wyjścia:
|
||||
|
||||
```text
|
||||
<card_no><TAB><tytuł_z_README><TAB><pełna_ścieżka>
|
||||
```
|
||||
|
||||
Jeśli `README.md` nie ma nagłówka `#`, skrypt wypisuje:
|
||||
|
||||
```text
|
||||
<card_no><TAB><pełna_ścieżka>
|
||||
```
|
||||
|
||||
Przykłady:
|
||||
|
||||
```bash
|
||||
@@ -317,7 +537,7 @@ Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl tokens scan
|
||||
./rvctl tokens scan --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens scan --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
## `tokens compare`
|
||||
@@ -358,7 +578,7 @@ Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl tokens compare
|
||||
./rvctl tokens compare --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens compare --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
## `tokens list store|remote|both`
|
||||
@@ -466,7 +686,7 @@ Przełączniki:
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl tokens sync store r1 --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens sync store r1 --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
## `tokens remove store|remote|both REMOTE_ID`
|
||||
@@ -491,7 +711,7 @@ Przykłady:
|
||||
./rvctl tokens remove store r1
|
||||
./rvctl tokens remove remote r1
|
||||
./rvctl tokens remove both r1
|
||||
./rvctl tokens remove remote r1 --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens remove remote r1 --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
## `tokens read`
|
||||
@@ -559,7 +779,7 @@ in_sync<TAB>1
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl tokens stats --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens stats --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
## `tokens write`
|
||||
@@ -588,7 +808,7 @@ Przełączniki:
|
||||
Przykład:
|
||||
|
||||
```bash
|
||||
./rvctl tokens write --repo ~/dev/workspace/rv/series/inf/03 --remote r1 --server http://77.90.8.171:3001
|
||||
./rvctl tokens write --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack --remote r1 --server http://77.90.8.171:3001
|
||||
```
|
||||
|
||||
## `tokens update REMOTE_ID`
|
||||
@@ -639,8 +859,8 @@ Przełączniki:
|
||||
Przykłady:
|
||||
|
||||
```bash
|
||||
./rvctl tokens update --from remotes --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens update --from store --repo ~/dev/workspace/rv/series/inf/03 --remote r1 --server http://77.90.8.171:3001
|
||||
./rvctl tokens update --from remotes --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
./rvctl tokens update --from store --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack --remote r1 --server http://77.90.8.171:3001
|
||||
```
|
||||
|
||||
## `submission [series] [card]`
|
||||
@@ -648,65 +868,71 @@ Przykłady:
|
||||
Wylicza przepływ oddawania rozwiązań:
|
||||
|
||||
- `r1` jako repo z materiałem z `edu-inf`
|
||||
- `a1` jako repo odpowiedzi w `zsl-inf`
|
||||
- branch ucznia na podstawie jego nicku
|
||||
- `r1a` jako repo odpowiedzi w `c2025-1a-inf`
|
||||
- branch ucznia liczony ze store tokenów i zadania
|
||||
|
||||
Nazwa repo odpowiedzi jest budowana z nazwy repo źródłowego z `edu-inf`, klasy
|
||||
i daty:
|
||||
Nazwa repo odpowiedzi jest taka sama jak nazwa repo źródłowego karty:
|
||||
|
||||
```text
|
||||
<repo_z_edu-inf>-<klasa>-<data>
|
||||
<repo_z_edu-inf>
|
||||
```
|
||||
|
||||
Przykład:
|
||||
|
||||
```text
|
||||
lab-rv32i-strlen-bss-data-stack-4i-2026-04-26
|
||||
lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
Argumenty pozycyjne:
|
||||
|
||||
- `series`
|
||||
Id serii albo pełny selector, na przykład `inf` albo `inf/03`.
|
||||
Id serii albo pełny selector, na przykład `inf` albo `inf/bss`.
|
||||
- `card`
|
||||
Numer karty, na przykład `03`.
|
||||
Karta albo unikalny fragment nazwy repo, na przykład `bss`.
|
||||
|
||||
Przełączniki:
|
||||
|
||||
- `--class NAME`
|
||||
Id klasy, na przykład `4i`.
|
||||
Id klasy albo grupy, na przykład `c2025-1a-inf`.
|
||||
- `--nick NAME`
|
||||
Nick ucznia. Domyślnie z niego powstaje nazwa brancha.
|
||||
Nick ucznia. Jeżeli go nie podasz, `rvctl` bierze użytkownika ze store
|
||||
tokenów.
|
||||
- `--task TASK`
|
||||
Zadanie używane do zbudowania domyślnej nazwy brancha. Domyślnie
|
||||
`defaults.task` z `workspace.json`.
|
||||
- `--branch NAME`
|
||||
Nadpisuje domyślną nazwę brancha.
|
||||
Nadpisuje domyślną nazwę brancha. Bez tego branch ma format
|
||||
`<login>T<numer_zadania>a`, na przykład `u1T1a`.
|
||||
- `--date YYYY-MM-DD`
|
||||
Data zajęć używana w nazwie repo odpowiedzi. Domyślnie dzisiejsza.
|
||||
Data zajęć. Zostaje w raporcie, ale nie zmienia nazwy repo odpowiedzi.
|
||||
- `--source-url URL`
|
||||
Nadpisuje URL repo źródłowego. Bez tego launcher czyta `origin` z repo karty.
|
||||
Nadpisuje URL repo źródłowego. Bez tego launcher czyta `r1` albo `origin` z
|
||||
repo karty.
|
||||
- `--apply`
|
||||
Dodaje albo aktualizuje remote `r1` i `a1` w repo karty.
|
||||
Dodaje albo aktualizuje remote `r1` i `r1a` w repo karty.
|
||||
|
||||
Typowy format wyjścia:
|
||||
|
||||
```text
|
||||
selector<TAB>inf/03
|
||||
selector<TAB>inf/bss
|
||||
card_path<TAB>...
|
||||
source_repo<TAB>edu-inf/lab-rv32i-strlen-bss-data-stack
|
||||
source_remote<TAB>r1
|
||||
source_url<TAB>http://77.90.8.171:3001/edu-inf/lab-rv32i-strlen-bss-data-stack.git
|
||||
source_branch<TAB>deploy
|
||||
answer_remote<TAB>a1
|
||||
answer_repo<TAB>zsl-inf/lab-rv32i-strlen-bss-data-stack-4i-2026-04-26
|
||||
answer_url<TAB>http://77.90.8.171:3001/zsl-inf/lab-rv32i-strlen-bss-data-stack-4i-2026-04-26.git
|
||||
student_branch<TAB>u1
|
||||
answer_remote<TAB>r1a
|
||||
answer_repo<TAB>c2025-1a-inf/lab-rv32i-strlen-bss-data-stack
|
||||
answer_url<TAB>http://77.90.8.171:3001/c2025-1a-inf/lab-rv32i-strlen-bss-data-stack.git
|
||||
student_user<TAB>u1
|
||||
student_branch<TAB>u1T1a
|
||||
```
|
||||
|
||||
Przykłady:
|
||||
|
||||
```bash
|
||||
./rvctl submission inf 03 --class 4i --nick u1
|
||||
./rvctl submission inf 03 --class 4i --nick u1 --apply
|
||||
./rvctl submission inf/03 --class 4i --nick u2 --date 2026-04-26
|
||||
./rvctl submission inf bss --class c2025-1a-inf
|
||||
./rvctl submission inf bss --class c2025-1a-inf --task 4 --apply
|
||||
./rvctl series cards submission inf bss --class c2025-1a-inf --branch u1T4a
|
||||
```
|
||||
|
||||
## `tmux-container [series] [card]`
|
||||
@@ -716,9 +942,9 @@ Tworzy nową sesję `tmux` i uruchamia kontener w `pane 0`.
|
||||
Argumenty pozycyjne:
|
||||
|
||||
- `series`
|
||||
Id serii albo pełny selector, na przykład `inf` albo `inf/03`.
|
||||
Id serii albo pełny selector, na przykład `inf` albo `inf/bss`.
|
||||
- `card`
|
||||
Numer karty, na przykład `03`.
|
||||
Karta albo unikalny fragment nazwy repo, na przykład `bss`.
|
||||
|
||||
Przełączniki:
|
||||
|
||||
@@ -735,16 +961,16 @@ Przełączniki:
|
||||
|
||||
Reguły wyboru karty:
|
||||
|
||||
- `tmux-container inf 03` -> seria `inf`, karta `03`
|
||||
- `tmux-container inf/03` -> pełny selector
|
||||
- `tmux-container 03` -> domyślna seria + karta `03`
|
||||
- `tmux-container inf bss` -> seria `inf`, karta `bss`
|
||||
- `tmux-container inf/bss` -> pełny selector
|
||||
- `tmux-container bss` -> domyślna seria + karta `bss`
|
||||
- `tmux-container inf` -> seria `inf` + domyślna karta
|
||||
- bez argumentów -> domyślna seria i domyślna karta
|
||||
|
||||
Przykłady:
|
||||
|
||||
```bash
|
||||
./rvctl tmux-container 03 --dry-run
|
||||
./rvctl tmux-container inf 03 --session rv-inf03
|
||||
./rvctl tmux-container inf/03 --attach
|
||||
./rvctl tmux-container bss --dry-run
|
||||
./rvctl tmux-container inf bss --session rv-inf-bss
|
||||
./rvctl tmux-container inf/bss --attach
|
||||
```
|
||||
|
||||
+79
-88
@@ -1,7 +1,7 @@
|
||||
# Series
|
||||
|
||||
Ten dokument opisuje docelowy model komend `rvctl` do pracy z seriami, kartami
|
||||
pracy i zadaniami w kartach.
|
||||
Ten dokument opisuje komendy `rvctl` do pracy z seriami, kartami pracy i
|
||||
zadaniami w kartach.
|
||||
|
||||
## Zasada
|
||||
|
||||
@@ -11,73 +11,51 @@ Komendy kart pracy dzielimy na trzy poziomy:
|
||||
- `series cards` - operacje na kartach w ramach serii
|
||||
- `series cards tasks` - operacje na zadaniach w ramach karty
|
||||
|
||||
Używamy pluralnych namespace'ów `cards` i `tasks`, bo opisują kolekcje zasobów
|
||||
i są spójne z pluralnym `tokens`.
|
||||
`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.
|
||||
|
||||
## Szybki przepływ
|
||||
|
||||
Typowy przepływ pracy:
|
||||
|
||||
```bash
|
||||
./rvctl tokens compare
|
||||
./rvctl series list
|
||||
./rvctl series show inf
|
||||
./rvctl series fetch inf
|
||||
./rvctl series cards list inf
|
||||
./rvctl series cards show inf 03
|
||||
./rvctl series cards tasks list inf 03
|
||||
./rvctl series cards tasks show inf 03 task1
|
||||
./rvctl series cards fetch inf 03
|
||||
./rvctl series cards submission inf 03 --class 4i --nick u1
|
||||
./rvctl series cards fetch inf bss
|
||||
./rvctl series cards tasks list inf bss
|
||||
./rvctl series cards tasks switch inf bss 1
|
||||
```
|
||||
|
||||
Dla karty `bss` właściwym repo jest `lab-rv32i-strlen-bss-data-stack`.
|
||||
|
||||
## Serie
|
||||
|
||||
### `series list`
|
||||
|
||||
Listuje dostępne serie w workspace.
|
||||
Listuje dostępne serie. Jeżeli `~/dev/workspace/rv/series` nie istnieje,
|
||||
komenda tworzy ten katalog.
|
||||
|
||||
```bash
|
||||
./rvctl series list
|
||||
```
|
||||
|
||||
Przykładowy wynik:
|
||||
Typowy wynik:
|
||||
|
||||
```text
|
||||
series cards workspace
|
||||
------ ----- -------------------------------
|
||||
inf 12 ~/dev/workspace/rv/series/inf
|
||||
inf 3 0
|
||||
```
|
||||
|
||||
Kolumny oznaczają: seria, liczba kart w źródłach, liczba kart pobranych do
|
||||
workspace.
|
||||
|
||||
### `series show SERIES`
|
||||
|
||||
Pokazuje informacje o serii jako całości.
|
||||
Pokazuje informacje o serii.
|
||||
|
||||
```bash
|
||||
./rvctl series show inf
|
||||
```
|
||||
|
||||
Typowe pola:
|
||||
|
||||
```text
|
||||
series inf
|
||||
workspace_path ~/dev/workspace/rv/series/inf
|
||||
source_path ~/dev/edu/repos/rv/series/inf
|
||||
cards_count 12
|
||||
cards 01 02 03 ...
|
||||
```
|
||||
|
||||
### `series fetch SERIES`
|
||||
|
||||
Pobiera albo aktualizuje całą serię w workspace.
|
||||
|
||||
```bash
|
||||
./rvctl series fetch inf
|
||||
```
|
||||
|
||||
Ta komenda pracuje na wszystkich kartach w serii. Do pobrania jednej karty
|
||||
służy `series cards fetch`.
|
||||
|
||||
## Karty
|
||||
|
||||
### `series cards list SERIES`
|
||||
@@ -91,38 +69,45 @@ Listuje karty w wybranej serii.
|
||||
Przykładowy wynik:
|
||||
|
||||
```text
|
||||
series card repo
|
||||
------ ---- ------------------------------------
|
||||
inf 03 lab-rv32i-strlen-bss-data-stack
|
||||
bss lab-rv32i-strlen-bss-data-stack source rv32i-c / bss-data-stack
|
||||
```
|
||||
|
||||
Pierwsza kolumna jest krótką nazwą karty. Pełna nazwa repo zostaje w drugiej
|
||||
kolumnie.
|
||||
|
||||
### `series cards fetch SERIES CARD`
|
||||
|
||||
Pobiera albo aktualizuje jedną kartę w workspace. `CARD` może być krótką nazwą
|
||||
albo unikalnym fragmentem pełnej nazwy repo.
|
||||
|
||||
```bash
|
||||
./rvctl series cards fetch inf bss
|
||||
```
|
||||
|
||||
Karta trafia do:
|
||||
|
||||
```text
|
||||
~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
Po pobraniu `rvctl` przygotowuje remotes:
|
||||
|
||||
- `r1` - repo źródłowe karty w `edu-inf`
|
||||
- `r1a` - repo pracy w `c2025-1a-inf`
|
||||
|
||||
Remote `r1a` jest tworzony z tokena `r1` i wskazuje na repo o tej samej nazwie
|
||||
co karta:
|
||||
|
||||
```text
|
||||
http://77.90.8.171:3001/c2025-1a-inf/lab-rv32i-strlen-bss-data-stack.git
|
||||
```
|
||||
|
||||
### `series cards show SERIES CARD`
|
||||
|
||||
Pokazuje informacje o konkretnej karcie.
|
||||
Pokazuje informacje o karcie.
|
||||
|
||||
```bash
|
||||
./rvctl series cards show inf 03
|
||||
```
|
||||
|
||||
Typowe pola:
|
||||
|
||||
```text
|
||||
series inf
|
||||
card 03
|
||||
workspace_path ~/dev/workspace/rv/series/inf/03
|
||||
source_path ~/dev/edu/repos/rv/series/inf/03
|
||||
source_repo edu-inf/lab-rv32i-strlen-bss-data-stack
|
||||
source_remote r1
|
||||
answer_remote a1
|
||||
tasks task1 task2 ...
|
||||
```
|
||||
|
||||
### `series cards fetch SERIES CARD`
|
||||
|
||||
Pobiera albo aktualizuje jedną kartę w workspace.
|
||||
|
||||
```bash
|
||||
./rvctl series cards fetch inf 03
|
||||
./rvctl series cards show inf bss
|
||||
```
|
||||
|
||||
### `series cards submission SERIES CARD`
|
||||
@@ -130,14 +115,15 @@ Pobiera albo aktualizuje jedną kartę w workspace.
|
||||
Pokazuje albo stosuje konfigurację repo odpowiedzi dla karty.
|
||||
|
||||
```bash
|
||||
./rvctl series cards submission inf 03 --class 4i --nick u1
|
||||
./rvctl series cards submission inf 03 --class 4i --nick u1 --apply
|
||||
./rvctl series cards submission inf bss --class c2025-1a-inf
|
||||
./rvctl series cards submission inf bss --class c2025-1a-inf --task 4 --apply
|
||||
```
|
||||
|
||||
Bez `--apply` komenda tylko pokazuje plan. Z `--apply` ustawia remotes potrzebne
|
||||
do pracy z repo odpowiedzi.
|
||||
Bez `--apply` komenda pokazuje plan. Z `--apply` ustawia remotes potrzebne do
|
||||
pracy z repo odpowiedzi. Jeżeli nie podasz `--branch`, branch jest liczony ze
|
||||
store tokenów i zadania, na przykład `u1T1a`.
|
||||
|
||||
## Zadania W Karcie
|
||||
## Zadania w karcie
|
||||
|
||||
Zadania są częścią karty, dlatego trzymamy je pod `series cards tasks`.
|
||||
|
||||
@@ -146,16 +132,16 @@ Zadania są częścią karty, dlatego trzymamy je pod `series cards tasks`.
|
||||
Listuje zadania dostępne w konkretnej karcie.
|
||||
|
||||
```bash
|
||||
./rvctl series cards tasks list inf 03
|
||||
./rvctl series cards tasks list inf bss
|
||||
```
|
||||
|
||||
Przykładowy wynik:
|
||||
|
||||
```text
|
||||
series card task path
|
||||
------ ---- ----- --------------------------------------
|
||||
inf 03 task1 ~/dev/workspace/rv/series/inf/03/task1
|
||||
inf 03 task2 ~/dev/workspace/rv/series/inf/03/task2
|
||||
inf bss task1_bss ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks
|
||||
inf bss task2_data ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks
|
||||
inf bss task3_stack_unused ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks
|
||||
inf bss task4_stack_strlen ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks
|
||||
```
|
||||
|
||||
### `series cards tasks show SERIES CARD TASK`
|
||||
@@ -163,33 +149,38 @@ inf 03 task2 ~/dev/workspace/rv/series/inf/03/task2
|
||||
Pokazuje informacje o konkretnym zadaniu w karcie.
|
||||
|
||||
```bash
|
||||
./rvctl series cards tasks show inf 03 task1
|
||||
./rvctl series cards tasks show inf bss task1
|
||||
```
|
||||
|
||||
Typowe pola:
|
||||
### `series cards tasks switch SERIES CARD TASK`
|
||||
|
||||
Tworzy albo przełącza lokalny branch pracy dla wybranego zadania.
|
||||
|
||||
```bash
|
||||
./rvctl series cards tasks switch inf bss 4
|
||||
```
|
||||
|
||||
Nazwa brancha jest liczona automatycznie z użytkownika w `tokens.json` i numeru
|
||||
zadania. Dla użytkownika `u1` i zadania `task4_stack_strlen` powstanie:
|
||||
|
||||
```text
|
||||
series inf
|
||||
card 03
|
||||
task task1
|
||||
workspace_path ~/dev/workspace/rv/series/inf/03/task1
|
||||
card_path ~/dev/workspace/rv/series/inf/03
|
||||
u1T4a
|
||||
```
|
||||
|
||||
Jeżeli branch już istnieje, `rvctl` przełącza na niego repo. Jeżeli go nie ma,
|
||||
tworzy go od aktualnego commita karty.
|
||||
|
||||
Na tym poziomie nie wprowadzamy osobnego `fetch`: zadania są pobierane razem z
|
||||
kartą przez `series cards fetch` albo razem z całą serią przez `series fetch`.
|
||||
|
||||
## Aliasowanie Starych Komend
|
||||
|
||||
Stare komendy można zostawić jako aliasy kompatybilności:
|
||||
Stare komendy zostają jako aliasy kompatybilności:
|
||||
|
||||
```text
|
||||
list-series -> series list
|
||||
list-cards inf -> series cards list inf
|
||||
submission inf 03 --class K --nick N -> series cards submission inf 03 --class K --nick N
|
||||
submission inf bss --class K -> series cards submission inf bss --class K
|
||||
```
|
||||
|
||||
Komendy `series cards tasks ...` nie mają starego odpowiednika i powinny być
|
||||
wprowadzane tylko w nowym namespace.
|
||||
|
||||
Dokumentacja i nowe przykłady powinny promować namespace `series`.
|
||||
|
||||
+4
-4
@@ -98,7 +98,7 @@ Znaczenie:
|
||||
Dla innego repo podaj `--repo`:
|
||||
|
||||
```bash
|
||||
./rvctl tokens list remote --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens list remote --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
## Synchronizacja
|
||||
@@ -233,9 +233,9 @@ Domyślnie komendy tokenów pracują na repo zawierającym `rvctl`. Dla kart pra
|
||||
albo innych repo podaj `--repo`.
|
||||
|
||||
```bash
|
||||
./rvctl tokens list remote --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens compare --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens sync store r1 --repo ~/dev/workspace/rv/series/inf/03
|
||||
./rvctl tokens list remote --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
./rvctl tokens compare --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
./rvctl tokens sync store r1 --repo ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
|
||||
```
|
||||
|
||||
Store tokenów nadal pozostaje jeden:
|
||||
|
||||
Reference in New Issue
Block a user