jrnlへの貢献
jrnlへの貢献を歓迎します。バグの報告、ドキュメントの改善、リリースのテスト、機能やバグに関する議論への参加、コードの作成など、さまざまな形での貢献が可能です。
目次
行動規範
まず始めに、行動規範をお読みください。
バグの報告
バグは新しい問題を開くことで報告してください。できるだけ詳細に説明してください。多くのバグは特定のオペレーティングシステムやPythonのバージョンに固有のものなので、その情報も含めてください!
ドキュメントの編集
ドキュメントにタイプミスや間違いを見つけた場合は、すぐに修正してプルリクエストを送ってください。何を変更すべきか不確かだが問題を見つけた場合は、「ドキュメントの変更」タイプで新しい問題を開くことができます。
ドキュメントを編集するには、developブランチのdocs/*.md
ファイルを編集します。プロジェクトのルートディレクトリでpoe docs-run
を実行し、ブラウザでlocalhost:8000にアクセスすることで結果を確認できます。
外部エディタとヒントとコツ
便利だと思うjrnlのコマンドラインテクニックを共有したい場合は、"ヒントとコツ"セクションに追加するとよいでしょう。特定の外部エディタとの統合に関するアドバイスは、"外部エディタ"セクションに追加できます。
テスト
jrnlの保守作業の多くは、コーディングよりもテストに関わるものです。
jrnlの性質上、非常に機密性の高いデータを扱うため、データ損失のリスクを冒すことはできません。jrnlには包括的な自動テストスイートがありますが、ユーザーテストはこのリスクを軽減する上で極めて重要です。
プレリリース
プレリリースは通常のリリースと同様にPyPiを通じてデプロイされます。pipxを使用してそれらを取得し、テストすることができます。各リリースで変更された内容についてはチェンジログを参照してください。
プルリクエスト
gitに慣れている場合は、特定のプルリクエストをフェッチし、自分でテストして、結果を報告してください。新機能の動作をスクリーンキャストで示すとなおよいでしょう。
バグ報告の確認
GitHubの問題には常にオープンなバグがあり、多くは特定のOS、Pythonバージョン、またはjrnlバージョンに固有のものです。「jrnl v2.2、MacOS 10.15、Python 3.8.1で確認」といった簡単なコメントでも、バグの追跡に非常に役立ちます。
自動テスト
新しい自動テストの追加方法については、以下の開発セクションを参照してください。
機能リクエストとアイデアの提出
jrnlに対する機能リクエストやアイデアがある場合は、新しい問題を開いて機能の目的と関連するユースケースを説明してください。私たちはあなたと議論し、それがプロジェクトに適しているかどうかを決定します。
新機能について議論する際は、私たちの設計目標を念頭に置いてください。jrnlは一つのことをうまく行うことを目指しています。私たちにとって、それは以下を意味します:
- 機敏であること
- シンプルなインターフェースを持つこと
- 機能の重複を避けること
開発
環境のセットアップ
jrnlを開発するにはpoetryをインストールする必要があります。poetryがプロジェクトの他のすべての依存関係を管理します。
ブランチの理解
jrnlは主に2つのブランチを使用します:
develop
- 継続的な開発用release
- リリース用
一般的に、プルリクエストはdevelop
ブランチに対して行われるべきです。
一般的な開発コマンド
pyproject.toml
にコマンドの一覧があります。ユーザーはpoe
の後にコマンド名を入力することでコマンドを実行できます(Poe the Poetは単独で、またはpoetry install
の一部としてインストールできます)。
典型的な開発ワークフローには以下が含まれます:
- 依存関係のインストール:
poetry install
- 仮想環境の有効化:
poetry shell
- 仮想環境でソースを実行:
jrnl
(必要に応じて引数を付けて)- テストの実行:
poe test
- コードのフォーマットをスタイルに標準化:
poe format
自動テストの更新
バグの解決や新機能の追加時には、将来その機能が壊れるのを防ぐためにテストを追加してください。テストでカバーされていない機能に気づいた場合は、テストのみのプルリクエストを提出することもできます。
テストには、ユニットテスト用にpytestを、統合テスト用にpytest-bddを使用しています。すべてのテストはtests
フォルダーにあります。
多くのテストは、他のテストと同じフォーマットの*.feature
ファイルを編集するだけで作成できます。より複雑な機能については、tests/lib/
にステップを実装し、それをfeature
ファイルのテストで実行する必要があるかもしれません。
プルリクエストの提出
準備ができたら、プルリクエスト(PR)を提出してください。jrnlのメンテナーは通常2週間ごとにプルリクエストをレビューしますが、継続的統合パイプラインは数分以内にあなたのコードに対して自動テストを実行し、さまざまな環境で見つかった問題を報告します。
プルリクエストのテンプレートにはハウスキーピング項目のチェックリストが含まれています。提出時に必要に応じてそれらを記入してください。
プルリクエストにテスト失敗が含まれている場合、おそらくレビューされず、確実に承認されません。ただし、テスト失敗の解決に助けが必要な場合は、PRでその旨を言及してください。
作業対象を見つける
jrnlのGitHub Issuesをラベルで検索して、作業対象を見つけることができます。以下は検索する価値のあるラベルです:
マイルストーンをレビューして、プロジェクトの優先事項を把握することもできます。
新しいプログラマーとPythonを初めて使うプログラマーへの注意
jrnlは発足以来かなり成長しましたが、全体的な複雑さ(エンドユーザープログラムとしては)は比較的低く、コードを理解しやすいと思います。
質問がある場合は、遠慮なく聞いてください!Pythonは初心者プログラマーを歓迎し、オープンなコミュニティとして知られています。コードをフォークして自由に試してみてください!私たちと共有したいものを作成した場合は、プルリクエストを作成してください。プルリクエストが完璧で、慣用的で、すぐにマージできるコードであることは期待していません。一緒に取り組んでいきましょう!