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

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