Внесение вклада в модули Weblate#
Помимо основного репозитория, Weblate состоит из нескольких модулей Python. Все они имеют одинаковую структуру, и эта документация охватывает их все.
Например, это касается:
wlc, клиентская библиотека Python, см. Клиент Weblate
translation-finder, используется для поиска переводимых файлов в репозитории
language-data, определения языков для Weblate, см. Определение языков
Рекомендации по написанию кода#
Любой код для Weblate’а должен писаться с оглядкой на Принципы «безопасности по проектированию» (Security by Design).
Весь код должен сопровождаться документацией, поясняющей его работу. Не забывайте документировать методы, сложные блоки кода и функционал, доступный пользователям.
Любой новый код должен использовать подсказки типа PEP 484. Мы пока не проверяем это в нашем CI, поскольку существующий код их еще не включает.
Запуск тестирования#
Тесты выполняются с помощью py.test. Сначала нужно установить тестовые требования:
pip install -r requirements-test.txt
Затем вы можете выполнить набор тестов при проверке репозитория:
py.test
См.также
Интеграция CI очень схожа с Система автоматического тестирования и непрерывной интеграции Weblate.
Стандарт и стиль программирования#
The code should follow PEP-8 coding guidelines and should be formatted using ruff code formatter.
To check the code quality, you can use ruff, its configuration is
stored in pyproject.toml.
Самый простой способ реализовать все это — установить pre-commit. Репозиторий содержит конфигурацию для проверки работоспособности зафиксированных файлов. После установки (он уже включен в файл «requirements-lint.txt») включите его, запустив «pre-commit install» при оформлении заказа в Weblate. Таким образом, все ваши изменения будут автоматически проверены.
Также вы можете запустить эту проверку вручную, чтобы проверить все файлы, запустите:
pre-commit run --all
См.также