This shows you the differences between two versions of the page.
|
sd-ca:vmchecker [2013/02/17 13:17] laura.vasilescu created |
sd-ca:vmchecker [2023/05/29 08:52] (current) emil.racec |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | {{section>help:vmchecker&noheader&nofooter}} | + | ====== Folosire vmchecker ====== |
| + | |||
| + | În caz de probleme, trebuie trimis mail către [[vmchecker-request@cursuri.cs.pub.ro|vmchecker-request@cursuri.cs.pub.ro]]. | ||
| + | |||
| + | ===== Acces server ===== | ||
| + | |||
| + | ==== Initial step ===== | ||
| + | |||
| + | Trimiteți cheia publică cuiva care are deja acces. | ||
| + | |||
| + | Spre exemplu Laurei (laura@linux.com) | ||
| + | |||
| + | ==== In general ==== | ||
| + | |||
| + | <code bash Proiectarea Algoritmilor> | ||
| + | ssh pa@elf.cs.pub.ro | ||
| + | </code> | ||
| + | |||
| + | <code bash Programare Seria CA> | ||
| + | ssh pc@elf.cs.pub.ro | ||
| + | </code> | ||
| + | |||
| + | <code bash Programare Seria CBCD> | ||
| + | ssh pc-cb@elf.cs.pub.ro | ||
| + | </code> | ||
| + | |||
| + | ===== Configurarea unei teme noi ==== | ||
| + | |||
| + | ==== Update fisier config ==== | ||
| + | |||
| + | Se modifică fișierul ''~/vmchecker-storer/config'' similar cu tema 1 sau tema 2. | ||
| + | |||
| + | Se caută secțiunea cu ''<nowiki>[[assignment 1-hubble]]</nowiki>'' sau ''<nowiki>[[assignment 2-conquer]]</nowiki>'' și se creează una asemănătoare pentru noua temă, modificând corespunzător. | ||
| + | |||
| + | **Obligatoriu** numele temei este de forma ''1-hubble'' sau ''2-conquer''. Cifră-liniuță-nume. | ||
| + | |||
| + | ==== Adăugare arhivă de teste ==== | ||
| + | |||
| + | Arhiva trebuie **obligatoriu** să aibă același nume cu tema. (vezi formatul de mai sus). | ||
| + | |||
| + | Se adaugă în: ''~/vmchecker-storer/tests/''. | ||
| + | Exemplu: | ||
| + | <code>= | ||
| + | pc@elf:~$ ls ~/vmchecker-storer/tests/ | ||
| + | 1-hubble.zip 2-conquer.zip | ||
| + | </code> | ||
| + | |||
| + | ==== Everything should work! ==== | ||
| + | |||
| + | ===== Vizualizare teme ===== | ||
| + | |||
| + | Toate temele submise se află într-un repo git generat automat. | ||
| + | |||
| + | Spre exemplu, pentru tema nr. 1: | ||
| + | <code> | ||
| + | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/ | ||
| + | adela_adriana.sandulescu catalin.stanciu2712 florin_cristian.hurezeanu mihail_razvan.cojocaru | ||
| + | adela_ioana.hintiu cezar_mihai.ghimbas florin_george.bostinaru mihai.mihailescu | ||
| + | [...] | ||
| + | </code> | ||
| + | Pentru fiecare student este creat automat un director. | ||
| + | |||
| + | ==== Structura directorului unui student/temă ==== | ||
| + | |||
| + | Cum arată un astfel de director? | ||
| + | <code> | ||
| + | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/ | ||
| + | current sb_2012.11.05__22.08.52_rnd948 sb_2012.11.05__23.08.48_rnd590 | ||
| + | sb_2012.11.05__21.18.51_rnd436 sb_2012.11.05__22.23.14_rnd8 sb_2012.11.05__23.13.08_rnd175 | ||
| + | sb_2012.11.05__21.32.34_rnd17 sb_2012.11.05__22.48.06_rnd239 sb_2012.11.05__23.15.05_rnd653 | ||
| + | sb_2012.11.05__21.42.43_rnd52 sb_2012.11.05__22.51.46_rnd16 sb_2012.11.05__23.24.58_rnd19 | ||
| + | sb_2012.11.05__21.48.00_rnd21 sb_2012.11.05__22.57.24_rnd313 | ||
| + | sb_2012.11.05__21.52.42_rnd671 sb_2012.11.05__23.00.14_rnd459 | ||
| + | </code> | ||
| + | |||
| + | ''current'' este un link simbolic către ultima temă trimisă. Restul reprezintă versiuni mai vechi, salvate corespunzător după data la care au fost trimise. | ||
| + | |||
| + | Cum arată directorul ''current''? (de fapt, și toate celelalte) | ||
| + | <code> | ||
| + | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/current | ||
| + | archive.zip git results | ||
| + | </code> | ||
| + | |||
| + | **''archive.zip''** este chiar arhiva submisă. | ||
| + | |||
| + | **''git''** este un director ce conține printre alte lucruri, un director numit ''archive'' cu conținutul arhivei submise dezarhivat. | ||
| + | <note> | ||
| + | Nu este necesar să vizualizați sursele din git/archive/*. vim știe să citească arhive. Eu folosesc direct vim archive.zip. | ||
| + | </note> | ||
| + | **''results''** este un director în care vmchecker stochează rezultatele rulării temei | ||
| + | |||
| + | ===== Corectare teme ===== | ||
| + | |||
| + | Cum ziceam mai sus, rezultatele rulării pe vmchecker sunt puse în directorul ''results'' sub formatul următor: | ||
| + | <code> | ||
| + | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/current/results/ | ||
| + | build-stderr.vmr build-stdout.vmr grade.vmr run-stderr.vmr run-stdout.vmr vmchecker-stderr.vmr | ||
| + | </code> | ||
| + | Ce face fiecare fișier? | ||
| + | |||
| + | * **build-stderr.vmr** - output scris la ''stderr'' în timp-ul etapei de ''build'' | ||
| + | * **build-stdout.vmr** - output scris la ''stdout'' în timp-ul etapei de ''build'' | ||
| + | * **run-stderr.vmr** - output scris la ''stderr'' în timp-ul etapei de ''run'' | ||
| + | * **run-stdout.vmr** - output scris la ''stdout'' în timp-ul etapei de ''run'' | ||
| + | * **vmchecker-stderr.vmr** - eventualele mesaje de eroare "scuipate" de vmchecker | ||
| + | * **grade.vmr** - fișier folosit pentru feedback-ul asistentului | ||
| + | |||
| + | ==== Cum se corectează o temă eficient? ==== | ||
| + | |||
| + | * Te uiți în interfața web și vezi câte teste trec | ||
| + | * Treci în grade.vmr cu minus punctele corespunzătoare pentru testele picate | ||
| + | * Mai adaugi în grade.vmr și eventuale alte depunctări (cu minus) sau bonusuri (cu plus) | ||
| + | * Verifici în interfața web punctajul final (depunctările de întârziere se calculează automat) | ||
| + | * Treci nota și în catalog (google spreadsheet) | ||
| + | |||
| + | ==== Cum se folosește grade.vmr ==== | ||
| + | |||
| + | Depunctările în urma întârzierilor sunt scăzute automat. | ||
| + | |||
| + | Depunctările în urma testelor picate trebuie scăzute de mână. | ||
| + | |||
| + | Exemplu de format pentru grade.vmr: | ||
| + | <code> | ||
| + | +0.0: nice coding style :) | ||
| + | -5.0: tests failed | ||
| + | -0.20: New memory leak modification (In function execCommand, | ||
| + | in file tema0.c, at line 189;) | ||
| + | -0.20: Use of unitialized variable (In function add, in file | ||
| + | tema0.c, at line 61;) | ||
| + | -0.10: Use of non-static variables or functions in a single | ||
| + | module (In file tema0.c, at line 21; In file tema0.c, at line 32; In | ||
| + | file tema0.c, at line 46; In file tema0.c, at line 55; In file | ||
| + | tema0.c at line 79; In file tema0.c, at line 103; In file tema0.c, at | ||
| + | line 113; In file tema0.c, at line 124; In file tema0.c, at line 134; | ||
| + | In file tema0.c, at line 143; In file tema0.c, at line 162;) | ||
| + | </code> | ||
| + | |||
| + | Calculele se fac ulterior automat. Trebuie doar respectat formatul. | ||
| + | |||
| + | ==== Workflow Windows ==== | ||
| + | |||
| + | Dacă preferați să aveți la dispoziție o interfață grafică mai degrabă decât să faceți totul din terminal, se poate folosi [[https://code.visualstudio.com/|Visual Studio Code]] împreună cu extensia [[https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs|SSH FS]] pentru a corecta mai ușor. | ||
| + | |||
| + | {{:help:vs-code-vmchecker.png?700|}} | ||
| + | |||
| + | === Configurare === | ||
| + | |||
| + | După ce ați instalat extensia, apăsați ''Ctrl+Shift+P'' și selectați ''SSH FS: Create a SSH FS Configuration''. Trebuie să aveți configurate următoarele câmpuri: | ||
| + | |||
| + | * **Host:** ''elf.cs.pub.ro'' | ||
| + | * **Port:** ''22'' | ||
| + | * **Root:** ''~'' | ||
| + | * **Username:** cel corezspunzător materiei, spre exemplu ''pc-cb'' | ||
| + | * **Private key:** calea către cheia privată (în general pe Linux va fi în ''~/.ssh/id_rsa'', trebuie să o copiați pe Windows) | ||
| + | |||
| + | Dacă veți corecta la mai multe materii, este util să puneți **Name** ca numele materiei și **Group** ca ''vmchecker'' pentru a păstra toate configurațiile la un loc. | ||
| + | |||
| + | === Conectare === | ||
| + | |||
| + | După ce salvați configurația, vă puteți conecta apăsând ''Ctrl+Shift+P'' și selectând întâi ''SSH FS: Connect as Workspace folder'' și apoi configurația dorită. | ||