Sorry for non-Japanese readers, but currently the English version of the contribution guide is unavailable although your contribution is welcome. In the meanwhile, please try machine translation or ask @kyuridenamida directly on Twitter for the contribution guideline.
AtCoderToolsへのコントリビューションに興味を持って頂きありがとうございます。このガイドの目的は2つです。
- コードの品質を保ち、メンテナンスコストを下げ、少ない労力で継続的な開発を行っていくためのお願いをお伝えすること
- 開発者が機能追加・修正に対して何をしたら良いかを明らかにすること。
不明瞭な部分があったらissueを立てて報告してください。あなたのフィードバックはいつでも歓迎です。
ユーザーの環境にpython 3.6以降がインストールされていることを想定しています。 それらは各自で各々インストールしてください。
依存ライブラリのインストールはpoetryを通じて行います。 poetryのインストールはhttps://python-poetry.org/docs/ を参照してください。
プロジェクトのルートディレクトリで以下のコマンドを実行することで環境がインストールできます。
poetry install
少し注文が多いですが、メンテナ一人で継続的にメンテナンスしていくためには開発者の皆様に以下のことをお願いすることが必要不可欠です。 どうかご理解いただけると幸いです。
https://github.com/kyuridenamida/atcoder-tools を開き、右上のForkボタンでatcoder-toolsをforkしてください。 新機能はstableブランチの続きとして開発してください。(masterは使わないでください。)
気をつけてほしいことは現状2つです。
- 変更範囲を不必要に大きくしない。 2つの独立した変更を一緒くたに行うことは避ける。
- コマンドの下位互換性を大切にする。難しい場合はIssue等で相談してください。
- 過去のconfigが動くこと
- 過去のコマンドが動くこと
複雑な機能については実装前にissue等でデザインを相談していただくと手戻りコストが少ないかもしれません。
特に理由が無い場合Lineカバレッジ 100% を要求します。 またバグの修正の場合も、バグが修正されたことを確認するテストを書いてください。
新しいコマンドラインパラメータやConfigの場合、README.mdにドキュメントを書いてください。
自動整形や不要なインポートを静的チェックします。
TODO: ここ
このプロジェクトにおいてのコミットメッセージの規約は以下の通りです。
- 英語で書く
変更をCommitしてPushします。できるだけ英語だと嬉しいです。 実装とテストのコミットが複数あっても構いませんし細かいことは気にしません。
変更内容の概要を書いてください。英語で書いてくれると嬉しいですが、日本語とその機械翻訳の結果とかでもいいです。 概要はテンプレートに従うと楽ですが、必要に応じて独自の書き方でも構いません。 少なくとも
- なぜこの変更が必要か? (簡潔なもので良い)
- 何をしたか? (コードを読む際に手助けになる程度で良い)
- どういう挙動が期待されるか? (メンテナが手元で動作チェックする時に必要)
を書いてくださると嬉しいです。
@kyuridenamidaが頑張ってレビューをします。
申し訳ないですが、機能によっては必ずマージされるわけではないです。 少しでもatcoder-toolsの責務じゃないと思ったら事前に相談してくれると嬉しいです。
不定期です。
おめでとうございます。あなたの機能はリリースされました。