コントリビューション¶
ソースコード、API名、docstring、issue、pull request、および原文ドキュメントは英語を正本とします。ユーザー向けドキュメントと診断メッセージは、英語と日本語で提供します。
開発環境のセットアップ¶
コントリビューター向けコマンドには、uv 0.12.1とstable版Rustツールチェーンが必要です。
git clone https://github.com/Nue-Japan/cognoxium.git
cd cognoxium
uv sync --extra dev
uv run maturin develop
リポジトリにはCargo.lockとuv.lockの両方をコミットします。どちらのロックファイルも意図を持って更新し、差分を確認したうえで、pull requestを作成する前にuv lock --checkとCargoの--lockedチェックを実行してください。
チェックの実行¶
uv run pytest
uv run ruff check python tests scripts
uv run mypy
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace --locked
uv run sphinx-build -W -b doctest docs docs/_build/doctest
uv run sphinx-build -W -b html docs docs/_build/en/latest
uv run sphinx-build -W -b html -D language=ja docs docs/_build/ja/latest
公開動作には、テスト、英語のAPIドキュメント、日本語訳が必要です。ユーザー向けのコード例はすべて、決定論的かつ実行可能にしてください。新しい診断コードは一意でなければならず、別の意味に再利用してはいけません。
ドキュメントの変更¶
英語Markdownを変更した場合は、gettextテンプレートを再生成し、日本語POの該当項目を更新する必要があります。安定版リリースには、空欄またはfuzzyのユーザー向け日本語訳を含められません。
期待される出力を含む小さな例を推奨します。API識別子と構造化された値は英語のままにし、日本語の説明文は用語集に従って自然に翻訳してください。
pull requestのチェックリストは、リポジトリのCONTRIBUTING.mdを参照してください。コードを変更しないドキュメント改善も歓迎します。