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

Coding standard and linting the code

The code should follow PEP-8 coding guidelines and should be formatted using black code formatter.

To check the code quality, you can use flake8, the recommended plugins are listed in .pre-commit-config.yaml and its configuration is placed in setup.cfg.

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 requirements-lint.txt) turn it on by running pre-commit install in Weblate checkout. This way all your changes will be automatically checked.

You can also trigger check manually, to check all files run:

pre-commit run --all

Siehe auch

Weblate-Quellcode