Weblate モジュールへの貢献
メインのリポジトリに加えて、Weblate は複数の Python モジュールで構成されています。これらはすべて同じ構造をしており、このドキュメントの内容は全てに当てはまります。
例えば、次のものが対象です。
wlc 、Python クライアント ライブラリ、参照: Weblate クライアント
translation-finder 、リポジトリ内の翻訳可能なファイルを検出するために使用
language-data 、Weblate の言語定義。参照: 言語の定義
コーディングのガイドライン
Weblate のコードはすべて、 セキュリティ設計原則 を念頭に記述してください。
すべてのコードには、動作を説明するドキュメントが付属しています。メソッド、複雑なコードブロック、またはユーザーに表示される機能は文書化することを忘れないでください。
新しいコードでは、PEP 484 型のヒントを使用してください。既存のコードにはまだ含まれていないため、CI ではまだ調査できていません。
テストの実行
テストは、py.test を使用して実行します。まず、テストに必要なパッケージをインストール:
pip install -r requirements-test.txt
そのあと、チェックアウトしたリポジトリでテストスイートを実行:
py.test
参考
CI 統合は、Weblate テストスイートと継続的な統合 と非常によく似ています。
コーディング規約と低品質コードの検出
コードは PEP-8 コーディング規約に従い、black コード整形ツールを使用して書式設定してください。
コードの品質を検査するには flake 8 を使用します。推奨プラグインの一覧は .pre-commit-config.yaml
にあり、設定は :file:`setup.cfg`にあります。
これを実行する最も簡単な方法は、pre-commit をインストールすることです。リポジトリには、コミットされたファイルが正常であることを確認するための設定が含まれています。インストール後(すでに requirements-lint.txt
に含まれています)、Weblate のチェックアウトで pre-commit install
を実行して有効にします。これにより、すべての変更が自動的に検査されます。
手動で検査を実行し、すべてのファイルを検査する方法:
pre-commit run --all