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ă:

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ă.

Rularea testelor

Testele sunt executate folosind py.test. Mai întâi trebuie să instalați cerințele de testare:

pip install -r requirements-test.txt

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

Codul trebuie să respecte liniile directoare de codare PEP-8 și trebuie formatat folosind formatul de cod black.

Pentru a verifica calitatea codului, puteți utiliza flake8, plugin-urile recomandate sunt listate în .pre-commit-config.yaml, iar configurația sa este plasată în setup.cfg.

Cea mai simplă abordare pentru a pune în aplicare toate acestea este să instalați pre-commit. Depozitul conține o configurație pentru ca acesta să verifice dacă fișierele confirmate sunt sănătoase. După ce l-ați instalat (este deja inclus în requirements-lint.txt) activați-l prin rularea pre-commit install în Weblate checkout. În acest fel, toate modificările dumneavoastră vor fi verificate automat.

De asemenea, puteți declanșa verificarea manual, pentru a verifica toate fișierele rulate:

pre-commit run --all