Внесение вклада в модули Weblate
Помимо основного репозитория, Weblate состоит из нескольких модулей Python. Все они имеют одинаковую структуру, и эта документация охватывает их все.
Например, это касается:
wlc, клиентская библиотека Python, см. Клиент Weblate
translation-finder, используется для поиска переводимых файлов в репозитории
language-data, определения языков для Weblate, см. Определение языков
Coding guidelines
Любой код для Weblate’а должен писаться с оглядкой на Принципы «безопасности по проектированию» (Security by Design).
Весь код должен сопровождаться документацией, поясняющей его работу. Не забывайте документировать методы, сложные блоки кода и функционал, доступный пользователям.
Any new code should utilize PEP 484 type hints. We’re not checking this in our CI yet as existing code does not yet include them.
Запуск тестирования
Тесты выполняются с помощью py.test. Сначала нужно установить тестовые требования:
pip install -r requirements-test.txt
You can then execute the testsuite in the repository checkout:
py.test
См.также
Интеграция CI очень схожа с Система автоматического тестирования и непрерывной интеграции Weblate.
Coding standard and linting the code
Код должен соответствовать рекомендациям по кодированию PEP-8 и должен быть отформатирован с использованием инструмента форматирования кода black.
Для проверки качества кода можно использовать flake8, рекомендуемые плагины перечислены в :file:``.pre-commit-config.yaml`, а их настройки находятся в 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.
Также вы можете запустить эту проверку вручную, чтобы проверить все файлы, запустите:
pre-commit run --all
См.также