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 black formatiert werden.

Um die Codequalität zu überprüfen, können Sie flake8 verwenden, die empfohlenen Plugins sind in .pre-commit-config.yaml aufgelistet und die Konfiguration ist in setup.cfg abgelegt.

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