Bijdragen aan modules voor Weblate

Naast de hoofdopslagruimte bestaat Weblate uit verscheidene modules van Python. Deze volgen allemaal dezelfde structuur en deze documentatie behandelt ze allemaal.

Dit behandelt bijvoorbeeld:

Richtlijnen voor coderen

Alle code voor Weblate zou moeten zijn geschreven met Security by Design Principles in gedachte.

Alle code zou vergezeld moeten gaan van documentatie die het gedrag uitlegt. Vergeet niet methoden, complexe codeblokken, of zichtbare mogelijkheden voor gebruikers te documenteren.

Alle nieuwe code zou hints van het type PEP 484 moeten gebruiken. We controleren dit nog niet in onze CI, omdat de bestaande code ze nog niet bevat.

Commits voor Git zouden de specificatie Conventionele commits moeten volgen.

Testen uitvoeren

De testen worden uitgevoerd met py.test. Eerst moet u vereisten voor de testen installeren:

uv pip install -e '.[dev]'

U kunt dan de testsuite uitvoeren in de checkout van de opslagruimte:

py.test

Zie ook

De integratie van de CI lijkt heel erg veel op Weblate testsuite en doorlopende integratie.

Standaard voor coderen en linten van de code

De code zou de richtlijnen voor coderen PEP-8 moeten volgen en zou moeten zijn opgemaakt met de codeopmaker ruff.

Voor het controleren van de kwaliteit van de code kunt u ruff gebruiken, de configuratie ervan is opgeslagen in pyproject.toml.

De gemakkelijkste benadering om dit alles af te dwingen is om pre-commit te installeren. De opslagruimte bevat de configuratie ervoor om te verifiëren of de ingediende bestanden gezond zijn. Na het installeren ervan (het is al opgenomen in de pyproject.toml), schakel het in door pre-commit install uit te voeren in de checkout van Weblate. Op deze manier zullen al uw wijzigingen automatisch worden gecontroleerd.

U kunt de controle ook handmatig activeren, uitvoeren van controle op alle bestanden:

pre-commit run --all