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は初心者プログラマーを歓迎し、オープンなコミュニティとして知られています。コードをフォークして自由に試してみてください!私たちと共有したいものを作成した場合は、プルリクエストを作成してください。プルリクエストが完璧で、慣用的で、すぐにマージできるコードであることは期待していません。一緒に取り組んでいきましょう!