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 -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

Weblate-Quellcode