Contributing to Weblate modules

Besides the main repository, Weblate consists of several Python modules. All these follow same structure and this documentation covers them all.

For example, this covers:

Coding guidelines

Qualquer código para Weblate deve ser escrito com Princípios de Segurança por Design (inglês) em mente.

Any code should come with documentation explaining the behavior. Don’t forget documenting methods, complex code blocks, or user visible features.

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.

Running tests

The tests are executed using py.test. First you need to install test requirements:

pip install -r requirements-test.txt

You can then execute the testsuite in the repository checkout:

py.test

Ver também

The CI integration is very similar to Conjunto de testes e integração contínua do Weblate.

Coding standard and linting the code

O código deve seguir as diretrizes de codificação PEP-8 e deve ser formatado usando o formatador de código black.

Para verificar a qualidade do código, você pode usar flake8, os plugins recomendados estão listados em .pre-commit-config.yaml e sua configuração é colocada em 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.

Você também pode acionar a verificação manualmente, para verificar todos os arquivos executados:

pre-commit run --all