Внесение вклада в модули Weblate#

Помимо основного репозитория, Weblate состоит из нескольких модулей Python. Все они имеют одинаковую структуру, и эта документация охватывает их все.

Например, это касается:

Рекомендации по написанию кода#

Любой код для Weblate’а должен писаться с оглядкой на Принципы «безопасности по проектированию» (Security by Design).

Весь код должен сопровождаться документацией, поясняющей его работу. Не забывайте документировать методы, сложные блоки кода и функционал, доступный пользователям.

Любой новый код должен использовать подсказки типа PEP 484. Мы пока не проверяем это в нашем CI, поскольку существующий код их еще не включает.

Запуск тестирования#

Тесты выполняются с помощью py.test. Сначала нужно установить тестовые требования:

pip install -r requirements-test.txt

Затем вы можете выполнить набор тестов при проверке репозитория:

py.test

Стандарт и стиль программирования#

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