Az Exercism minden elemének kanonikus specifikációi
A configlet egy eszköz, amely segít a kurzuskarbantartóknak a kurzusuk karbantartásában.
A configlet elsődleges funkciója a lintelés: annak ellenőrzése, hogy egy kurzus (konfigurációs) fájljai megfelelően strukturáltak-e, szintaktikailag és szemantikailag egyaránt. A hibásan beállított kurzusok nem feltétlenül szinkronizálódnak megfelelően, hibásan jelenhetnek meg a weboldalon, vagy szuboptimális felhasználói élményt nyújthatnak, ezért a configlet védelmei fontos szerepet játszanak az Exercism integritásának megőrzésében. A linter által ellenőrzött szabályok teljes listája itt található.
A configlet másodlagos funkciója a dokumentumok generálása. Kétféle dokumentumot tud generálni a configlet:
introduction.md fájlját.instructions.md fájlját.Hogy ezek a dokumentumok hogyan generálódnak, itt található.
A configlet harmadlagos funkciója, hogy különféle adatokat biztosítson a gyakorlófeladatokhoz.
Egy gyakorlófeladat az Exercism egyik kurzusán gyakran egy specifikáció alapján valósul meg a exercism/problem-specifications repóban.
Az Exercism szándékosan megköveteli, hogy minden feladatnak saját másolata legyen bizonyos fájlokból (például a .docs/instructions.md), még akkor is, ha az a feladat létezik a problem-specifications-ben.
Ezért a configlet rendelkezik egy sync paranccsal, amely ellenőrizni tudja, hogy egy kurzus ilyen gyakorlófeladatai szinkronban vannak-e a felsőbb forrással, és frissítheti őket, amikor frissítések érhetők el.
Háromféle adat frissíthető a problem-specifications-ből: dokumentáció, metaadatok és tesztek.
Egyfajta adat tölthető fel a kurzus szintű config.json fájlból is: a feladatok konfigurációs fájljaiban szereplő fájlútvonalak.
Ne feledd, hogy a configlet 4.0.0-alpha.34 és korábbi kiadásaiban a sync parancs csak a tesztekkel működött.
Ahhoz, hogy nyomon kövesd, egy adott gyakorlófeladat mely tesztjei vannak megvalósítva, a feladatnak tartalmaznia kell egy .meta/tests.toml fájlt.
Az ebben a fájlban szereplő teszteket a UUID-jük azonosítja, és minden teszthez tartozik egy Boolean-érték, amely jelzi, hogy megvalósította-e az a feladat.
A feladat különböző részeinek szinkronizálásáról itt találod a részleteket.
A configlet segítségével gyorsan előkészíthetsz fájlokat egy új megközelítéshez, cikkhez vagy feladathoz.
Arról, hogy hogyan hozd létre ezeket a fájlokat, itt tudhatsz meg többet.
A feladatokat, kurzusokat és fogalmakat egy UUID azonosítja.
Hogyan generálhatsz UUID-kat, itt találod.
A configlet rendelkezik egy fmt paranccsal, amely segít a kurzus repójában lévő JSON-fájlok egységes formázásában.
A fmt parancs a következő fájlokat formázza:
config.jsonexercises/{concept,practice}/*/.approaches/config.jsonexercises/{concept,practice}/*/.articles/config.jsonexercises/{concept,practice}/*/.meta/config.jsonA format parancsról itt tudhatsz meg többet.
A configlet önálló bináris fájlként érhető el. Minden kurzushoz tartoznia kell egy bin/fetch-configlet szkriptnek, és lehet hozzá egy bin/fetch-configlet.ps1 szkript is. Az első egy bash szkript, a második egy PowerShell szkript.
Ezen szkriptek egyikének futtatásával a configlet legújabb verziója töltődik le a bin könyvtárba. Ezután a configletet a bin/configlet, illetve bin/configlet.exe futtatásával használhatod.
Minden kurzusnak integrálnia kell a configlet lintelési funkcióját a CI-beállításába. Ennek legegyszerűbb módja a configlet CI GitHub action használata.