Flaskに貢献する方法
Flaskへの貢献を検討していただきありがとうございます!
サポートの質問
これには課題追跡システムを使用しないでください。 独自のコードに関する質問については、次のリソースのいずれかを使用してください。
- Discordチャットの
#get-help
チャネル: https://discordapp.com/invite/t6rrQZH- FreeNodeのIRCチャネル
#pocoo
はDiscordにリンクされていますが、Discordが優先されます。
- FreeNodeのIRCチャネル
- 長期的な議論またはより大きな問題のためのメーリングリスト [email protected] 。
- Stack Overflow について質問してください。 最初に使用してGoogleで検索:
site:stackoverflow.com flask {search term, exception message, etc.}
問題の報告
- 何が起こると思ったか説明してください。
- 可能であれば、問題の特定に役立つ最小限の再現可能な例を含めてください。 これは、問題が自分のコードにあるのではないことを確認するのにも役立ちます。
- 実際に何が起こったのか説明してください。 例外があった場合は、完全なトレースバックを含めます。
- Python、Flask、Werkzeugのバージョンを一覧表示します。 可能であれば、この問題がリポジトリですでに修正されているかどうかを確認してください。
パッチの送信
- パッチがバグを解決することになっている場合はテストを含め、どのような状況でバグが発生するかを明確に説明します。 パッチなしでテストが失敗することを確認してください。
- PEP8 に従うようにしてください。ただし、従うとコードが醜くなる場合は、行の長さの制限を無視してかまいません。
初めてのセットアップ
最新バージョンのgit をダウンロードしてインストールします。
-
git config --global user.name 'your name' git config --global user.email 'your email'
GitHubアカウントを持っていることを確認してください。
フォークボタンをクリックして、GitHubアカウントにフラスコをフォークします。
GitHubフォークをローカルでクローンします。
git clone https://github.com/{username}/flask cd flask
後で更新するために、メインリポジトリをリモートとして追加します。
git remote add pallets https://github.com/pallets/flask git fetch pallets
virtualenvを作成します。
python3 -m venv env . env/bin/activate # or "env\Scripts\activate" on Windows
開発依存関係のある編集可能モードでFlaskをインストールします。
pip install -e ".[dev]"
コーディングを開始する
作業したい問題を特定するためのブランチを作成します。 バグまたはドキュメントの修正を送信する場合は、最新の「.x」ブランチから分岐してください。
git checkout -b your-branch-name origin/1.0.x
機能の追加または変更を送信する場合は、「マスター」ブランチから分岐します。
git checkout -b your-branch-name origin/master
お気に入りのエディターを使用して、コミットしながら変更を加えます。
PEP8 をフォローしてみてください。 コードがスタイルガイドに従っていることを確認するための事前コミット構成とテストがあります。
行ったコード変更をカバーするテストを含めます。 パッチなしでテストが失敗することを確認してください。 テストを実行します。。
コミットをGitHubにプッシュし、次を使用してプルリクエストを作成します。
git push --set-upstream origin your-branch-name
祝う🎉
テストの実行
次のコマンドで基本的なテストスイートを実行します。
pytest
これは、現在の環境のテストのみを実行します。 これが適切かどうかは、Flaskのどの部分で作業しているかによって異なります。 プルリクエストを送信すると、Travis-CIは完全なスイートを実行します。
完全なテストスイートは、Pythonと依存関係の複数の組み合わせをテストするため、実行に時間がかかります。 すべての環境を実行するには、Python 2.7、3.4、3.5 3.6、およびPyPy2.7をインストールする必要があります。 次に、以下を実行します。
tox
テストカバレッジの実行
テストカバレッジのない行のレポートを生成すると、どこから貢献を開始するかを示すことができます。 coverage
を使用してpytest
を実行し、端末上でインタラクティブなHTMLドキュメントとしてレポートを生成します。
coverage run -m pytest
coverage report
coverage html
# then open htmlcov/index.html
カバレッジの詳細をご覧ください。
tox
を使用して完全なテストスイートを実行すると、すべての実行からのカバレッジレポートが結合されます。
ドキュメントの作成
Sphinxを使用して、docs
ディレクトリにドキュメントを作成します。
cd docs
make html
ブラウザで_build/html/index.html
を開いて、ドキュメントを表示します。
Sphinx の詳細をご覧ください。
注意:ゼロパディングファイルモード
このリポジトリには、このリポジトリをGitHub以外のgitホストにプッシュするときに問題を引き起こす可能性のあるいくつかのゼロパディングファイルモードが含まれています。 これを修正するとコミット履歴が破壊されるため、これらの警告を無視することをお勧めします。 プッシュに失敗し、GitLabなどのセルフホストのgitサービスを使用している場合は、管理パネルでリポジトリチェックをオフにできます。
これらのファイルは、クローン作成中に問題を引き起こす可能性もあります。 あなたが持っている場合
[fetch]
fsckobjects = true
また
[receive]
fsckObjects = true
git構成ファイルに設定すると、このリポジトリのクローン作成は失敗します。 唯一の解決策は、クローン作成中に上記の両方の設定をfalseに設定し、クローン作成の終了後にそれらをtrueに戻すことです。