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

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

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

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

Любой код для 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

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

Код должен соответствовать рекомендациям по кодированию 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