Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Jouer son premier lab dsoxlab avec dsoxlab demo

Par mis à jour le

Améliorer cette page

Logo DSOXLab

dsoxlab demo installe un catalogue d'un seul lab, premiers-pas, et vous le fait jouer en cinq minutes, sans cloner de dépôt, sans machine virtuelle et sans Docker. Cette leçon s'adresse à qui vient d'installer la CLI et veut voir une boucle complète avant de choisir un catalogue : lire le cours, ouvrir la session, lire la mission, produire un résultat, demander un indice, puis faire valider son travail par dsoxlab check et lire le score. Le sujet du lab est dsoxlab lui-même, donc rien d'autre à savoir. Les gestes appris ici sont ceux que vous répéterez sur tous les labs du site.

  • Installer le catalogue de démonstration avec dsoxlab demo.
  • Décrire la boucle d'un lab : cours, session, mission, validation, score.
  • Produire l'état que la mission demande, dans le bon répertoire.
  • Mesurer ce que coûte un indice, avec dsoxlab hint.
  • Interpréter le résultat de dsoxlab check et l'historique de dsoxlab scores.
  • Repartir de zéro avec dsoxlab demo --force, en connaissance de cause.

Il vous faut la CLI dsoxlab (l'outil en ligne de commande) en version 0.8.0 ou plus récente, installée comme le décrit la leçon Installer dsoxlab en local. Le test est simple : dsoxlab --version affiche un numéro de version, 0.8.0 ou supérieure. Aucun droit d'administration n'est utile ici, et aucun hyperviseur (le logiciel qui fait tourner des machines virtuelles), car le lab de démonstration tourne dans un simple répertoire de votre machine.

Que fait dsoxlab demo, et que laisse-t-il sur le poste ?

Section intitulée « Que fait dsoxlab demo, et que laisse-t-il sur le poste ? »

dsoxlab demo copie un catalogue de démonstration dans le répertoire de données de votre compte, puis le rend actif. Un catalogue est un dépôt de labs décrit par un fichier meta.yml ; celui-ci n'en contient qu'un.

Le runtime de ce lab, c'est-à-dire son mode d'exécution, est shell. Un lab shell se joue dans un répertoire de votre poste, alors qu'un lab vm démarre de vraies machines.

Le catalogue actif est celui que dsoxlab sert quand vous n'êtes pas dans un répertoire de catalogue. C'est ce qui évite tout cd avant de taper les commandes.

Fenêtre de terminal
dsoxlab demo
✔ Catalogue de démonstration installé dans /home/alice/.local/share/dsoxlab/demo
ℹ Pour commencer, depuis n'importe quel répertoire :
dsoxlab course premiers-pas
dsoxlab run premiers-pas
Puis, une fois la mission remplie : dsoxlab check premiers-pas
ℹ Les fichiers du lab sont dans /home/alice/.local/share/dsoxlab/demo

Le critère de réussite est le premier message : le chemin cité existe, et dsoxlab list-labs affiche une ligne premiers-pas. Le dossier suit $XDG_DATA_HOME quand cette variable est définie, sinon ~/.local/share. Il contient aussi votre progression et vos réponses : voilà pourquoi la commande refuse d'écraser une installation existante.

Relancer dsoxlab demo quand le catalogue est déjà là ne touche donc à rien. La commande sort en code 1 (le code de sortie d'une commande vaut 0 quand tout va bien, autre chose sinon) et vous dit comment reprendre votre lab, ou comment repartir de zéro avec --force, geste traité en fin de leçon. Le cd qu'elle propose pour reprendre n'est utile que si un autre catalogue est devenu actif.

✘ Le catalogue de démonstration est déjà installé dans
/home/alice/.local/share/dsoxlab/demo.
ℹ Il contient peut-être votre progression et vos réponses, donc rien n'a été
touché.
Pour le reprendre : cd /home/alice/.local/share/dsoxlab/demo && dsoxlab list-labs
Pour repartir de zéro : dsoxlab demo --force

Un lab dsoxlab suit le même cycle : on ouvre la session avec run, on s'appuie sur le cours et la mission, on produit un état, puis check le mesure. Le schéma ci-dessous montre ce cycle. Regardez surtout la boucle entre « Produire » et check : un test rouge ne ferme rien, vous corrigez et vous relancez. L'indice, en pointillés, est une sortie facultative qui se paie en points. Le schéma ne montre pas un détail : check enregistre aussi les tentatives ratées, comme le montre dsoxlab scores plus bas.

Le cycle d'un lab : dsoxlab run ouvre le répertoire de travail, dsoxlab course puis dsoxlab challenge donnent la matière et la mission, l'apprenant produit l'état demandé, puis dsoxlab check lance les tests. Si un test échoue, on retourne produire ; sinon le score est enregistré, égal à 100 moins le coût des indices. Dsoxlab hint, en pointillés, mène à un indice payant avant de retourner produire.nonouidsoxlab runouvre le répertoire de travaildsoxlab coursepuis dsoxlab challengeProduire l'état demandédans le répertoire de travaildsoxlab checktests verts ?Score enregistré100 moins le coût des indicesdsoxlab hintindice payant
La validation lit l'état produit, jamais l'historique des commandes tapées. Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

La légende du schéma donne la règle qui compte. check exécute des tests qui lisent l'état que vous avez produit, ici des fichiers : peu importe comment vous les avez créés. Un lab qui noterait vos commandes vous forcerait à deviner une formulation, alors qu'ici tout chemin vers le bon état est valable.

Comment jouer le lab premiers-pas, geste par geste ?

Section intitulée « Comment jouer le lab premiers-pas, geste par geste ? »

Le lab demande trois fichiers dans un dossier reponses/, chacun contenant un mot que vous trouvez à un endroit précis de la boucle. Les trois endroits sont le cours, la mission et l'indice : produire les trois fichiers revient donc à jouer les trois gestes. Les commandes se tapent depuis n'importe quel répertoire, puisque le catalogue de démonstration est actif. Le cours et la mission se lisent d'abord ici, avant d'ouvrir la session, parce que ces deux commandes n'ont pas besoin d'elle.

dsoxlab course premiers-pas n'affiche que la première section et un sommaire ; l'option --all affiche le cours entier, dans le terminal. Lisez-le jusqu'au bout : sa dernière section, « Le mot du cours », donne un mot isolé sur sa ligne, que vous noterez. dsoxlab challenge affiche ensuite la mission, qui contient elle aussi un mot, et dit exactement ce qui sera vérifié.

Fenêtre de terminal
dsoxlab course premiers-pas --all
dsoxlab challenge premiers-pas

Le critère de réussite est de pouvoir répondre à deux questions sans relire : quel mot a donné le cours, et quel mot a donné la mission. La mission cite aussi, en bas, une ligne Répertoire de travail : qui indique où travailler. Quand un cours ou une mission dépasse la hauteur du terminal, dsoxlab les passe dans un pagineur (un afficheur qui défile page par page) : q le quitte.

dsoxlab run premiers-pas prépare le lab et vous place dans son répertoire de travail, challenge/work/ pour ce lab. C'est un sous-shell : un shell lancé par dsoxlab, dont vous sortez avec exit. Tout ce que vous créez ici est ce qui sera validé, et rien d'autre sur votre machine n'est touché.

Fenêtre de terminal
dsoxlab run premiers-pas
ℹ Démarrage du lab premiers-pas (runtime: shell)…
✔ Lab premiers-pas prêt. Vous êtes dans challenge/work/, votre répertoire de
travail isolé.
╭───────────────────────── Comment fonctionne ce lab ──────────────────────────╮
│ │
│ dsoxlab course Les exercices guidés du cours. │
│ dsoxlab challenge La mission : ce qu'il faut produire. │
│ dsoxlab check Lance les tests. Le score est enregistré. │
│ dsoxlab submit Soumission finale : enregistre, puis quitte. │
│ dsoxlab hint Révèle l'indice suivant, contre des points. │
│ │
│ exit quitte la session à tout moment, sans rien enregistrer. │
╰──────────────────────────────────────────────────────────────────────────────╯

Le panneau d'accueil affiché sous le message rappelle les commandes de session. Dans ce sous-shell, créez le dossier reponses/ puis les deux premiers fichiers, en remplaçant les mots entre chevrons par ceux que vous avez relevés :

Fenêtre de terminal
mkdir -p reponses
echo "<mot du cours>" > reponses/cours.txt
echo "<mot de la mission>" > reponses/mission.txt

Ces commandes ne répondent rien quand tout va bien. Vous pouvez le vérifier avec ls reponses, qui doit lister cours.txt et mission.txt. Les tests cherchent ces fichiers relativement à ce répertoire de travail : les créer ailleurs, par exemple dans challenge/, ne compte pas.

Le troisième mot ne se lit nulle part dans le cours : il vient de dsoxlab hint. Un indice se paie : le lab de démonstration en déclare un, qui retire 20 points sur 100, et la mission l'annonce avant que vous le demandiez. La commande affiche l'indice avec son coût et la pénalité totale, sans demander de confirmation. Tapez-la dans le sous-shell où vous êtes, elle y fonctionne ; un second terminal marche aussi.

Le coût est enregistré aussitôt : rejouer le lab ne le rend pas. Dans ce lab, dsoxlab reset, qui vide aussi reponses/ sur un lab shell, et dsoxlab demo --force, qui emporte en plus les notes, effacent les indices pris.

Fenêtre de terminal
dsoxlab hint premiers-pas
╭─────────────────────────────────── Indice ───────────────────────────────────╮
│ 💡 Indice 1/1 │
│ │
│ Le mot que cet indice révèle est : <le mot>. Écrivez-le dans │
│ reponses/indice.txt. Remarquez que dsoxlab scores affiche désormais ce que │
│ cet indice vous a coûté : c'est tout l'intérêt d'en prendre un sciemment. │
│ │
│ Coût : -20 pts Pénalité totale hints : -20 pts │
╰──────────────────────────────────────────────────────────────────────────────╯

Le lab est fait pour être terminé avec l'indice : prenez-le une fois, c'est l'objet de la leçon. Écrivez le mot dans reponses/indice.txt, puis faites valider votre travail avec check.

Fenêtre de terminal
echo "<mot de l'indice>" > reponses/indice.txt
dsoxlab check premiers-pas
ℹ Validation de premiers-pas…
✔ test_functional.py::test_le_mot_du_cours
✔ test_functional.py::test_le_mot_de_la_mission
✔ test_functional.py::test_le_mot_de_l_indice
Tests premiers-pas terminés ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3/3 0:00:00
╭───── Résultat : premiers-pas ─────╮
│ 80 / 100 pts │
│ ████████████████████ 3/3 tests │
│ 1 indice utilisé, -20 pts │
╰───────────────────────────────────╯
ℹ Résultat enregistré dans l'historique (80/100 pts).
✔ Tous les tests sont passés.
ℹ Score sauvegardé. Lancez dsoxlab submit pour valider définitivement et
terminer la session.

Le critère de réussite est la phrase « Tous les tests sont passés » et un score de 80 sur 100. Si un test échoue, check sort en code 1, enregistre quand même la tentative et nomme les tests rouges en phrases : lisez-les, ils disent quel fichier manque et dans quelle commande se lit le mot attendu. Corrigez, puis relancez check, autant de fois qu'il faut.

Le score est la proportion de tests réussis, appliquée à un barème de 100 points diminué du coût des indices pris : un lab entièrement réussi avec un indice à 20 points vaut 80. dsoxlab check calcule cette note et l'enregistre à chaque passage, dsoxlab scores affiche l'historique de tous les passages, y compris les tentatives ratées (les 20 plus récents par défaut, --top règle ce nombre).

Les indices amputent le barème avant que la proportion s'applique, et non la note après coup. Avec un barème de 100 et un indice à 20 points, le barème utile tombe à 80 : deux tests réussis sur trois valent donc 53 sur 100 (2/3 de 80), et non 47. Sans indice, deux tests sur trois valent 67.

Fenêtre de terminal
dsoxlab scores

Le tableau, intitulé « Scores enregistrés », porte les colonnes Lab, Section, Score, Tests, Hints et Validé le. Une colonne Verdict s'ajoute après Score quand le catalogue comporte une épreuve. Vous devez y trouver une ligne premiers-pas avec 80/100, 3/3 et un indice. La colonne Score de dsoxlab list-labs et la fiche de dsoxlab show premiers-pas reprennent ensuite le meilleur score du lab ; la colonne affiche · tant qu'aucun check n'a été enregistré.

dsoxlab submit fait la même validation que check, puis clôt la session ; il vous reste à taper exit. Quitter la session avec exit sans avoir lancé check n'enregistre aucune note. Le panneau d'accueil le rappelle : chaque check enregistre son score, et scores le montre. Les commandes reset et clean sont décrites dans la leçon Recommencer ou nettoyer un lab.

Pour rejouer, il suffit de relancer dsoxlab run premiers-pas : vos fichiers de reponses/ sont toujours là, et check se relance quand vous voulez. Pour repartir d'un catalogue vierge, dsoxlab demo --force réinstalle le catalogue par-dessus l'ancien, en perdant la progression et les réponses déjà présentes.

Fenêtre de terminal
dsoxlab demo --force

La sortie est celle de la première installation. Le critère de réussite est que dsoxlab scores ne montre plus de ligne premiers-pas. N'utilisez --force que si vous voulez vraiment tout effacer : sans lui, la commande protège votre travail et ne touche à rien.

Le lab de démonstration ne sert qu'à comprendre la mécanique. Les vrais labs vivent dans des catalogues que la CLI installe par leur nom ou par l'URL de leur dépôt, ce qui est le sujet de la leçon Installer et gérer ses catalogues de labs dsoxlab.

Le tableau regroupe les blocages rencontrés en jouant ce premier lab. Chaque ligne part du symptôme visible, donne la cause probable et la commande qui règle le problème.

SymptômeCauseSolution
dsoxlab demo répond que le catalogue est déjà installé et sort en code 1Une installation existe et peut porter votre progressiondsoxlab list-labs pour reprendre (depuis le dossier cité si un autre catalogue est actif), ou dsoxlab demo --force pour tout effacer
check rend un score nul et propose de créer un fichier que vous avez déjà crééLes fichiers sont hors du répertoire de travail, par exemple dans challenge/Taper dsoxlab run premiers-pas, puis recréer reponses/ dans le répertoire où la session vous dépose
check nomme un test rouge sur indice.txtLe mot de l'indice manque : dsoxlab hint n'a pas été lancéLancer dsoxlab hint premiers-pas, écrire le mot dans reponses/indice.txt, relancer check
dsoxlab répond « Lab introuvable » sur premiers-pasLe catalogue de démonstration n'est pas le catalogue actif, par exemple parce qu'un dsoxlab catalog add l'a remplacé ; il n'est pas sous catalogs/, donc catalog use ne le rétablit pascd ~/.local/share/dsoxlab/demo puis relancer la commande
dsoxlab hint répond que tous les indices sont utilisésLe lab n'en déclare qu'un et il a déjà été consomméReprendre le mot dans reponses/indice.txt si vous l'avez noté, sinon dsoxlab reset premiers-pas, qui confirme avant d'effacer l'indice et vos fichiers reponses/
  • dsoxlab demo installe un catalogue d'un seul lab, premiers-pas, le rend actif, et ne demande ni dépôt à cloner ni machine virtuelle.
  • La commande refuse d'écraser une installation existante ; avec --force, elle efface la progression et les réponses.
  • La boucle d'un lab est run, course, challenge, production d'un état, puis check, qu'on relance autant de fois que nécessaire.
  • check lit l'état produit, jamais les commandes tapées, et il enregistre la note à chaque passage.
  • dsoxlab hint révèle un indice et déduit son coût de la note : 20 points sur ce lab, enregistrés aussitôt.
  • Les fichiers se créent dans le répertoire de travail où run vous dépose, sinon les tests ne les voient pas.
  • dsoxlab scores montre l'historique, y compris les tentatives ratées.

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Ce projet vous est utile ?

Je prends le temps de rédiger ces guides, de tester les commandes et de vérifier les labs pour que vous puissiez apprendre gratuitement. Si ce travail vous aide, offrez-moi un café. C'est une façon simple de contribuer à la suite du projet.

Offrir un café (nouvel onglet) Soutenir chaque mois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn