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

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

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

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

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

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

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

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

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

pip install -r requirements-test.txt

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

py.test

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

Код должен соответствовать правилам кодирования PEP-8 и быть отформатирован с помощью форматера кода ruff.

Для проверки качества кода можно использовать :программу:`ruff`, ее конфигурация хранится в :файле:`pyproject.toml`.

Самый простой способ реализовать все это — установить pre-commit. Репозиторий содержит конфигурацию для проверки работоспособности зафиксированных файлов. После установки (он уже включен в файл «requirements-lint.txt») включите его, запустив «pre-commit install» при оформлении заказа в Weblate. Таким образом, все ваши изменения будут автоматически проверены.

Также вы можете запустить эту проверку вручную, чтобы проверить все файлы, запустите:

pre-commit run --all