Contribuindo para módulos do Weblate#

Além do repositório principal, o Weblate consiste em vários módulos Python. Todos estes seguem a mesma estrutura e esta documentação abrange todos eles.

Por exemplo, isso cobre:

Diretrizes de codificação#

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

Qualquer código deve vir com documentação explicando o comportamento. Não se esqueça de documentar métodos, blocos de código complexos ou recursos visíveis ao utilizador.

Qualquer novo código deve utilizar dicas de tipo PEP 484. Ainda não estamos verificando isso em nosso CI, pois o código existente ainda não os inclui.

Executando testes#

Os testes são executados usando py.test. Primeiro precisa instalar os requisitos de teste:

pip install -r requirements-test.txt

Pode então executar o testsuite no checkout do repositório:

py.test

Veja também

A integração do CI é muito semelhante a Conjunto de testes e integração contínua do Weblate.

Padrão de codificação e linting do código#

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.

A abordagem mais fácil para impor tudo isso é instalar pre-commit. O repositório contém a configuração para verificar se os ficheiros do commit estão sãos. Depois de instalá-lo (ele já está incluído no requirements-lint.txt), ative-o executando pré-commit install na sua cópia do Weblate. Desta forma, todas as suas alterações serão verificadas automaticamente.

Também pode acionar a verificação manualmente, para verificar todos os ficheiros execute:

pre-commit run --all