Contribuire la modulele Weblate¶
În afară de depozitul principal, Weblate este format din mai multe module Python. Toate acestea urmează aceeași structură și această documentație le acoperă pe toate.
De exemplu, aceasta acoperă:
wlc, bibliotecă client Python, vezi Client Weblate
translation-finder, folosit pentru a descoperi fișierele traductibile din depozit
language-data, definițiile limbilor pentru Weblate, vezi Definiții lingvistice
Instrucțiuni de codificare¶
Orice cod pentru Weblate ar trebui să fie scris cu Security by Design Principles în minte.
Orice cod ar trebui să fie însoțit de o documentație care să explice comportamentul. Nu uitați de documentarea metodelor, a blocurilor de cod complexe sau a funcțiilor vizibile pentru utilizator.
Orice cod nou ar trebui să utilizeze indicii de tip PEP 484. Nu verificăm încă acest lucru în CI, deoarece codul existent nu le include încă.
Git commits should follow Conventional Commits specification.
Rularea testelor¶
Testele sunt executate folosind py.test. Mai întâi trebuie să instalați cerințele de testare:
pip install -e '.[test,lint]'
Apoi puteți executa suita de teste în cadrul verificării depozitului:
py.test
Vezi și
Integrarea CI este foarte asemănătoare cu Weblate testsuite și integrare continuă.
Standardul de codare și linting-ul codului¶
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
.
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
pyproject.toml
) turn it on by running pre-commit install
in
Weblate checkout. This way all your changes will be automatically checked.
De asemenea, puteți declanșa verificarea manual, pentru a verifica toate fișierele rulate:
pre-commit run --all
Vezi și