Mitarbeit an Weblate-Modulen#

Neben dem Haupt-Repository besteht Weblate aus mehreren Python-Modulen. Diese folgen alle der gleichen Struktur und diese Dokumentation deckt sie alle ab.

Dies gilt zum Beispiel für:

Programmierrichtlinien#

Jeder Code für Weblate sollte unter Berücksichtigung von Security by Design Principles geschrieben werden.

Jeder Code sollte mit einer Dokumentation versehen sein, die das Verhalten erklärt. Vergessen Sie nicht, Methoden, komplexe Codeblöcke oder für den Benutzer sichtbare Funktionen zu dokumentieren.

Jeder neue Code sollte PEP 484 Type Hints verwenden. Wir überprüfen dies noch nicht in unserem CI, da der vorhandene Code sie noch nicht enthält.

Ausführen von Tests#

Die Tests werden mit py.test ausgeführt. Zuerst müssen Sie die Testanforderungen installieren:

pip install -r requirements-test.txt

Sie können dann die Testsuite im Repository-Checkout ausführen:

py.test

Siehe auch

Die CI-Integration ist sehr ähnlich zu Weblate-Testsuite und kontinuierliche Integration.

Kodierungsstandard und Codeanalyse#

Der Code sollte den PEP-8-Programmierrichtlinien entsprechen und mit dem Code-Formatierer ruff formatiert werden.

Um die Codequalität zu überprüfen, kann ruff verwendet werden, dessen Konfiguration in pyproject.toml gespeichert ist.

Der einfachste Ansatz, all dies zu erzwingen, ist die Installation von pre-commit. Das Repository enthält eine entsprechende Konfiguration, um zu überprüfen, ob die committeten Dateien in Ordnung sind. Nachdem es installiert wurde (es ist bereits in der requirements-lint.txt enthalten), aktivieren Sie es, indem Sie pre-commit install im Weblate-Checkout ausführen. Auf diese Weise werden alle Ihre Änderungen automatisch überprüft.

Sie können die Prüfung auch manuell auslösen, um alle Dateien zu prüfen:

pre-commit run --all

Siehe auch

Weblate-Quellcode