どのように貢献するか

ご投稿ようこそ!まだコードベースに慣れていませんか。問題ありません。オープンソースプロジェクトに貢献できる方法は多くある:エラーの報告,文書作成の支援,情報伝達,もちろん,新たな機能やパッチを追加することも可能である.

支持問題.

問題トラッカを用いてこの操作を行わないでください.以下のリソースのうちの1つを使用して、ご自身のコードに関する質問に答えます。

  • 聞いて Stack Overflow それがそうです。まずGoogleを使って検索する方法は site:stackoverflow.com eve {{search term, exception message, etc.}}

  • ♪the mailing list 支援またはフィードバックを求める開発者/貢献者およびAPI保守者になるための低流量リソースとなることが意図されている。

  • IRCチャンネル #python-eve FreeNodeにあります。

問題を報告する

  • あなたが予想していた状況を説明してください。

  • 可能であれば1つを含めて minimal, complete, and verifiable example 私たちが問題点を見つけるのを助けることができますこれはまた問題があなた自身のコードと関係がないかどうかを確認するのに役立つ。

  • 実際に起こった状況を説明します。異常があれば,完全なバックトラックが含まれる.

  • PythonとEveのバージョンを並べてください。可能であれば、リポジトリにこの問題が修復されたかどうかを確認してください。

パッチを提出する

  • あなたのパッチがエラーを解決できるかどうかのテストを含めて、どのような場合にエラーが発生するかを明確に説明します。パッチなしでテストに失敗することを確認する.

  • 有効にしてインストールする pre-commit スタイルガイドおよびコーデックに従うことを確実にする。CIはガイドラインに適合しない変更を拒否する.

初設定

  • ダウンロードしてインストールする latest version of git それがそうです。

  • あなたのを使って username そして email **

    git config --global user.name 'your name'
    git config --global user.email 'your email'
    
  • あなたが1つあることを確認して GitHub account それがそうです。

  • GitHubアカウントをクリックすると、イヴがGitHubアカウントに分岐されます Fork ボタンです。

  • Clone あなたのGitHubはローカルに分岐しています:

    git clone https://github.com/{username}/eve
    cd eve
    
  • プライマリ·リポジトリをリモート·リポジトリに追加して、後で更新します:

    git remote add pyeve https://github.com/pyeve/eve
    git fetch pyeve
    
  • 仮想envを作成します::

    python3 -m venv env
    . env/bin/activate
    # or "env\Scripts\activate" on Windows
    
  • 開発依存項を持つ編集可能モードでEveを実装する::

    pip install -e ".[dev]"
    
  • 取り付ける pre-commit フックを活性化させます事前提出は、多言語事前提出フックを管理し、維持するための枠組みである。EVEは、プリコミットを使用して、コードパターンとコードフォーマットが同じであることを保証する:

    $ pip install --user pre-commit
    $ pre-commit install
    

    その後、提出するたびにプレ提出が実行されます。

コードを開始する

  • あなたが解決したい問題(例えば、解決したい問題を決定するための分岐を作成します fix_for_#1280

  • お気に入りのエディタを使って変更します。 committing as you go それがそうです。

  • 注目する PEP8 それがそうです。

  • あなたがした任意のコード変更をカバーするテストが含まれています。パッチなしでテストに失敗することを確認する. Run the tests. それがそうです。

  • GitHubに対するあなたの約束を推進して create a pull request それがそうです。

  • お祝いをする.

運行テスト.

あなたのシステムには利用可能なPython 3.7+があるはずです。今テストを実行するのは、以下のコマンドを発行するように簡単です。

$ tox -e linting,py37,py38

このコマンドは、“tox”ツールでPython 3.7および3.8のテストを実行し、“lint”コードスタイルのチェックを実行します。

様々な選択肢を tox それは.例えば、Python 3.10上でテストを実行し、pytest(例えば、失敗した場合にpdbを入力)をpytestに渡すには、以下の操作を実行することができます。

$ tox -e py310 -- --pdb

またはPython 3.6上の特定のテストモジュールでのみテストを実行します:

$ tox -e py310 -- -k TestGet

引取要求を提出すると、CIは完全なキットを実行します。完全なテストキットは、Pythonと依存項の様々な組み合わせをテストしているので、実行に長い時間がかかります。すべての環境を実行するためには、Python 3.7、3.8、3.9、3.10、PyPyをインストールする必要があります。そして実行します:

tox

テストを実行するには、localhost上でアクティビティのMongoDBインスタンスを実行する必要がありますことに注意してください。定義されたパスワードは、いくつかの時間と手間を節約するために、MongoDBユーザを作成します。 test_settings.py ADMINデータベース内のファイル(管理者証明書を提出したくないが、依然としてファイルが修正されている場合、事前提出プロセスは許容できず、これは毒性試験に必要である)。ローカルMongoDBインスタンスおよびリモートインスタンスへのSSHトンネルを実行したい場合は、可能であれば、ローカルインスタンスにデフォルトポートを使用させ、リモートインスタンスは他のポートを使用させてください。できない場合、実行不良なテストを修復することは、リモートインスタンスとローカルインスタンスとを一度に接続するよりも面倒である可能性がある。また、実行のために 速度制限. あなたが実行するテストが必要です Redis サーバをねらう。この2つの条件のいずれかが満たされていない場合,レート制約テストを自動的にスキップする.

文書を構築する

はい。 docs Sphinx::のディレクトリを使用する

cd docs
make html

開いている. _build/html/index.html ブラウザでドキュメントを表示します。

もっと多くのことを読んで Sphinx それがそうです。

目標を立てる

EVEは Makefile いろいろな近道があります。彼らはすべての依存項目を設置することを確実にするだろう。

  • make test runs the basic test suite with pytest

  • make test-all runs the full test suite with tox

  • make docs HTML文書の構築

  • make check カバンに対していくつかの検査を行います

  • make install-dev すべての開発依存項を用いて編集可能モードでEveを実装した.

初めて投稿?

大丈夫だよ。私たちは皆このような経験をしたことがある。次章を参照してください。

何から言えばいいのかわかりません。

コードベースには通常いくつかのTODOアノテーションが配布されており,アイデアがあるかどうか,あるいは支援できるかどうかを調べてみることができるかもしれない.また、チェックしてください open issues 何か興味を引くことがないようにしてください。では文書はどうなっているのでしょう?私は英語が下手なので、もしあなたが英語が流暢(あるいはどんなタイプのミスや/またはミスに気づいているのか)なら、どうして助けてくれないのですか?いずれの場合もGitHubを除いて help ペイジこれをチェックしたいかもしれない Effective Guide to Pull Requests