Közreműködés a Weblate moduljaiban

A fő tárolón kívül a Weblate több Python-modulból is áll. Ezek mind ugyanazt a struktúrát követik, és ez a dokumentáció mindegyiket lefedi.

Például ide tartozik:

Jó javítás (patch) írása

Változások elkülönítése

Kellemetlen, ha valaki egy hatalmas javítást küld be, ami állítólag 11 különféle problémát orvosol, miközben a megbeszélések és vélemények szerint ezek közül 10-el nem értenek egyet vagy 9-et már másként megoldottak. Ilyenkor a beolvasztást végző személynek ki kell válogatnia az érdemi módosítást a sok forrás közül, ami jelentős többletmunkát jelent.

Lehetőleg minden egyes javítás, amely egy problémát kezel, külön véglegesítésként (commitként) kerüljön beküldésre, saját leírással, amely pontosan meghatározza, mit módosít. Így a karbantartó vagy más érdekelt fél szelektíven alkalmazhatja a változtatásokat.

A különálló változtatások emellett nagyban segítik a hibakeresést és a visszakövetést (bisecting) is a jövőbeli problémák és regressziók feltárásában.

Dokumentáció

A dokumentáció írása fárasztó lehet, de valakinek el kell végeznie. Sokkal könnyebb a helyzet, ha a dokumentációt a kódmódosításokkal együtt küldi be. Ne feledje dokumentálni a metódusokat, az összetett kódrészeket és a felhasználók számára látható funkciókat.

Tesztelési esetek

A tesztek lehetővé teszik, hogy gyorsan ellenőrizzük a funkciók működését. Ezt az állapotot megőrizni és tovább javítani csak úgy lehet, ha minden újonnan hozzáadott funkció tesztelve van. Minden új funkcióhoz legalább egy érvényes teszteset szükséges, amely igazolja, hogy az a dokumentációnak megfelelően működik.

Véglegesítési üzenetek

A Git véglegesítéseknek a Conventional Commits szabványt kell követniük.

Kódolási szabvány és kódellenőrzés (lint)

A kódnak meg kell felelnie a PEP 8 kódolási irányelveknek, és a ruff formázóval kell formázni.

Az új kódokban használni kell a PEP 484 szerinti típusjelöléseket. Ezeket még nem ellenőrizzük a CI rendszerben, mivel a meglévő kódok még nem tartalmazzák ezeket.

A kódminőség ellenőrzésére használható a ruff, amelynek beállításai a pyproject.toml fájlban találhatók.

A legegyszerűbb módja annak, hogy mindezt automatikusan betartsa, a pre-commit telepítése. A tároló tartalmaz hozzá konfigurációt, amely ellenőrzi, hogy a véglegesített fájlok rendben vannak-e. Telepítés után (már szerepel a pyproject.toml fájlban) futtassa a pre-commit install parancsot a Weblate klónozott könyvtárában. Így minden változás automatikusan ellenőrzésre kerül.

Az ellenőrzés manuálisan is elindítható, az összes fájl ellenőrzéséhez futtassa:

pre-commit run --all

Biztonságos kódolás

A Weblate-hez írt bármely kódnak a Security by Design Principles elveit kell követnie.

Mesterséges intelligencia (AI) irányelvek

Ha tartalmat küld be a projekt számára, ezzel engedélyt ad annak változatlan felhasználására, és garantálnia kell, hogy jogosult annak terjesztésére. A módosítás beküldésével elfogadja, hogy az bekerülhet a projektbe, és a projekt licencfeltételei szerint továbbterjeszthető. A beküldőnek tudatában kell lennie, hogy az ő felelőssége, hogy ne küldjön be engedély nélküli kódot.

Ez független attól, hogy AI-t használtak-e vagy sem.

Módosítási kérelem beküldésekor természetesen ügyelni kell arra, hogy a javaslat jó minőségű legyen, a lehető legjobb szándékot tükrözze, és megfeleljen az irányelveinknek. Alapszabály: ha bárki felismeri, hogy AI segítségével készült, akkor még érdemes dolgozni rajta.

Elfogadunk AI által generált kódot a projektben, de annak meg kell felelnie a kódolási szabványoknak, legyen áttekinthető, dokumentált, tartalmazzon teszteseteket, és minden egyéb követelménynek is eleget kell tennie.

Lásd még

A CI-integráció nagyban hasonlít a Weblate tesztcsomag és folyamatos integráció dokumentumban leírtakhoz.

Lásd még

Weblate forráskód