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:
wlc, Python-Client-Bibliothek, siehe Weblate-Client
translation-finder, um übersetzbare Dateien im Repository zu finden
language-data, Sprachdefinitionen für Weblate, siehe Sprachdefinitionen
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 -e '.[test,lint]'
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.
The easiest approach to enforce all this is to install pre-commit. The
repository contains configuration for it to verify the committed files are sane.
After installing it (it is already included in the
pyproject.toml
) turn it on by running pre-commit install
in
Weblate checkout. This way all your changes will be automatically checked.
Sie können die Prüfung auch manuell auslösen, um alle Dateien zu prüfen:
pre-commit run --all
Siehe auch