開発者向け

あなたが直接 virtualenvwrapper に貢献したいなら、次の説明が役に立つでしょう。パッチ、バグレポートや機能要求は BitBucket サイト で歓んで受け付けます。パッチや pull リクエストによる貢献はその修正を取り込んだり、優先度の配慮も行い易いでしょう。

Note

virtualenvwrapper のコアへ新しい機能を追加する前に、その代わりに機能拡張として実装すべきかどうかをよく考えてください。

ドキュメントを作成する

virtualenvwrapper のドキュメントは reStructuredText で書かれていて Sphinx で HTML に変換されます。それは make コマンドでビルドされます。ドキュメントをビルドするために次のパッケージが必要になります。

  • Sphinx
  • docutils

全てのツールが pip を使用して仮想環境内にインストールされたら、ドキュメントの HTML バージョンを生成するために make html を実行してください。

$ make html
rm -rf virtualenvwrapper/docs
(cd docs && make html SPHINXOPTS="-c sphinx/pkg")
sphinx-build -b html -d build/doctrees  -c sphinx/pkg source build/html
Running Sphinx v0.6.4
loading pickled environment... done
building [html]: targets for 2 source files that are out of date
updating environment: 0 added, 2 changed, 0 removed
reading sources... [ 50%] command_ref
reading sources... [100%] developers

looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 33%] command_ref
writing output... [ 66%] developers
writing output... [100%] index

writing additional files... search
copying static files... WARNING: static directory '/Users/dhellmann/Devel/virtualenvwrapper/plugins/docs/sphinx/pkg/static' does not exist
done
dumping search index... done
dumping object inventory... done
build succeeded, 1 warning.

Build finished. The HTML pages are in build/html.
cp -r docs/build/html virtualenvwrapper/docs

最終的なドキュメントの生成内容はサンドボックスの ./virtualenvwrapper/docs にあります。

テストを実行する

virtualenvwrapper のテストスイートは shunit2tox を使います。shunit2 のソースは tests ディレクトリに含まれていますが、tox は別途インストールする必要があります (pip install tox) 。

bash, zsh, ksh 環境で Python 2.4 - 2.7 のテストを実行するには、hg リポジトリの最上位ディレクトリから tox を実行してください。

個別のテストスクリプトを実行するには、次のように実行します。

$ tox tests/test_cd.sh

Python のあるバージョンでテストを実行するには、tox を実行するときに適切な環境を指定します。

$ tox -e py27

前述した特定テストと Python バージョンのテストを実行するには、2つの方法を組み合わせてください。

$ tox -e py27 tests/test_cd.sh

既存のファイルを変更して新しいテストを追加するか、 tests ディレクトリに新しいスクリプトを作成してください。

新しいテンプレートの作成

virtualenvwrapper.project テンプレートは virtualenvwrapper plugins と同じように動作します。 entry point グループの名前は virtualenvwrapper.project.template です。 run を実行する関数を参照する独自のエントリーポイントを設定してください (ソースフックはテンプレートをサポートしていません) 。

テンプレート関数の引数は、作成するプロジェクトの名前です。 カレントワークディレクトリは、プロジェクトのファイルを保持するために作成されたディレクトリです ($PROJECT_HOME/$envname) 。

ヘルプテキスト

プロジェクトテンプレートとその他の virtualenvwrapper 拡張との違いは、ユーザーが指定したテンプレートのみが実行されることです。 mkproject コマンドは、ユーザーへ利用できるテンプレート一覧表示するヘルプオプションがあります。 テンプレート名は、登録されたエントリーポイントから取得される名前です。 そして、テンプレートの説明は、テンプレート関数の docstrings を表示します。