Внесение вклада в модули Weblate¶
Помимо основного репозитория, Weblate состоит из нескольких модулей Python. Все они имеют одинаковую структуру, и эта документация охватывает их все.
Например, это касается:
wlc, клиентская библиотека Python, см. Клиент Weblate
translation-finder, используется для поиска переводимых файлов в репозитории
language-data, определения языков для Weblate, см. Определение языков
Рекомендации по написанию кода¶
Любой код для Weblate’а должен писаться с оглядкой на Принципы «безопасности по проектированию» (Security by Design).
Весь код должен сопровождаться документацией, поясняющей его работу. Не забывайте документировать методы, сложные блоки кода и функционал, доступный пользователям.
Любой новый код должен использовать подсказки типа PEP 484. Мы пока не проверяем это в нашем CI, поскольку существующий код их ещё не включает.
Запуск тестирования¶
Тесты выполняются с помощью py.test. Сначала нужно установить тестовые требования:
pip install -e '.[test,lint]'
Затем вы можете выполнить набор тестов при проверке репозитория:
py.test
См.также
Интеграция CI очень схожа с Система автоматического тестирования и непрерывной интеграции Weblate.
Стандарт и стиль программирования¶
Код должен соответствовать правилам кодирования PEP-8 и быть отформатирован с помощью форматера кода ruff.
Для проверки качества кода можно использовать ruff, её конфигурация хранится в pyproject.toml
.
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.
Также вы можете запустить эту проверку вручную, чтобы проверить все файлы, запустите:
pre-commit run --all
См.также