Weblate forráskód

A Weblate fejlesztése a GitHub felületen zajlik. Szívesen látjuk, ha elágaztatja (forkolja) a kódot, és beküld egy módosítási kérelmet (pull request). Más formában benyújtott javításokat is örömmel fogadunk.

Lásd még

Check out A Weblate belső működése to see how Weblate looks from inside.

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.

Type checking

Any new code should utilize PEP 484 type hints. We are using mypy to check (because it has a Django plugin that makes type checking of Django apps doable).

The code base is not yet completely covered by type annotations, but some modules are already enforced for type checking in the CI.

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.

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.